[請益] unity是否可滿足不同scrips的兩個條件?

作者: rede1420 (星晴)   2017-11-30 22:53:25
對不起我又來了
這次想實現的是一個若車子闖了紅燈就會被扣分的設置
以下是設置碰撞後會扣分數的程式碼
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有辦法讓碰撞事件同時滿足這兩個條件嗎
要怎麼改寫才能實現我的需求
謝謝
作者: BSpowerx (B.S)   2017-11-30 23:38:00
你先確認到底有沒有進OnTriggerEnter吧
作者: rede1420 (星晴)   2017-11-30 23:41:00
目前測試過了車子受到碰撞確實會扣32分,但是加了紅綠燈的條件之後就不會扣分了
作者: joseph33 (理查帕迪)   2017-12-01 00:12:00
有個東西叫Debug.log 還有個東西叫breakpoint 都很好用,你不試試嗎?
作者: eugenelinrmx   2017-12-01 01:02:00
進入判斷式if之前用Debug.log檢查那兩條件的狀態
作者: amsmsk (449)   2017-12-01 09:51:00
把||改成&&?
作者: wallissars (wallissars)   2017-12-01 10:26:00
你的寫法只有碰撞Boom成立的時候才會成立
作者: wix3000 (癢,好吃)   2017-12-01 12:41:00
可以把CODE移到HackMD之類的地方嗎 用PTT我真的懶得看
作者: laikyo (六元)   2017-12-01 12:48:00
collider 可以開關喔!
作者: tsrn46336686 (hahapointishere)   2017-12-01 19:06:00
沒有用到的function可以刪掉嗎XD (start)
作者: juicefish (果汁魚)   2017-12-04 00:25:00
Score腳本上有設定Tflc game是用誰嗎我猜是game == null 然後直接game.Red null reference

Links booklink

Contact Us: admin [ a t ] ucptt.com