看板 GameDesign 關於我們 聯絡資訊
對不起我又來了 這次想實現的是一個若車子闖了紅燈就會被扣分的設置 以下是設置碰撞後會扣分數的程式碼 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Score : MonoBehaviour { public int score = 100; public Text scoreText; // Use this for initialization void Start() { } // Update is called once per frame void Update() { scoreText.text = ((int)score).ToString(); } void OnTriggerEnter(Collider aaa) //aaa為自定義碰撞事件 { if (aaa.gameObject.name == "Boom") //如果aaa碰撞事件的物件名稱是 CubeA { score -= 32; } } } 這邊是紅綠燈設置的程式碼 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Tflc : MonoBehaviour { public Light Red; public Light Green; public Light Yellow; // Use this for initialization void Start() { StartCoroutine(Example()); } IEnumerator Example() { Yellow.enabled = false; while (true) { Green.enabled = true; Red.enabled = false; yield return new WaitForSeconds(10); Yellow.enabled = true; Green.enabled = false; yield return new WaitForSeconds(4); Red.enabled = true; Yellow.enabled = false; yield return new WaitForSeconds(10); } // Update is called once per frame } } 我想要實現車子在紅燈是造成碰撞時才會被扣32分 之前有找到一個寫法如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Score : MonoBehaviour { public int score = 100; public Text scoreText; public Tflc game; // Use this for initialization void Start() { } // Update is called once per frame void Update() { scoreText.text = ((int)score).ToString(); } void OnTriggerEnter(Collider aaa) //aaa為自定義碰撞事件 { if (game.Red.enabled == true || (aaa.gameObject.name == "Boom")) { score -= 32; } } } 但是他不會扣分 想請教大家unity有辦法讓碰撞事件同時滿足這兩個條件嗎 要怎麼改寫才能實現我的需求 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.69.177 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1512053607.A.0C7.html
BSpowerx: 你先確認到底有沒有進OnTriggerEnter吧 11/30 23:38
rede1420: 目前測試過了車子受到碰撞確實會扣32分, 11/30 23:41
rede1420: 但是加了紅綠燈的條件之後就不會扣分了 11/30 23:42
joseph33: 有個東西叫Debug.log 還有個東西叫breakpoint 都很好用, 12/01 00:12
joseph33: 你不試試嗎? 12/01 00:12
eugenelinrmx: 進入判斷式if之前用Debug.log檢查那兩條件的狀態 12/01 01:02
amsmsk: 把||改成&&? 12/01 09:51
wallissars: 你的寫法只有碰撞Boom成立的時候才會成立 12/01 10:26
wix3000: 可以把CODE移到HackMD之類的地方嗎 用PTT我真的懶得看 12/01 12:41
laikyo: collider 可以開關喔! 12/01 12:48
tsrn46336686: 沒有用到的function可以刪掉嗎XD (start) 12/01 19:06
juicefish: Score腳本上有設定Tflc game是用誰嗎 12/04 00:25
juicefish: 我猜是game == null 然後直接game.Red null reference 12/04 00:26