2016-12-01 87 views
-2

我在Unity製作一個彈球遊戲,我有一個問題。當彈球碰撞到一個圓柱體以添加分數時,它不起作用。我已經在Unity中標記了氣瓶,並將此腳本附加到了彈球中。它甚至不會顯示在調試日誌中。Unity碰撞檢測 - 添加碰撞時的GUI分數?

感謝您的任何建議。

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 
using UnityEngine.SceneManagement; 

public class Score : MonoBehaviour { 
public int scorePoint = 10; 
public int MaxScore; 
public Text ScoreText; 


// Use this for initialization 
void Start() { 
    ScoreText = GetComponent<Text>(); 
    ScoreText.text = "Score: " + scorePoint; 
} 

void OnTriggerEnter (Collider other) 
{ 
    if (other.gameObject.tag == "Cylinder") 
    { 
     Debug.Log("Collision detected"); 
     scorePoint+=10; 

    } 
} 
// Update is called once per frame 
void Update() 
{ 

} 
} 
+1

你知道嗎,當你的問題在統一解決方案上被拒絕是爲了一個合理的理由和線索來解決你的問題時,看到你在StackOverflow上詢問完全相同的問題相當令人失望。無法做出一點**的研究來解決你的問題不會讓你走得更遠。 – Hellium

+0

另外** Tigger **和** Collision **不是一回事......嘗試使用OnCollisionEnter()。 – Kardux

+0

@Hellium真正迷人的我會提醒媒體。 – Andrew

回答

1

請確保您有每個對象在一個盒子撞機。 OnTriggerEnter僅在兩個箱子撞擊器相互碰撞時被調用。這是爲什麼它不工作,但沒有更多的信息,我不能保證它最有可能的罪魁禍首。

+0

所以我放大了對撞機的大小,它設法觸發並顯示在調試日誌中!但是得分仍然停留在零。是否有邏輯錯誤導致此? – Andrew

+0

您正在增加內存中的分數,但您從不更新文本。在if語句中設置ScoreText.text = scorepoint –

+0

此外,如果它的0而不是10開始可能是因爲你有它在檢查器中設置爲0。如果您不想在檢查員中編輯號碼,請將變量設爲私有。 –