2016-11-28 5 views
0
  • 特定の時間の後にスライドショー のイメージが始まるはずのシーンがあります。スライドショーのようなテクスチャアレイからのイメージをユニティで表示する方法

  • 私はテクスチャ配列を作成し、画像を インスペクタに配列にロードしました。

  • 私は2秒ごとに各画像をスライドさせる必要があります。

  • これは私が行っているコードであるが、それは

    public Texture[] Images; 
    
    void ChangeImage() 
    

    {

    for(int i=1;i<Imagez.Length;i++) 
    { 
    
        print (Imagez [i].ToString()); 
        Imag =Imagez [i]; 
    
    } 
    
    
    } 
    

エラーであるiは、アレイからの各画像をロードしようとするが、私はそのことを知っています適切な方法..いずれかを助けてください

+0

キャンバスを作成し、UI、幸運から始める絶対初心者ガイドです。 http://stackoverflow.com/a/36268018/294884 – Fattie

答えて

2

スクロールアレスタを追加して、コンテナのパネルを追加し、そのパネルをscロール・レットを制御します。

次に、コンテナは水平/垂直レイアウトグループを取得します。すべての画像を追加し、適切に表示されるようにコンテナのサイズを設定します。

ゲームを実行するには、適切にスクロールする必要があります(正しく移動するように、移動範囲を制限する必要があります)。

private int currentIndex = 0; 
[SerializeField] private float imageSize; 
[SerializeField] private RectTransform panel; 
[SerializeField] private float frequency; 
void Start() 
{ 
    InvokeRepeating("IncreaseCurrentIndex", frequency,frequency); 
} 
private void IncreaseCurrentIndex() 
{ 
    if(++this.currentIndex >= this.imageCount){ this.currentIndex = 0; } 
} 

void MoveToNextItem() 
{ 
    float targetX = (float)this.currentIndex * this.imageSize; 
    Vector2 delta = this.panel.anchoredPosition; 
    delta.x = Mathf.MoveTowards(delta.x, targetX, Time.deltaTime * speed); 
    this.panel.anchoredPosition = delta; 
} 

まず、インスペクタで画像のサイズを指定します。パネルはすべての画像のコンテナです。私は残りは自明だと思う。

コードはできるだけシンプルですが、柔軟性はさらに向上しますが、少なくともそれはそのままでなければなりません。

注:これは水平スクロールのためのものです。垂直スクロールの更新で、xのyを変更します。また、Mathf.MoveTowardsを使用すると、スクロールrectの速度の代わりにlerpを使用できます。

+0

私は初心者ですが、私は本当に何をするべきか分かりません。答えは –

+0

です。私は... queを編集しました。 image iは、そのイメージにイメージ配列をロードする方法をシーンで作成しました。 –

関連する問題