无法使用其他脚本中的脚本

时间:2015-09-27 09:50:23

标签: c# unity3d

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函数。

2 个答案:

答案 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));