Unity Animations
本文关键字:Animations Unity | 更新日期: 2023-09-27 17:58:55
我正试图根据关键输入使用脚本更改角色动画,但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;