我试图做一个非常简单的记忆游戏(即,牌桌,玩家翻转两次,一次试图找到一场比赛)统一。我对它进行格式化的方式是将CardScript附加到卡片上,并在卡片上附加一个脚本,用于存放所有卡片,发送消息以进行旋转,当匹配成功时等等。但是,我遇到了一个障碍。我在CardScript中使用void OnMouseDown()
来知道它何时应该翻转,但我不知道如何让板子知道发生了这种情况。有什么想法吗?我可以在其他地方发送OnMouseDown()事件吗?
回答
所有你需要的通信物体之间是一个参考。为了得到一个参考,通常你只是保持一个变量是这样的:
MyScript reference = new MyScript();
然而,这不会在Unity总是工作,因为你不能在MonoBehaviours使用new
。所以你需要另一种方式。
您可以参考!你可以使用这个:
MyScript reference = GameObject.Find("GameObjectName").GetComponent<MyScript>();
一旦你有参考只是进行函数调用。
reference.foo();
基本上你需要通过脚本发送消息。这是你必须做的:
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
}
希望这有助于:)
是否可以发送它并保持它们正在与对方的同一个实例交谈的事实? – Maxw3ll 2014-10-11 08:01:57
是的,这是可能的。在script1中重复相同的过程,然后他们会有很好的聊天:) – hfarazm 2014-10-11 08:37:42
要明白,只有当'Script1'不从'MonoBehaviour'继承时,你的解决方案才会工作。如果是这样,则不能使用新关键字来获取实例。 'GetComponent'是解决方案 – Programmer 2016-08-10 21:21:02
- 1. SendGrid可以发送邮件到其他域吗?
- 2. 我们可以使用websockets发送远程密钥事件吗?
- 3. 其他地方点击事件?
- 4. 我可以在全球其他地方注入Google AJAX API自动加载吗?
- 5. 我可以在其他地方定义别名而不是.bashrc吗?
- 6. TLabel OnMouseDown事件在Firemonkey中未触发
- 7. 我可以在application_helper.rb中使用其他助手方法吗?
- 8. 我可以使用Java以外的其他方式为Android开发吗?
- 9. ColdFusion可以在utf-8中发送HTML5服务器发送的事件吗?
- 10. 我可以向Creators Program Xbox Live API中的其他XboxLiveUser发送消息吗?
- 11. 我可以使用POST向其他网站中的页面发送请求吗?
- 12. PayPal结账 - 我们可以将资金发送给其他人吗?
- 13. 我可以将结构数组发送到其他函数吗? C语言
- 14. 我可以在DLL中嵌入其他文件吗?
- 15. socket.io客户端可以在本地发出事件吗?
- 16. 我们可以在其他地图中使用嵌套地图吗?
- 17. 我可以发推文给其他组织吗?
- 18. onmousedown事件在Visual Studio
- 19. 我可以向Intent.ACTION_CALL发送数据吗?
- 20. 我可以发送数据到webview吗?
- 21. 我可以发送回调给KerasClassifier吗?
- 22. 我可以用CSS等其他方法做到这一点吗?
- 23. 我可以将参数列表转发/委托给其他方法吗?
- 24. Swing以编程方式发送事件
- 25. 您可以将服务器端事件发送到Facebook Ads吗?
- 26. Nagios可以发送周期性事件警报吗?
- 27. 我可以从我的覆盖脚本中调用其他JavaScript文件中的其他方法吗?
- 28. 我可以在其他帐户下重新发布我的应用吗?
- 29. 我可以在日历外触发事件吗?
- 30. 在pygame中,我可以故意触发事件吗?
谢谢!我设法通过在实例化卡片时传递对象的引用来做到这一点。打的好。 – Maxw3ll 2014-10-11 22:57:08