我正试图制作一个非常简单的记忆游戏(即,牌桌,玩家一次翻两次,试图找到一个匹配)。我格式化它的方式是我将卡片附加到卡片上,并附加到板上的脚本可以容纳所有卡片,发送信息以便旋转,在匹配时清除,等等。但是,我遇到了麻烦。我在CardScript中使用void OnMouseDown()
知道它应该何时翻转,但我不知道如何让董事会意识到这已经发生了。有什么想法吗?
答案 0 :(得分:0)
对象之间的通信所需要的只是一个参考。要获得参考,您通常只需保留一个这样的变量:
MyScript reference = new MyScript();
然而,由于您无法在MonoBehaviours上使用new
,因此无法在Unity中使用。所以你需要另一种方式。
你找到了参考!你可以用这个:
MyScript reference = GameObject.Find("GameObjectName").GetComponent<MyScript>();
一旦你有参考,只需进行函数调用。
reference.foo();
答案 1 :(得分:-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
}
希望这会有所帮助:)