先修复一下,错误的场景 删除不必要的钓场资产 修复into场景 update:更新meta文件,修复报错 update:修复资源 修复第一章节建造 修复建造第三章 update:删除多余内容 update:更新README.md update:还原图标 update:更新README update:更新配置
34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace UIExtend
|
|
{
|
|
public class AnimatorWithEffectStateMachine : StateMachineBehaviour
|
|
{
|
|
[SerializeField] private List<string> effectNames;
|
|
private Dictionary<string,GameObject> _effectObjs;
|
|
|
|
private void SetEffectObjState(Animator animator,bool isActive)
|
|
{
|
|
if(effectNames is not { Count: > 0 })return;
|
|
_effectObjs ??= new Dictionary<string, GameObject>();
|
|
foreach (var effectName in effectNames)
|
|
{
|
|
if(!_effectObjs.TryGetValue(effectName,out var effectObj))
|
|
effectObj= animator.gameObject.FindChildGameObject(effectName);
|
|
if (!effectObj) continue;
|
|
_effectObjs.TryAdd(effectName, effectObj);
|
|
effectObj?.SetActive(isActive);
|
|
}
|
|
}
|
|
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
SetEffectObjState(animator,true);
|
|
}
|
|
|
|
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
|
{
|
|
SetEffectObjState(animator,false);
|
|
}
|
|
}
|
|
} |