2016-11-28 42 views
0
  • 我有其中特定时间之后 图像的幻灯片放映应该开始的场景。如何显示从纹理阵列相似图片幻灯片显示在统一

  • 我已经建立纹理阵列和加载的图像阵列中 检查员。

  • 现在我需要每个图像每两秒钟后滑动。

  • 这是代码我已经做了,但它是错误

    public Texture[] Images; 
    
    void ChangeImage() 
    

    {

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

我尝试从数组加载每个图像,但我知道它不是正确way..can任何一个请帮助

+0

这里是一个绝对初学者的指南,使画布和用户界面开始,祝你好运! http://stackoverflow.com/a/36268018/294884 – Fattie

回答

2

添加滚动矩形然后添加一个面板容器,使该面板的SC滚动rect来控制。

然后容器得到一个Horizo​​ntal/VerticalLayoutGroup。添加所有图像并设置容器大小,以便它们正确显示。

运行游戏,你应该能够适当地滚动它们(请确保您约束的运动HOR /垂直以便它能够正确动作)。

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。此外,它使用Mathf.MoveTowards,您可以使用lerp而不是scroll rect的速度。

+0

感谢ü洙多......但我是一个初学者,我真的不知道该怎么办,美在回答 –

+0

告诉我已经编辑了阙..imag是我在场景中创建的图像如何将图像数组加载到该图像中 –