Files
MinFt/Client/Assets/Scripts/UIExtend/AnimatorWithEffectStateMachine.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

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);
}
}
}