簡體   English   中英

Anim.SetFloat不起作用

[英]Anim.SetFloat doesn't work

我收到此錯誤:

NullReferenceException:對象引用未設置為對象的實例

UnityEditor.Graphs.AnimationStateMachine.GraphGUI.SyncGraphToUnitySelection(布爾力)(在C:/buildslave/unity/build/Editor/Graphs/UnityEditor.Graphs/AnimationStateMachine/GraphGUI.cs:310)
UnityEditor.Graphs.AnimatorControllerTool.DetectAnimatorControllerFromSelection()(在C:/buildslave/unity/build/Editor/Graphs/UnityEditor.Graphs/Animation/AnimatorControllerTool.cs:734)
UnityEditor.Graphs.AnimatorControllerTool.OnEnable()(在C:/buildslave/unity/build/Editor/Graphs/UnityEditor.Graphs/Animation/AnimatorControllerTool.cs:747)

這是我的代碼(統一2017.3.0f3)

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

    public float moveSpeed;

    private Animator anim;

    // Use this for initialization
    void Start () {
        anim = GetComponent<Animator>();    
    }

    // Update is called once per frame
    void Update () {
        if (Input.GetAxisRaw("Horizontal") > 0.5f || Input.GetAxisRaw("Horizontal") < -0.5f)
        {
            transform.Translate(new Vector3(Input.GetAxisRaw("Horizontal") * moveSpeed * Time.deltaTime, 0f, 0f));          
        }

        if (Input.GetAxisRaw("Vertical") > 0.5f || Input.GetAxisRaw("Vertical") < -0.5f)
        {
            transform.Translate(new Vector3(0f, Input.GetAxisRaw("Vertical") * moveSpeed * Time.deltaTime, 0f));
        }
    }

    anim.SetFloat("MoveX", Input.GetAxisRaw("Horizontal"));
    anim.SetFloat("MoveY", Input.GetAxisRaw("Vertical")); 
}

我不知道這是否可行,但是您可以嘗試以下方法:

public GameObject animObject;
private Animator anim;

void Start () {
anim = animObject.GetComponent<Animator>();
}

在“ animObject”中,獲取您要設置動畫的GameObject的動畫器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM