Unity编辑器拓展Scene下播放动画

本文介绍了一个用于Unity的自定义编辑器脚本,该脚本扩展了Inspector面板的功能,允许开发者在场景中预览和控制游戏模型上的动画剪辑。通过使用Animator组件,此脚本提供了选择和播放不同动画剪辑的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Linq;

[RequireComponent(typeof(Animator))] //这个脚本作用就是为了加载游戏模型上
public class PlayAnimInScene : MonoBehaviour //什么都没有,方便继承
{
}

#if UNITY_EDITOR
[CustomEditor(typeof(PlayAnimInScene),true)] 
public class AnimUtility:Editor //这里可以override onInspector
{
    PlayAnimInScene _Script;
    private AnimationClip[] clips;
    private float len;
    private int curIndex;
    private void OnEnable()
    {
        _Script = target as PlayAnimInScene;
        Animator anim = _Script.GetComponent<Animator>();
        clips = anim.runtimeAnimatorController.animationClips;
    }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        //从这里开始检查 
        EditorGUI.BeginChangeCheck();
        GUILayout.Label("当前剪辑:");
        curIndex = EditorGUILayout.Popup(curIndex, clips.Select(p => p.name).ToArray()); //还原clip状态
        GUILayout.Label("播放长度:");
        len = EditorGUILayout.Slider(len, 0, 1);
        if(EditorGUI.EndChangeCheck())
        {
            AnimationClip clip = clips[curIndex];
            clip.SampleAnimation(_Script.gameObject, clip.length * len);
        }
    }
}
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JustEasyCode

谢谢您

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

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

打赏作者

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

抵扣说明:

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

余额充值