unity编辑器中直接运行脚本方法(ex. animator all state make transition to exit)

操作方式:project中选择要操作的animator controller 之后去顶部菜单栏找到你创建的[MenuItem("Tools/MyFunction")] 点击运行方法

using UnityEngine;
using UnityEditor;
using UnityEditor.Animations;

public class AnimatorControllerUtility
{
    [MenuItem("Tools/Create Transitions to Exit")]
    public static void CreateTransitionsToExit()
    {
        // Get the selected Animator Controller
        AnimatorController animatorController = Selection.activeObject as AnimatorController;

        if (animatorController == null)
        {
            Debug.LogError("Please select an Animator Controller.");
            return;
        }

        // Loop through all layers in the Animator Controller
        foreach (var layer in animatorController.layers)
        {
            var stateMachine = layer.stateMachine;

            // Loop through all states in the layer
            foreach (var state in stateMachine.states)
            {
                AnimatorState animatorState = state.state;

                // Check if there is already a transition to exit from this state
                bool hasExitTransition = false;
                foreach (var transition in animatorState.transitions)
                {
                    if (transition.destinationState == null)
                    {
                        hasExitTransition = true;
                        break;
                    }
                }

                if (!hasExitTransition)
                {
                    AnimatorStateTransition transitionToExit = animatorState.AddExitTransition(); // Adding transition to exit implicitly

                    transitionToExit.hasExitTime = true;
                    transitionToExit.exitTime = 1f; // Ensure it triggers when the state finishes
                    transitionToExit.duration = 0f; // Optional: Set duration of the transition
                }
            }
        }

        Debug.Log("Transitions to Exit created for all states.");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一分之三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值