zoukankan      html  css  js  c++  java
  • Unity Animator State Write Defaults 属性多个初始状态应用

    Animator 中的 State 里有个可以勾选的属性叫 Write Defaults

    因为一直是默认勾选的,也没太当回事,现在发现是个很重要的玩意

    (其实就是Animator坑爹罢了,以后不要再用Animator里面的蜘蛛网写2D逐帧动画了,自己写个状态机不香吗?

    一个常见的例子就是假如我想有多个可能的状态作为 Default State

    如官方图

    然而令人智熄的是官方的这个图根本无法实现(bug?

    目前有个小技巧可以做到相同的目的:

    创建一个空state,把这个state设为default State

    然后再把它当作Entry像上图那样链接

    看起来好像没什么问题,但是实际运行时会发现在空节点时,没有任何动画的Sprite会被一些不可预测的其他帧替换

    导致人物看起来好像抽搐了一下

    虽然只有一帧,但是仍然是要命的问题

    这个时候,将空节点的Write Defaults 属性取消勾选即可按照预期运行

    原来当某个节点中Motion,也就是动画是空的时候

    Write Defaults属性勾选时,Animator会把所有没被动画设置的值设成一些默认值

    而这些默认值有没有任何的官方文档解释

    结果最终的结果就变得不可预测了

    只要取消勾选,就算没有动画Animator也不会更改任何值

    这样就会维持上一帧的状态。。。

    如果你看到这里,并且也在做2D逐帧动画

    劝你直接写状态机,然后手动调用Play函数(想念flash的第xxx天)

  • 相关阅读:
    牛人读书 列表
    设计模式 简介
    java 并发编程 list
    Spring Boot 概念知识
    JS原生Date类型方法的一些冷知识
    JavaScript 操作 Cookie
    nodeJS(express4.x)+vue(vue-cli)构建前后端分离详细教程(带跨域)
    Vue学习笔记(一)
    windows下常查看端口占用方法总结
    webstorm添加*.vue文件代码提醒支持webstorm支持es6vue里支持es6写法
  • 原文地址:https://www.cnblogs.com/2017SSY/p/14304599.html
Copyright © 2011-2022 走看看