我有一个立方体(一个骰子),当我用鼠标单击时,它会在所有轴上旋转,以向相机显示一个数字。类似的东西:https://youtu.be/8FJa7SYldJw?t=61
为了模拟这种效果,我在字典中列出了保存在Start函数中四元数变量中的对象的旋转。因此,当我单击停止旋转并显示数字时,代码会找到1到6之间的随机数,并使骰子停止显示生成的数字。代码如下:
void Start() { rb = GetComponent <Rigidbody>(); rb.transform.position = Camera.main.transform.position + Camera.main.transform.forward * 7; number1 = Quaternion.Euler(-37.2f, 44.76f, -3.05f); number2 = Quaternion.Euler(52.015f, 39.623f, -4.05f); number3 = Quaternion.Euler(-2.614f, -47.70f, 37.93f); number4 = Quaternion.Euler(2.42f, 132.4f, -37.1f); number5 = Quaternion.Euler(37.0f, 226.27f, 4.243f); number6 = Quaternion.Euler(-51.72f, -139.93f, 181.95f); } void FixedUpdate() { rb.transform.Rotate(360.0f, 90.0f, 180.0f * 12 * Time.deltaTime); if (Input.GetMouseButtonDown(0)) { Dictionary<int, Quaternion> diceNumbers = new Dictionary<int, Quaternion>(); diceNumbers.Add(1, number1); diceNumbers.Add(2, number2); diceNumbers.Add(3, number3); diceNumbers.Add(4, number4); diceNumbers.Add(5, number5); diceNumbers.Add(6, number6); List<int> keyNumbers = new List<int>(diceNumbers.Keys); diceResult = Random.Range(1, 6); rb.transform.rotation = diceNumbers[diceResult]; } }
问题是,这个解决方案只有在相机被锁定在某个位置时才有效,现在我希望相机跟随角色,当它旋转以改变方向时,坐标对我来说用处不大。有什么想法可以让骰子显示我想要的一面,即使相机旋转?非常感谢。