是这样的,在某个痛苦欢乐的编程工作中,由于代码的测试和管理实在让我头疼而公司并没有给我提供对应的工具,于是我盯上了依赖注入来对代码进行测试,管理则是与之关联的另一个东西:ioc容器。但很可惜我不太懂其中原理,于是我的好友,向我伸出了毒手援手 —- yukiframework框架,安装也很简单,只要下载包然后导入,最后你只需要通过窗口导入你想要的模块即可,确实方便。
然后我还发现,这个框架确实有点东西,而且还在持续更新中,我稍微介绍一下部分我觉得有意思的地方。
这是一部分比较炫酷的功能点,主要集中在对特性的拓展以及对序列化的一些功能化的拓展,主要集中在一些特性的拓展,比如那些插件中胡里花哨的修改颜色,也对某些可以序列化但unity并没有做的部分进行了拓展,类似于奥丁插件
不过颜色的支持这块暂时还有点不太成熟,但确实帅很多了。还有就是对数组序列化的部分,这个就看各位大佬的需求了
贝塞尔曲线,不仅仅可以在编辑模式展示轨迹,同时,这个轨迹也可以直接使用
public BezierVisualTool tool;
private void Start()
{
var bezier = transform.BezierTowards(tool,1);
//如果你要在移动的时候写逻辑,也就是需要Update检测的
bezier.OnUpdate += () => Debug.Log($"我在移动");//添加回调
bezier.OnCompleted += time => Debug.Log($"移动了{time}秒");
}
如上述代码显示,其中beziervisualtool 是拓展的贝塞尔曲线实例,对transform内的方法进行了拓展,其中第二个参数就是速度,这个beziervisualtool就是上上边那张图展示的贝塞尔曲线
内置方法,大伙也注意到了这里边有个匿名函数,对的,这里可以传入委托,同时添加了一些这个框架自己对贝塞尔曲线的运动时的生命周期的一些委托方法,可以在运动时进行某些方法的实现之类的功能
不过注意,因为本身有一套生命周期,所以不要再update生命周期中调用。
这个功能还是比较牛逼的,对协程进行拓展
protected override void Awake()
{
base.Awake();
//MonoHelper支持对任何脚本进行方法在Update生命周期的注册,以及协程的托管,注意使用MonoHelper托管的协程不是框架的拓展协程
MonoHelper.Update_AddListener(monoHelper => { });
//MonoHelper.Start(Enumerator());//这是最基本的协程,只不过自由一些,当然生命周期也就不会被声明的哪个类影响了,由MonoHelper托管
//拓展协程
//直接拓展方法Start启动协程,该协程会返回这个IYieldExtension接口
IYieldExtension yield = Enumerator().Start();
//古希腊掌管协程的暂停
yield.OnPause();
//古希腊掌管协程的恢复(非暂停状态无效)
yield.OnResume();
//协程的强制终止
yield.Cancel();
//这样就关联自己这个MonoBehaviour了
yield.CancelWaitGameObjectDestroy(this);
//指令回调,等待该协程完全执行完毕后执行这个回调
yield.Request(() => { });
}
这个的方法可以对协程进行更加细致的管理,同时里边还有一些回调供开发者使用
更多的功能就由各位感兴趣的好兄弟们探索了,评论区可能会出现开发者,据说他有些好康的带给各位好兄弟
git连接:[https://gitee.com/NikaidoShinku/YukiFrameWork/blob/master/YukiFrameWork/Framework/EditorTool.md](https://)
开发者联系方式:
QQ:1274672030
邮箱:1274672030@qq.com
作者: @NikaidoShinku