如何从我的播放器与之碰撞的脚本中获取变量?

时间:2017-07-19 22:28:36

标签: unity3d

所以我让我的玩家站在一个立方体旁边。播放器有一个脚本,除了int为43之外它是空的。除了立方体脚本中的int是42之外,它同样适用于立方体。如何在立方体的脚本中获取(或检测)int并打印它在控制台中使用OnCollisionEnter(或OnTriggerEnter,如果它更好)像这样:(“立方体的数字是42”)?

2 个答案:

答案 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);
}