簡體   English   中英

Unity動畫

[英]Unity Animations

我試圖基於腳本輸入,使用腳本來更改角色動畫,但是Unity似乎只播放默認的“站立閑置”動畫,偶爾切換到“蹲下閑置”,是否有其他處理動畫的方法?只是在做腳本錯誤? 這是我目前的腳本

using UnityEngine;
using System.Collections;

public class CharacterControl : MonoBehaviour {

    private Animator animator;
    public bool crouched;
    private string sc;

    // Use this for initialization
    void Start () {

        animator = GetComponent<Animator> ();

    }

    // Update is called once per frame
    void Update () {

        if (crouched == true) {
            sc = "crouch";
        } else {
            sc = "standing";
        }

        animator.Play (sc + "_idle");

        if (Input.GetButton ("Fire3")) {
            if (crouched == false) {
                crouched = true;
            } else {
                crouched = false;
            }
        }

    }
}

嘗試更換

if (Input.GetButton ("Fire3")) {
    if (crouched == false) {
        crouched = true;
    } else {
        crouched = false; 
    }
}

if (Input.GetButton ("Fire3")) {
    crouched = true;
} else {
    crouched = false;
}

現在,當您按住“ Fire3”按鈕時,角色應該蹲下,放開時,他/她應該再次站立

還有一個建議:將其他代碼放入函數中( if (crouched == true) ... animator.Play (sc + "idle");在此代碼之后( Input.GetButton檢查)。這樣,您的角色應該立即開始蹲下與按下按鈕相同的框架;否則,他/她將在


說明

每幀按下(在單擊或觸摸的中間)按鈕時, Input.GetButton將返回true。 每次調用Update (約1/60秒),您的代碼都會檢查您是否按下了,並切換crouched 單擊/點擊按鈕時,您可能會按下幾幀,因此crouched幾次會從true切換到false 在某些情況下(當您按下奇數個幀時), crouched將被切換,但在其他情況下(當您按下奇數個幀時), crouched將保持在您單擊按鈕之前的狀態。您的角色蹲下,或者如果他以前蹲過則站着。

來源:來自官方API: Input.GetButton

我強烈建議您使用動畫狀態,並在收到輸入時從一個狀態過渡到另一個狀態。 在以下位置查看我的答案: Unity 2D動畫部分運行

是的,您可以像這樣進行切換操作

void Update()
{
   if(Input.MouseButtonDown(2))
  {
    crouched = true;
  }
  if(Input.MouseButtonUp(2))
  {
    crouched  = false;
  }
}

您可以嘗試以下代碼:

crouched = Input.GetButtonDown("Fire3") ? true : false;

暫無
暫無

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

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