切换箱子的位置?

我从Unity开始,并希望开始使用一些概念。 基本上我想要做的是:如果我点击屏幕的右侧,切换蓝色和黄色框的位置,如果我随后点击屏幕的右侧,则用红色框切换黄色框。 我已经为屏幕的左侧和右侧设置了canvas。 我需要做什么?

[编辑]:我在图片中可以看到错误。 我不确定我是否应该使用不同的方法来解决这个问题。 任何建议将不胜感激!

切换盒子的位置错误

将其添加到按钮并设置对象引用:

using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(Button))] public class SwapObjectPositions : MonoBehaviour { public Transform transformA; public Transform transformB; void Start () { GetComponent 

问题是你有3个盒子可以切换位置,而不仅仅是两个。 第一次交换后,订单发生变化。 你必须做出类似的事情:

 using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(Button))] public class SwapObjectPositions : MonoBehaviour { public Transform[] boxTransform; public Button LeftButton; public Button RightButton; void Start() { if (LeftButton == null || RightButton == null) { Debug.Log("Button reference missing"); } LeftButton.onClick.AddListener(LeftSwap); RightButton.onClick.AddListener(RightSwap); if (boxTransform.Length != 3 || boxTransform[0] == null || boxTransform[1] == null || boxTransform[2] == null) { Debug.Log("Boxes reference missing"); } } public void LeftSwap() { // Swap Positions Vector3 tempPosition = boxTransform[0].position; boxTransform[0].position = boxTransform[1].position; boxTransform[1].position = tempPosition; // Swap Transform Transform tempTransform = boxTransform[0]; boxTransform[0] = boxTransform[1]; boxTransform[1] = tempTransform; } public void RightSwap() { // Swap Positions Vector3 tempPosition = boxTransform[1].position; boxTransform[1].position = boxTransform[2].position; boxTransform[2].position = tempPosition; // Swap Transform Transform tempTransform = boxTransform[1]; boxTransform[1] = boxTransform[2]; boxTransform[2] = tempTransform; } }