我試圖做一個非常簡單的記憶遊戲(即,牌桌,玩家翻轉兩次,一次試圖找到一場比賽)統一。我對它進行格式化的方式是將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