阶段备份2
This commit is contained in:
parent
ab64006e5a
commit
0e541101db
|
|
@ -0,0 +1,76 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class ModelController : MonoBehaviour
|
||||
{
|
||||
private Animator animator;
|
||||
private string currentAnim = "";
|
||||
private bool isPlaying = false;
|
||||
|
||||
[Header("默认动画状态名称")]
|
||||
public string defaultAnimName = "Idle";
|
||||
|
||||
void Awake()
|
||||
{
|
||||
animator = GetComponent<Animator>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 播放默认动画,从0开始
|
||||
/// </summary>
|
||||
public void PlayAnimation()
|
||||
{
|
||||
if (animator == null || string.IsNullOrEmpty(defaultAnimName)) return;
|
||||
if (!AnimatorHasState(defaultAnimName))
|
||||
{
|
||||
Debug.LogWarning($"Animator 上不存在状态: {defaultAnimName}");
|
||||
return;
|
||||
}
|
||||
|
||||
currentAnim = defaultAnimName;
|
||||
animator.enabled = true;
|
||||
animator.Play(currentAnim, 0, 0f);
|
||||
animator.Update(0f);
|
||||
isPlaying = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置动画进度 0~1
|
||||
/// </summary>
|
||||
public void SetAnimationProgress(float normalizedTime)
|
||||
{
|
||||
if (animator == null || string.IsNullOrEmpty(currentAnim)) return;
|
||||
if (!gameObject.activeSelf) return;
|
||||
|
||||
animator.enabled = true;
|
||||
animator.Play(currentAnim, 0, Mathf.Clamp01(normalizedTime));
|
||||
animator.Update(0f);
|
||||
animator.enabled = false;
|
||||
isPlaying = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 页面切换或复位时调用
|
||||
/// </summary>
|
||||
public void ResetAnimation()
|
||||
{
|
||||
if (animator == null) return;
|
||||
if (!gameObject.activeSelf) return;
|
||||
|
||||
animator.enabled = true;
|
||||
animator.Play(currentAnim != "" ? currentAnim : defaultAnimName, 0, 0f);
|
||||
animator.Update(0f);
|
||||
animator.enabled = false;
|
||||
currentAnim = "";
|
||||
isPlaying = false;
|
||||
}
|
||||
|
||||
private bool AnimatorHasState(string stateName)
|
||||
{
|
||||
for (int i = 0; i < animator.layerCount; i++)
|
||||
{
|
||||
if (animator.HasState(i, Animator.StringToHash(stateName)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c86ed53e8144b2b4781bab9d7e73c21e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Reference in New Issue