所以我让我的玩家站在一个立方体旁边。播放器有一个脚本,除了int为43之外它是空的。除了立方体脚本中的int是42之外,它同样适用于立方体。如何在立方体的脚本中获取(或检测)int并打印它在控制台中使用OnCollisionEnter(或OnTriggerEnter,如果它更好)像这样:(“立方体的数字是42”)?
答案 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>()
,然后可以访问任何公共变量和函数。
答案 1 :(得分:0)
如果你有两个对手(玩家和物体碰撞玩家)你可以凸出对撞机并将isTrigger设置为真
然后调用函数OnTriggerEnter()
void OnTriggerEnter(Collider other) {
Debug.Log(other.name);
}