本文地址:https://blog.csdn.net/t163361/article/details/114371107
最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边栏的关注,谢谢。
19年左右调研Timeline的相关文档
本文简单介绍使用ILSpy+Reflexil如何修改DLL文件
Timeline调研过程中发现Track轨在编辑器中渲染都继承自TrackDrawer.cs
但是这个类是个internal类型的
internal class TrackDrawer : GUIDrawer
下面步骤可以实现将其修改为public
1.Reflexil最新版支持ILSpy的3.X版本,两个文件地址如下
下载其中的AIO版本
下载ILSpy的3.x版本
2.下载完后,将Reflexil解压到ILSpy.exe文件夹下
3.将UnityEditor.Timeline.dll以及依赖的UnityEngine.dll,UnityEditor.dll,UnityEngine.Timeline.dll拖到ILSpy中
依赖文件没有放入的话,会导致修改后保存失败
4.点击ILSpy中的一个齿轮图标打开Reflexil的修改界面
5.选中TrackDrawer后Reflexil会显示下面的截图
6.鼠标点击上面的@member access:IsPublic
7.同理修改CustomTrackDrawerAttribute将其改成public的
8.右键点击ILSpy窗口中的UnityEditor.Timeline,然后点Save as…即可生成修改后的DLL
9.将上面生成的新DLL改名后覆盖UnityEditor.Timeline.dll
10.打开对应的unity.exe,(上述修改过程Unity打开状态下也可进行)新建如下代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor.Timeline;
[CustomTrackDrawer(typeof(UnityEngine.Timeline.AnimationTrack))]
public class TestTrackDrawer : TrackDrawer {
public override float GetHeight(UnityEngine.Timeline.TrackAsset t)
{
return 50;
}
}
11.打开Timeline,创建一个Animation Track,会发现Track轨的高度已经改变了
参考文章:
http://qiankanglai.me/2016/03/05/reflexil/index.html
https://www.cnblogs.com/yjmyzz/p/3409917.html