![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
瀟飋秋風
这家伙很懒 什么都没有留下
展开
-
Dots下给程序化生成的网格加上Lod
如何动态给Entity加LOD原创 2022-05-27 01:45:59 · 367 阅读 · 0 评论 -
记录一个在0.17版本BlobAsset的bug处理方法
话说现在都entity0.50了,还有人在继续用0.17吗?0.5不支持unity animation,不舍得自己以前撸的animation代码,就只能继续保持0.17了。。0.17的版本,使用Blob会有个错误提示:error ConstructBlobWithRefTypeViolation: You may not build a type T with Construct as T is a reference or pointer. Only non-reference types a原创 2022-05-14 13:27:05 · 122 阅读 · 0 评论 -
放一个Dots Event的简单实现代码
using ECB = EntityCommandBuffer.ParallelWriter; public interface IDealEvent<TData> where TData : IComponentData { public bool DealEvent(in TData eventValue, ref TData data); } public class EventSystem<TData,TDeal.原创 2021-06-09 00:24:50 · 247 阅读 · 0 评论 -
Unity HybridRender 视锥体裁剪
Unity HybridRender使用Unity.Rendering.FrustumPlanes结构体来实现视锥体裁剪。这个结构体基本都为静态函数,其中使用NativeArray<PlanePacket4>作为参数的函数是HybridRenderSystem中进行裁剪的参数。从试验结果看,如果需要在逻辑层判断是否在视锥体内,可以考虑使用FromCamera(Camera camera, NativeArray<float4> planes)构造视锥体6个平面,然后使用Inte...原创 2021-05-16 02:21:00 · 1146 阅读 · 0 评论 -
Unity Dots下有限状态机的实现
在我上一篇博客https://blog.csdn.net/moonstrace/article/details/114560794的文章里,针对如何利用ASTAR插件实现自动寻路时,利用了两个ENUM实现了一个简单的状态机。但这个状态机并不能具普遍适用。本文试图在这个基础上实现一个简单通用的有限状态机。 首先我们还是对有限状态机的功能进行拆解。首先,状态机应该与外部有交互功能,外部的输入要能够输入到状态机中。其次,状态机的核心功能是管理状态本身的改变,最后,要实现状态机的功能,其每个子...原创 2021-03-21 13:58:14 · 281 阅读 · 0 评论 -
利用状态机及Astar插件实现dots下寻路
本文主要讨论一种利用两层状态机将Astar寻路功能在dots下实现的功能。首先说下为什么要使用Astar这个插件。这个插件的功能很多其实不依赖于unitymonobehavior这一套体系,因此在转为dots使用时可以更加方便,并且可以最大程度的不在场景中通过gameobject来获得寻路功能。Unity本身自带的寻路目前没有更多的API,如果要使用Unity自身的导航系统,估计只能使用GameObject Injecte方式,在dots世界内外都保存一个副本,如此效率显然十分低下。为了将寻路...原创 2021-03-09 02:20:36 · 922 阅读 · 2 评论 -
利用运算符来自由组织unity动画协程代码
我上一遍文章里提到了利用装饰思想来写一个协程帮助类,来实现动画组合的解耦。然后这个类由于直接使用了IEnumerator,会导致一个BUG就是传入参数不能随着动画结果更新,结果是动画协程执行的参数并不是我们期望的执行到该点的值,而是一开始生成协程链参数的初始值。解决思路就是使用委托,通过封装委托,来保证动画协程的生成一定是执行到该点后才生成。除此之外,Iem调用链条也很不直观,因此考虑使用...原创 2018-03-25 00:52:56 · 320 阅读 · 0 评论 -
一个unity 协程的帮助类
unity协程在写动画相关的代码时相当有用。但如果组织不当常常会导致思维混乱。这是一个使用协程的帮助类,利用装饰模式的思想最大化解耦。代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using System;public class IEM : MonoBehaviour {原创 2018-01-27 20:28:12 · 673 阅读 · 0 评论 -
NGUI学习笔记2-窗口及子类
NGUI 窗口及子类总共有sprite,label,texture,,2d sprite,widget几类。这是NGUI的基础显示单元,通过和不同的脚本结合,从而产生强大的效果。 首先我们看widget。这个widget本质上是个容器,但单独把这个放场景基本是不显示的。所以他的最大作用就是分类管理。但是考虑到所有子类都从widget派生,实质上所有子类都有容器的功能。比如,在设计UI时,可原创 2016-07-18 23:53:42 · 415 阅读 · 0 评论 -
NGUI学习笔记1-菜单
最近某个项目,项目方指定要求UI系统要用NGUI。。考虑到现在unity NUGUI很火,所以写这篇文章,也是对以后的一个参考。 从总体上看,NGUI的使用是很方便的。新建一个基础组件,然后挂接一个对应的功能脚本,是不是很强大。所以我觉得这东西火就火在这里,给了策划和美工更多的空间。 首先大致看下NGUI菜单的功能。 Selection:用来控制层显示。在上层的显然会原创 2016-07-17 13:02:42 · 587 阅读 · 0 评论 -
unity实现自己的一个消息系统
unity中应该至少有2类Event系统。一种是UnityEvent,这个用起来很方便,只要在脚本里定义了一个UnityEvent,就可以在面板通过拖拉的方式设置消息的响应者。但问题是如果是不能在面板拖来拖去的场合,就有点繁琐。而且假如有一大波新对象需要接收老信息,这个维护起来很是很繁琐的。还有一种是利用了Eventsystem的消息系统,但这个系统与ui系统整合,虽然仍然可以自定义消息,但是只要原创 2016-07-02 23:46:48 · 4740 阅读 · 0 评论 -
NGUI学习笔记3-功能脚本
上篇笔记写到,NGUI自定义的基础窗体实际上只有那么有限的几种,那NGUI是怎么实现强大的功能呢,答案就是通过脚本。通过挂接功能脚本,所对应的窗体立即获得响应的功能,相当的方便。那么NGUI怎么挂接脚本呢?一种是直接使用NGUI的attach菜单,另一种是象传统的那样直接把脚本拖到对应的控件上面去。这里建议使用第一种操作,因为这样免除第2种方法还需要设置脚本对象的操作。接下来我们看看NGUI at原创 2016-07-24 23:28:03 · 1189 阅读 · 0 评论