我正在尝试制作一个非常简单的记忆游戏(即,牌桌,玩家一次翻转两个试图找到匹配)。我格式化它的方式是,我在卡片上附加了一个 CardScript,在包含所有卡片的板上附加了一个脚本,发送消息以轮换,在进行匹配时清除,等等。然而,我遇到了一个障碍。我void OnMouseDown()
在 CardScript 中使用它来知道它应该何时翻转,但我不知道如何让董事会知道这已经发生了。有什么想法吗?
问问题
84 次
2 回答
0
对象之间的通信只需要一个引用。要获得参考,您通常只需保留如下变量:
MyScript reference = new MyScript();
但是,这在 Unity 中并不总是有效,因为您不能new
在 MonoBehaviours 上使用。所以你需要另一种方式。
你找到参考!你可以使用这个:
MyScript reference = GameObject.Find("GameObjectName").GetComponent<MyScript>();
获得参考后,只需进行函数调用。
reference.foo();
于 2014-10-11T08:52:55.100 回答
-1
基本上你需要跨脚本发送消息。这是你必须做的:
Script1.cs
public void checky()
{
print("you touched my card");
}
Script2.cs
private Script1 otherScript; // we need Script1
void OnMouseDown()
{
otherScript = new Script1(); // new instance of Script1
otherScript.checky(); // accessing public method of Script1
}
希望这可以帮助 :)
于 2014-10-11T06:23:26.057 回答