目录 第1章输入系统1 1.1旧输入系统Input Manager2 1.1.1获取鼠标按键输入2 1.1.2 获取物理按键输入3 1.1.3获取虚拟轴输入7 1.1.4获取按钮的输入9 1.1.5获取触摸屏的触摸输入10 1.1.6Input Manager配置12 1.1.7XBox手柄设备的输入14 1.2新输入系统Input System27 1.2.1基于旧输入系统做兼容27 1.2.2Input Action Asset配置文件37 1.2.3Player Input组件40 第2章数学基础43 2.1Mathf43 2.1.1常量43 2.1.2三角函数44 2.1.3插值函数44 2.1.4最值与限制函数45 2.1.5幂、平方根、对数函数46 2.2向量47 2.2.1向量加减47 2.2.2向量数乘48 2.2.3向量插值48 2.2.4向量点乘与叉乘48 2.3矩阵51 2.3.1矩阵的基本运算52 2.3.2变换矩阵53 第3章相机控制57 3.1第一人称类型相机57 3.2第三人称类型相机59 3.2.1通过角色朝向控制视角59 3.2.2通过用户输入控制视角62 3.3自由控制类型相机66 3.3.1观察者视角控制66 3.3.2漫游视角控制71 3.4Cinemachine73 3.4.1基于虚拟相机实现第三人称视角73 3.4.2轨道路径与推轨相机75 3.4.3在Timeline中控制镜头78 第4章物理检测85 4.1射线投射检测85 4.1.1获取鼠标单击地面位置86 4.1.2游戏物体事件响应系统90 4.2球体投射检测95 4.3盒体重叠检测98 4.4物理检测可视化103 4.4.1盒体重叠检测可视化104 4.4.2盒体投射检测可视化106 4.4.3球体投射检测可视化108 第5章动画系统111 5.1动画剪辑111 5.1.1录制关键帧112 5.1.2创建和编辑关键帧112 5.1.3外部导入的动画资产112 5.2动画状态机114 5.2.1Animator窗口114 5.2.2动画状态115 5.2.3动画过渡116 5.2.4混合树118 5.3动画事件120 5.3.1Animation Clip Event121 5.3.2State Machine Behaviour121 5.4动画曲线122 5.5BlendShape123 5.6反向动力学124 5.6.1Animator IK125 5.6.2人物角色脚部放置方案126 5.6.3IK权重值曲线烘焙131 第6章寻路算法140 6.1Navigation140 6.1.1导航网格140 6.1.2导航网格代理142 6.1.3导航网格障碍物145 6.1.4网格外链接146 6.2A星寻路147 6.2.1地图数据147 6.2.2计价方式150 6.2.3邻节点搜索方式151 6.2.4算法实现153 6.2.5寻路组件156 6.2.6寻路代理157 6.2.7路径优化160 6.2.8地图编辑器162 6.3流场寻路166 6.3.1流场167 6.3.2算法实现168 6.3.3寻路组件170 6.3.4寻路代理173 6.4八叉树寻路174 第7章游戏单位驱动184 7.1用户人物角色驱动184 7.1.1基于刚体组件实现人物角色驱动184 7.1.2基于角色控制器组件实现人物角色驱动188 7.2人物角色行为194 7.2.1跳跃194 7.2.2滑行196 7.2.3翻越201 7.2.4掩体行为205 7.3敌方战斗单位驱动213 7.3.1有限状态机213 7.3.2敌方战斗单位AI221 7.4汽车驱动225 7.4.1车轮碰撞器225 7.4.2驱动类型227 7.4.3车辆转向230 7.4.4行驶速度230 7.4.5ABS与ASR231 7.4.6尾气排放232 7.4.7车辆音效235 7.4.8撞击变形235