2015-09-27 63 views
0
using UnityEngine; 
using System.Collections; 

public class Egg : MonoBehaviour { 

// Use this for initialization 
void Start() { 
    PlayerController playerScript = GetComponent<PlayerController>(); 
} 

void OnTriggerEnter2D(Collider2D coll) 
{ 
    this.GetComponent<SpriteRenderer>().enabled = false; 
    playerScript.Increment(); 
} 
} 

它不會讓我使用OnTrigger函數中的增量函數。不能使用其他腳本的腳本

回答

2

變量playerScriptstart方法內聲明裏面,有沒有在OnTriggerEnter2D方法稱爲playerScript變量。

你應該做這樣的事情,而不是:

public class Egg : MonoBehaviour { 

    private PlayerController playerScript; 

    // Use this for initialization 
    void Start() { 
     playerScript = GetComponent<PlayerController>(); 
    } 

    void OnTriggerEnter2D(Collider2D coll) 
    { 
     this.GetComponent<SpriteRenderer>().enabled = false; 
     playerScript.Increment(); 
    } 
} 
0

確保OnTriggerEnter2D確實被觸發,只需在OnTriggerEnter2D內添加Debug.Log("Boom!");即可。

其次,檢查是否找到playerScript。收藏此OnTriggerEnter2D體

Debug.Log("Is playerScript null? "+ (playerScript == null));