U3L14-3——代码控制动画状态机切换
U3L14-3——代码控制动画状态机切换 关键组件Animator参数相关 Controller:对应的动画控制器(状态机) Avatar:对应的替身配置信息(之后讲解3D模型时详细讲解) Apply Root Motion:是否启用动画位移更新 如果要使用动作目标匹配,则该选项必须启用! UpdateMode:更新模式(一般不修改它) Normal:正常更新 Animate Physics:物理更新 Unscaled Time:不受时间缩放影响 Culling Mode:裁剪剔除模式 Always Animate:始终播放动画,即使在屏幕外也不剔除 Cull Update Transforms:摄像机没有渲染该物体时,停止位置、IK的写入 Cull Completely:摄像机没有渲染物体时,整个动画被完全禁用 本章代码关键字 1234567891011Animator //动画状态机类animator.SetFloat() ...
U3L14-2——Animator Controller动画控制器(状态机)
U3L14-2——Animator Controller动画控制器(状态机) 创建动画状态机 通过为场景中物体创建动画时自动创建 手动创建动画状态机文件 基础使用——初识动画状态机窗口 左侧面板 Layers:动画层级页签,为动画添加更多的层级, 层级权重高的动画播放会覆盖层级权重低的 Parameters:参数页签,为动画状态机添加控制状态切换的参数 眼睛图标:显隐左侧面板 右侧面板 网格化布局区域: 主要用于编辑状态之前的切换关系 1.窗口中的每一个矩形表示一个状态 2.窗口中的每一个箭头表示一个切换条件 矩形说明: 默认三大矩形: 绿色 Entry 矩形:进入状态机流程 红色 Exit 矩形:退出状态机流程 Any State:任意状态,代表状态机中的任意状态 人为添加矩形: 橙色矩形:一开始的默认状态动画,和 Entry 相连 表示一开始播放的动画 灰色矩形:自己添加的某一种动作状态 基础使用——添加动画 自动添加——为对象创建动画后会自动将动画添加到状态机中 手动添加1——将动画文件拖入到状态机中...
U3L14-1——有限状态机
U3L14-1——有限状态机 有限状态机 有限状态机(Finite - state machine, FSM),又称有限状态自动机,简称 状态机 是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型,其中: 有限:表示是有限度的不是无限的 状态:指所拥有的所有状态 游戏开发中某些系统中存在有限种状态的切换变化时,我们可以使用有限状态机的设计思路来进行逻辑编写 举例说明: 假设我们人会做很多个动作,也就是有很多种状态,这些状态包括 站立、走路、跑步、攻击、防守、睡觉等等 我们每天都会在这些状态中切换,而且这些状态虽然多但是是有限的, 当达到某种条件时,我们就会在这些状态中进行切换,而且这种切换时随时可能发生的 有限状态机对于我们的意义 游戏开发中有很多功能系统都是有限状态机,最典型的状态机系统: 动作系统 —— 当满足某个条件切换一个动作,且动作是有限的 AI(人工智能)系统 —— 当满足某个条件切换一个状态,且状态是有限的 所以状态机是游戏开发中一个必不可少的概念 最简单的状态机实现 最简单的状态机实现代码就是基于 switch...
U3L13-1——代码控制动画(老动画系统)
U3L13-1——代码控制动画(老动画系统) 老动画系统 Unity中有两套动画系统 新:Mecanim动画系统——主要用Animator组件控制动画 老:Animation动画系统——主要用Animation组件控制动画 (Unity4之前的版本可能会用到) 目前我们为对象在Animation窗口创建的动画都会被新动画系统支配 有特殊需求或者针对一些简易动画,才会使用老动画系统 老动画系统主要用于处理老版本项目和简单的一些自制动画 新项目都不建议大家使用了 关键组件:Animation 本章代码关键字 12345678Animation //老动画系统类animation.Play() //播放动画animation.CrossFade() //过渡播放动画animation.PlayQueued() //队列播放动画,如果前一个动画没有播放完先等前一个动画播放完再播放animation.CrossFadeQueued() ...
U3L13-2——创建编辑Animation动画
U3L13-2——创建编辑Animation动画 创建动画 在场景中选中想要创建动画的对象 在Animation窗口中点击创建 选择动画文件将要保存到的位置 保存动画文件时,Unity会帮助我们完成以下操作 创建一个 Animator Controller(动画控制器 或称之为 动画状态机)资源(新动画系统) 将新创建的动画文件添加到Animator Controller中 为动画对象添加Animator组件 为Animator组件关联创建的Animator Controller文件 窗口变化 左侧面板 多出一个可以选择当前动画的下拉列表 可以在这里创建新动画和切换动画 多出一个可以添加变化属性的按钮 在这里你可以任意添加你想要在动画中变化的脚本变量 要显示这个,需要先在Animation面板右上角三点菜单选择Show Sample Rate 该数值决定该动画为一秒多少帧 右侧面板 时间轴可以拖动 注意:时间轴上的单位为n秒n帧 一格代表一帧(并不是秒) 关键帧的右键菜单(主要用于曲线模式) Add...
U3L14——Animator动画状态机
U3L14——Animator动画状态机 有限状态机 有限状态机 Animator Controller动画控制器(状态机) Animator Controller动画控制器(状态机) 代码控制动画状态机切换 代码控制动画状态机切换
U3L13——Animation动画窗口
U3L13——Animation动画窗口 Animation窗口 Animation窗口 直译就是动画窗口 它主要用于在Unity内部创建和修改动画,所有在场景中的对象都可以通过Animation窗口为其制作动画 原理: 制作动画时:记录在固定时间点对象挂载的脚本的变量变化 播放动画时:将制作动画时记录的数据在固定时间点进行改变,产生动画效果 打开Animation动画窗口 Window——>Animation——>Animation 关键词说明 动画时间轴 每一个动画文件都有自己的一个生命周期,从动画开始到结束 我们可以在动画时间轴上编辑每一个动画生命周期中变化 动画中的帧 假设某个动画的帧率为60帧每秒,意味着该动画1秒钟最多会有60次改变机会 每一帧的间隔时间是 1s/60 ≈ 16.67毫秒 也就是说...
U3L12-7——Tilemap代码控制相关
U3L12-7——Tilemap代码控制相关 本章关键字 123456789UnityEngine.Tilemaps //Tilemap相关所需的命名空间Tilemap //瓦片地图信息 可以通过它得到瓦片格子Grid //格子位置相关控制 可以通过它 进行坐标转换TileBase //瓦片资源对象基类tilemap.ClearAllTiles() //清空瓦片地图tilemap.SetTile(,) //设置某个格子位置的瓦片tilemap.SetTiles(,) //设置多个格子位置的多个瓦片tilemap.SwapTile(,) //批量替换某种瓦片grid.WorldToCell() //世界坐标转换为格子坐标 获取Tilemap和TileBase和Grid Tilemap组件:用于管理瓦片地图 瓦片地图信息...
U3L12-5——官方拓展包—新增瓦片类型
U3L12-5——官方拓展包—新增瓦片类型 新增瓦片类型 请注意! 本次笔记内容对应的课 讲解的是2019版unity的2D extras 而笔者在本次学习中 使用的是2021版unity的2D Tilemap extras 前者已停止更新,后者在Unity2021版2D项目上会自动安装,同时,两者并不兼容 但是,2D Tilemap extras并没有包含所有的2D extras的内容,相比2D extras缺少了部分瓦片类型和笔刷类型 基于以上原因,接下来的笔记优先基于2021版上预装的2D Tilemap extras,而对于相比2D extras缺失或者不同的部分会另外标记和记录 左图是2021版unity的2D Tilemap extras的新增瓦片类型;右图为2019版unity的2D extras的新增瓦片类型 规则瓦片 RuleTile 定义不同方向是否存在连接图片的规则,让我们更加快捷的进行地图编辑 Default Sprite:默认图片 Default GameObject :默认游戏对象 Default...
U3L12-6——官方拓展包—新增笔刷类型
U3L12-6——官方拓展包—新增笔刷类型 新增笔刷类型 请注意! 本次笔记内容对应的课 讲解的是2019版unity的2D extras 而笔者在本次学习中 使用的是2021版unity的2D Tilemap extras 前者已停止更新,后者在Unity2021版2D项目上会自动安装,同时,两者并不兼容 但是,2D Tilemap extras并没有包含所有的2D extras的内容,相比2D extras缺少了部分瓦片类型和笔刷类型 基于以上原因,接下来的笔记优先基于2021版上预装的2D Tilemap extras,而对于相比2D extras缺失或者不同的部分会另外标记和记录 左图是2021版unity的2D Tilemap extras的新增笔刷类型;右图为2019版unity的2D extras的新增笔刷类型 新建自定义笔刷(2D Tilemap...