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函数中使用Increment函数。
答案 0 :(得分:2)
变量 playerScript 在start
方法中声明,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();
}
}
答案 1 :(得分:0)
确保OnTriggerEnter2D
确实已触发,只需在Debug.Log("Boom!");
内添加OnTriggerEnter2D
。
其次,检查是否找到playerScript
。在OnTriggerEnter2D主体中添加此内容
Debug.Log("Is playerScript null? "+ (playerScript == null));