2015-09-27 65 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));