Unity:无法通过getcomponent获取对类的引用
Posted
技术标签:
【中文标题】Unity:无法通过getcomponent获取对类的引用【英文标题】:Unity: Can't get reference to a class via getcomponent 【发布时间】:2017-02-12 15:36:52 【问题描述】: using UnityEngine;
public class CartMovement : MonoBehaviour
SpriteRenderer spriteRenderer;
LevelManager LevelManIns;
void Start ()
spriteRenderer = GetComponent<SpriteRenderer>();
spriteRenderer.enabled = true;
(line25)LevelManIns = GetComponent<LevelManager>();
Debug.Log("--" + LevelManIns.xy.X);
//transform.position = LevelManIns.Tiles[LevelManIns.PortalGreen].GetComponent<TileScript>().transform.position;
iTween.MoveTo(this.gameObject, iTween.Hash("path", iTweenPath.GetPath("cartPath"), "time", 3));
我得到错误:
NullReferenceException:对象引用未设置为对象的实例 CartMovement.Start () (在 Assets/scripts/CartMovement.cs:25)
我不明白为什么我无法获得对另一个脚本的引用。任何人都可以解决这个问题。谢谢。
【问题讨论】:
你确定LevelManIns = GetComponent如果关卡管理器附加到另一个对象(如您在 cmets 中提到的),一种方法是通过检查器引用该对象,然后从该对象获取脚本。
public class CartMovement : MonoBehaviour
SpriteRenderer spriteRenderer;
// Make it public, so it is visible in the inspector, and drag and drop the object into that instance
public LevelManager LevelManIns;
void Start ()
// No need to assign it here, just maybe check if it is assigned like so
if (LevelManIns == null)
// Error, this should be assign outside
【讨论】:
以上是关于Unity:无法通过getcomponent获取对类的引用的主要内容,如果未能解决你的问题,请参考以下文章
Unity引擎,GetComponents 不能查找Hierarchy的全部组件,求告知错误原因?