2017-07-19 40 views
-1

所以我让我的玩家站在一个立方体旁边。播放器有一个脚本,除了43是int外,其余都是空的。除了多维数据集脚本中的int为42以外,同样适用于多维数据集。如何获取(或检测)多维数据集脚本中的int并将其打印出来在控制台中使用OnCollisionEnter(或OnTriggerEnter,如果它更好)如下所示:(“该立方体的编号为42”)?如何从脚本中获取变量,我的玩家正在碰撞?

+2

这个问题有几个基本的组件在理解Unity和编码方面至关重要。我强烈建议首先检查一些[教程](https://unity3d.com/learn/tutorials)。另外,当提出这样的问题时,显示你的代码,什么不工作,以及你尝试过的。 – ryeMoss

+0

啊谢谢你的回答,如果我不能得到它的工作,我会来这里或在其他有用的地方问 –

回答

0

那么你应该肯定在继续之前通过一些教程,因为你似乎甚至不知道甚至非常基本的东西,但至少指出你在正确的方向,你会做这样的事情(假设C#,不是UnityScript):

void OnCollisionEnter(Collision collision) 
{ 
    int numberOfCollidedObject = collision.gameObject.GetComponent<objectsScriptNameHere>().variableNameHere; 
    Debug.Log(numberOfCollidedObject); 
} 

我怎么知道该怎么做?我看着the documentation。我可以看到,当OnCollisionEnter被调用时,它通过了一个Collision类型的变量。它在文档中是超链接的,所以我点击Collision,发现它包含一个名为gameObject的变量,它包含对我们刚才碰撞的对象的游戏对象的引用。我碰巧知道要进入另一个脚本,您调用GetComponent<scriptName>(),并从那里访问任何公共变量和函数。

0

,如果你有两个对撞机(球员和反对谁碰撞播放器),你可以凸对撞机,并设置isTrigger为true

然后调用函数OnTriggerEnter()

void OnTriggerEnter(Collider other) { 
    Debug.Log(other.name); 
}