添加滚动矩形然后添加一个面板容器,使该面板的SC滚动rect来控制。
然后容器得到一个Horizontal/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的速度。
这里是一个绝对初学者的指南,使画布和用户界面开始,祝你好运! http://stackoverflow.com/a/36268018/294884 – Fattie