using UnityEngine; using System.Collections;
public class ClickToMoveScript : MonoBehaviour
{
public string Chopping = "Chopping";
public void PlayWoodCuttingAnim()
{
//Play Woodcutting Animation
gameObject.GetComponent<Animation>().CrossFade (Chopping);
}
}
这是我的另一个脚本
using UnityEngine;
using System.Collections;
public class WoodCuttingScript: MonoBehaviour
{
ClickToMoveScript ClickToMove;
void Start()
{
ClickToMove.PlayWoodCuttingAnim();
}
}
我已经在动画组件中添加了动画。
我发现的另一件事是,如果我在 ClickToMove 脚本中调用 PlayWoodCuttingAnim() 函数,它会正常工作,但在其他脚本中它会起作用。
错误控制台 > NullReferenceException:对象引用未设置为对象的实例。
任何帮助将不胜感激
最佳答案
好吧,很少有常用的方法可以做到这一点。
就像从另一个脚本调用方法一样,您需要附加(到游戏对象)脚本实例而不是简单的脚本实例。
你可以这样做,
void Start()
{
ClickToMove = FindObjectOfType<ClickToMoveScript>();
ClickToMove.PlayWoodCuttingAnim();
}
关于c# - Unity C#,如何从另一个脚本调用一个函数来启动动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34436458/