2015-10-19 80 views
1

我已经用实例化对象点击了一面墙。我需要引擎做的是产生三个预制件,然后在特定时间后,翻转它们。但是,我一直无法得到它的工作。产卵代码的作品,但当我尝试添加更多的操纵预制,它只是给了我大量的错误。产卵脚本是无效的开始()内,而其他脚本会在无效更新()旋转实例化对象

派生脚本:

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); 
    } 
+0

错误信息在哪里? – Tom

+0

“对象引用未设置为对象的实例”(移动脚本的第一行) – MechaScoots

+0

那么有两个单独的脚本,您是否在移动脚本中为对象分配了值?否则,你试图访问一些空的东西。 –

回答

0

从阅读您的评论只需要适当的参考值。有几种方法可以做到这一点,静力学可能是最快和最简单的。

设置在产卵脚本卡pubic static GameObject cardAOne;

然后从运动脚本SpawnScript.cardAOne.transform.position

打电话给他们你也可以有你的移动文件的顶部公共SpawnScript,然后拖动降它在Unity中的检查器中的实例。

+0

他们在同一个父脚本中。这应该不重要。 – MechaScoots

0

的错误是最有可能在这里:

if (turnA == true) { 
... 

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

关于编码风格:

if (turnA)相当于if (turnA == true),但更清晰,更传统。

+0

不,它已正确初始化为true。加上错误特别在第一条旋转线上开始。 – MechaScoots

+0

卡是一个MonoBehavior对象吗? 你可以给我们一个堆栈跟踪请 –

+0

我不知道如何做堆栈跟踪,但是,它是在MonoBehavior中声明的,而不是在Start()或Void()中。我有一个原来的设置,但它造成了太多的错误。 – MechaScoots