摘要:
背景 最近在重构自己曾经的代码, 具体需求是在Unity等待如一个模型动画, 一段ui动画 如下: Await的目标 await的目标是一个可等待对象, 而拥有GetAwaiter方法并且该方法拥有合适返回值的目标即可称为可等待对象(暂时你还不需要知道返回值需要符合什么规则,待会儿Studio会告诉 阅读全文
摘要:
边遍历边删除, 前几天面试的时候被问到了这个问题。 今天研究了一下。 当时的解法是定义EndIndex作为结束标识,默认等于列表的Count 在for循环中不以列表的Count作为结束标识,而是使用EndIndex作为结束标识。 在检测到需要被删除的元素时,将该元素与尾部元素(EndIndex-1对 阅读全文
摘要:
协程,协程其实就是以IEnumerator为根本,在上面套了一层Coroutine的皮,然后在合适的时机调用迭代器的MoveNext方法。通过迭代器的Current的值,进行合适时机的选择。 在C#中,通过Console.ReadKey()模拟Unity中的每一帧。 1 static IEnumer 阅读全文
摘要:
【1】Timeline播着播着自动暂停 有时候我们使用Timeline制作了一段动画,其中涉及到了控制Animator。同时,我们为了节省性能,把Animator的剔除模式(CullingMode) 设置为 CullCompletely (物体没有被渲染时,完全停止动画)(为了方便,我们把这个带An 阅读全文
摘要:
当我们需要根据当前动画状态执行一些事件的时候,我们往往会需要使用动画事件。 我们可能会使用下面的方法 对动画添加动画事件,当进入动画时调用 OnEnterAnimation 方法 var clips = this.animator.runtimeAnimatorController.animatio 阅读全文
摘要:
做Unity项目的时候出现了奇怪的Bug(数据一直重置)。当以类的形式声明时,就不会有这个Bug。但以结构体的形式声明时,就会出现刚刚说的问题。找了一晚上Bug,逐步分析才发现是结构体链式编程的问题。 C#的结构体不支持链式编程,百度了一圈没人讨论这个。 Bing了一下才发现有人讲这个,原博客:通过 阅读全文