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();
    }
}


http://i.stack.imgur.com/wt0mN.png

如您所见,上面的链接^我已经在动画组件内部添加了动画。

我发现的另一件事是,如果我在ClickToMove脚本中调用PlayWoodCuttingAnim()函数,它可以正常工作,但在其他脚本中,它可以正常工作。

错误控制台> NullReferenceException:对象引用未设置为对象的实例。

任何帮助将不胜感激

最佳答案

好吧,很少有常用的方法可以做到这一点。

就像从另一个脚本调用方法一样,您将需要附加(附加到gameObject)脚本实例,而不是简单的脚本实例。

你可以做到的

void Start()
    {
        ClickToMove = FindObjectOfType<ClickToMoveScript>();
        ClickToMove.PlayWoodCuttingAnim();
    }

09-27 02:57