2016-11-18 22 views
-1

這是腳本的頂部:爲什麼腳本現在不像以前一樣工作?

using UnityEngine; 
using System.Collections; 
using System.Reflection; 

public class DetectPlayer : MonoBehaviour { 

    GameObject target; 
    int counter = 0; 

    void OnCollisionEnter(Collision collision) 
    { 
     if (collision.gameObject.name == "Platform") 
     { 
      Debug.Log("Touching Platform"); 
     }   
    } 

我使用一個調試器和一個破發點,它並獲得該行

if (collision.gameObject.name == "Platform") 

而在遊戲對象我的屬性名請參閱:「ThirdPersonController」,但它永遠不會進入Debug.Log

腳本連接到平臺,就像它在屏幕截圖中顯示的一樣。我運行遊戲的玩家移動到平臺時,觸摸它它停在破發點,但從來沒有進入到

的debug.log

Screenshot

回答

2

collision.gameObject.name將呼籲遊戲對象,你的如果您的對撞機沒有附加到名爲平臺的遊戲對象,則不會調用對撞機。

1

我認爲@MiladQasemi是對的,但我會嘗試以另一種方式解釋它。

我看到它的問題,是你的腳本連接到您的平臺對象,因此代碼if (collision.gameObject.name == "Platform")永遠不會爲真。 因爲腳本和平臺是一個,所以對象不能與自身發生衝突。

更改代碼是:

if (collision.gameObject.name == "ThirdPersonController") 
相關問題