旋转一个实例化的对象

本文关键字:实例化 对象 一个 旋转 | 更新日期: 2023-09-27 18:18:29

我在实例化对象方面遇到了一点困难。我需要引擎去做的是刷出三个预制件,然后在特定的时间,翻转它们。然而,我一直无法让它工作。刷出代码工作,但当我尝试添加更多的操作预制,它只是给了我大量的错误。生成脚本在void Start()中,而其他脚本将在void Update()

中。

生成脚本:

    cardAOne = Instantiate(CardDisplayer.cardList[Shuffle.playerAdeck[0]], new Vector3 (xPosition, yPosition, (zPosition + 3)), Quaternion.Euler(xRotation, yRotation, zRotation)) as GameObject;
        cardATwo = Instantiate(CardDisplayer.cardList[Shuffle.playerAdeck[1]], new Vector3 (xPosition, yPosition, (zPosition)), Quaternion.Euler(xRotation, yRotation, zRotation))as GameObject;
    cardAThree = Instantiate(CardDisplayer.cardList[Shuffle.playerAdeck[2]], new Vector3 (xPosition, yPosition, (zPosition - 3)), Quaternion.Euler(xRotation, yRotation, zRotation))as GameObject;
    cardBOne = Instantiate(CardDisplayer.cardList[Shuffle.playerBdeck[0]], new Vector3 ((0 - xPosition), yPosition, (zPosition + 3)), Quaternion.Euler(xRotation, (0 - yRotation), zRotation))as GameObject;
    cardBTwo = Instantiate(CardDisplayer.cardList[Shuffle.playerBdeck[1]], new Vector3 ((0 - xPosition), yPosition, (zPosition)), Quaternion.Euler(xRotation, (0 - yRotation), zRotation))as GameObject;
    cardBThree = Instantiate(CardDisplayer.cardList[Shuffle.playerBdeck[2]], new Vector3 ((0 - xPosition), yPosition, (zPosition - 3)), Quaternion.Euler(xRotation, (0 - yRotation), zRotation))as GameObject;

运动脚本:

if (turnA == true) {
        cardAOne.transform.localRotation = Quaternion.Euler(0,0,180);
        cardATwo.transform.localRotation = Quaternion.Euler(0,0,180);
        cardAThree.transform.localRotation = Quaternion.Euler(0,0,180);
    }

旋转一个实例化的对象

最可能出现的错误是:

if (turnA == true) {
...

我认为你只是在访问turnA之前没有初始化它。也许你有一些分支代码,其中并不是每个分支都给该变量赋值。

关于编码风格:

if (turnA)相当于if (turnA == true),但更清晰、更常规。

这个回答有点晚了,不过好吧。不知道真正的问题是什么,但更新unity是有效的。有时使用最新的软件版本会有帮助!

通过阅读注释,您只需要对值进行适当的引用。有几种方法可以做到这一点,静态可能是最快和最简单的。

设置刷出脚本中的牌为public static GameObject cardAOne;

然后用SpawnScript.cardAOne.transform.position从移动脚本中调用它们。

你也可以在你的移动文件的顶部有一个公共的SpawnScript,然后你可以在Unity的检查器中拖放它的实例。