using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Animations : MonoBehaviour {
public enum AnimatorStates
{
WALK, RUN, IDLE
}
private static Animator _anim;
// Use this for initialization
void Start ()
{
_anim = GetComponent<Animator>();
}
private static AnimStates(AnimatorStates states)
{
switch (states)
{
case AnimatorStates.IDLE:
return _anim.Play("idle");
}
}
// Update is called once per frame
void LateUpdate ()
{
}
}
第一个问题是应该返回什么类型?静态之后:
private static AnimStates(AnimatorStates states)
第二个问题是如何在LateUpdate中创建案例后如何使用它,如果我没有错,我应该从LateUpdate或Update函数中调用动画?
最后我怎么能在以后的另一个脚本中使用这个脚本? 仅举例来说,如果逻辑不是真正的代码,如果在另一个脚本中我会做出类似的东西:
if (text == "walk")
Animations.walk
这种逻辑。
答案 0 :(得分:1)
根据我收集的内容,您不需要将_anim
或AnimStates
标记为静态。在这种情况下,我会想象下面的代码会为你做这件事。
public class Animations : MonoBehaviour
{
public enum AnimatorStates
{
WALK, RUN, IDLE
}
private Animator _anim;
void Start()
{
_anim = GetComponent<Animator>();
}
private void PlayState(AnimatorStates state)
{
string animName = string.Empty;
switch (state)
{
case AnimatorStates.IDLE:
animName = "idle";
break;
}
_anim.Play(animName);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space)) {
PlayState(AnimatorStates.IDLE);
}
}
}