一、编辑界面
1、项目窗口:
显示项目相关的所有文件,是您在应用程序中导航和查找“资源”及其他项目文件的主要方式。默认情况下启动新项目时,此窗口将打开。但是,如果找不到或已关闭,WindowGeneralProject可以从主菜单“窗口”>“常规”>选择打开。
2、对齐视图:
选择摄像机->游戏对象->对齐视图到选定项 (倒数2)
选择摄像机->游戏对象->对齐视图(倒数3) Ctrl+Shift+F
3、代码类识别:
为什么我连我居然没有:Debug类到找不到,听人说要:显示杂项文件,自己关联unity
编辑->首选项(Preferences)->外部工具(External Tools)-> Open by file extension
Visual Studio 2022 [17.14.36623] (选这个) -> 左边勾选(Embedded packages嵌入式包 与 Local packages本地包)
浏览…
4、坐标 x、y、z 对齐
遵循左坐标系: 前面是z 上面是Y 右边是x (通过鼠标长按右键滑动 -> 调整)
5、代码执行顺序
1、编辑->(项目设置)Project Settings->脚本执行顺序->UnityEngine.Ul.ToggleGroup->add (注意:先Apply同意,变会灰色,再动一下还原,才可点Revert覆盖 才会生效有点坑,或是重新点击运行也会生效)
2、要么在其中一个脚本中添加:Awake 做为最开始的执行顺序
6、后台运行
文件->生成设置->玩家设置->默认(设置 Windows, Mac, Linux)->分辨率和演示->后台运行 打勾即可
7、游戏流程图
游戏->多个场景,某个场景->多个物体对象,某个物体对象->多个脚本组件。
二、地形用法:
功能说明:
1、设置高度(1、展平设置) (2、固定一个高度,怎么样也不会越过,还可以用 shitt 吸取参照物的高度)
2、平滑高度 (平滑处理) 模糊方向:0时只是光滑 , 模糊方向:正数为升高山峰, 模糊方向:负数为降低山峰
3、绘制纹理 (种花,种草相关功能)
4、涂漆孔洞 (挖洞)
5、标记地形
6、抬高或降低地形 (常用)
1、Set Height
2、Smooth Height
3、Paint Texture
4、Paint Holes
5、Stamp Terrain
6、Raise or Lower Terrain
配合用:
1、Set Height -> 选高度 -> 展平瓦片(只展平当前) 或 全部展平(包括相邻的地形)
2、Raise or Lower Terrain -> 单击左键可以提升。 按住 shitt 并单击左键可以降低
三、预设体
说明:就是定义成公共的部分,方便修改 其它引用的也被修改。
1、如果引用的单独修改,不会修改相关的
2、如果直接改预设体,那么全部公共的部分会统一修改
3、预设体编辑后,重新托入生成样新的预设体时,可以设置为 预设体的 变体, 二次公共化哈哈。
四、场景设置
文件->生成设置->Build 中的场景 (把自己添加的场景拖进去) ->关闭
五、灯光
聚光 - 手电筒
定向 - 太阳光(默认),光线从无穷远的地方照过来的。旋转才有影响。
区域(仅烘焙) - 不是时时渲染(已经变成图片了)
用法:
1、选择哪些物体进行烘焙(可多选)
2、检测器->静态的旁边有个下拉小三角形->Contribute Gl
3、窗口->渲染->光照(照明)
六、摄像机
1、透视摄像机(近大远小3D)
2、正交摄像机(没有近大远小2D)
清除标志:
天空盒
纯色
仅深度 - (设置:选择->摄像机2 -> 仅深度-> 只收集拍到它摄到的物体)
不清除
用法:
选择->摄像机1默认的(深度-1比较小) 不用动
选择->摄像机2单独看物体(深度2比较大)深度高的会覆盖深度低的。所以只能看到它2照射的。《当前成-1小于摄像机1,就看到只显示摄像1的。》
选择->摄像机2->清除标志->仅深度 只收集拍到它摄到的物体,拍不到的那些都不显示,就会找下一个相机,从而达到场景中同时显示两个摄像机拍摄到的内容
注意:
仅深度 与 深度 是不一样的,但是他们都是面板中。
如果有两个摄像机,深度较高的那个一般就要改成: 仅深度
摄像机纹理:
项目->创建->渲染器纹理->选择摄像机2->看到目标纹理 (把刚刚创建的纹理拖进来)
报错:
因为每个摄像机默认都有一个声音组件,多个摄像一定只留一个有声音,其它的都删除,要不就一直报错。
七、声音(视频配置也是差不多。但是视频是放在纹理中用的,跟摄像机纹理差不多)
1、要在摄像机上有并且多个摄像机中只能有一个声音组件
2、添加一个立方体来进行播放声音->添加组件->查Audio Source 添加即可。 默认(唤醒打钩),如果是代码控制(把这个勾也取消,有要拖进来的声音也一样,全部取消,只保留组件)
八、重力
刚体:Rigidbody
质量
阻力 (下落时阻力)
角阻力 (旋转阻力)
自动质心
自动张量
使用重力 (不例用重力求不会往下掉,直接飘走)
是运动学的 (是的话,就跟个墙一样,撞不动)
插值 (第一秒与第二秒进行差值也就是与上一秒进行差值, 或是与一下秒进行差值)
碰撞检测
离散的持续 (非连续性,虽然节省性能,如果是高速物体碰撞,可能会遗漏)
连续动态 (高速物体用,性能消耗大,比如子弹,地面就要用这个)
Continuous Speculative (折中,还是有可能遗漏)
关节:Hinge Joint
左边:
Anchor : x=-0.5,y=0,z=0
轴: x=0,y=1,z=0
上边:
Anchor : x=0,y=0.5,z=0
轴: x=1,y=0,z=0
自动旋转(这个是自己动门设置):
1、Use Motor : 打钩
2、Motor:
目标速度 :50
力 :50
弹簧:
点击将要被掉的物体->搜索 Spring Joint ->已连接实体->把父类拖到(已连接实体)这样这个子类就会添加一个 挂到它父类 的弹簧效果。
物理材质:
冰面与地面,物理材质的影响
1、点击平面->Mesh Collider-> 材质 无(物理材质) 物理材质拖到这里来
2、点击方体->Box Collider-> 材质 无(物理材质) 物理材质拖到这里来
3、点击项目下的“Assets” ->
动态摩擦力 0.1
静态摩擦力 0.1
弹力 0
摩擦组合 平均
反弹合并 平均
九、动画
1、添加立方体->添加组件->Animator
2、项目(资源)->动画控制器
3、选择立方体->把动画控制器拖到 Animator的控制上
4、选择立方体->窗口->动画->动画->添加属性->Transform->位置 ok
如果想多添加一个动画
在动画->动画 的面板上,看到刚才添加的left动画,选择下拉->创建新剪辑。 (叫动画状态 left right)
导入别的人动画:
1、会在Assets目录下->
.....
导入的动画目录目录->
Animations 动画目录
Prefabs 预制件
Base 要这个才是最基础的
Scenes 场景,可以拖出来看看大概有什么,注意是大概
Scripts 例子脚本一般不需要
2、项目(资源)->动画控制器->新建立一个
3、选择玩家人物->把动画控制器(新建的)拖到 Animator的控制上
4、双击 把动画控制器(新建的)-> 把 Animations 目录中有动画拖到里面进行编辑->多个动画进行《创建过度》
->动画器->参数->添加控制锚点(注意锚点名,以后写c#脚本会用到)
->点击过度的线->添加控制锚点
剪辑(可以编辑一下别人的动画):
点击加号->重新命名为(newRun)->动画时间截取->(旋转,位置,XZ)烘焙
剪辑2(混合动画,把两个动画混合使用)
选择玩家人物->双击“动画控制器”进入->动画器->右键->创建状态->从新混合树(也就是混合动画)
->默认使用一个 fload类型的,可以新建立一个fload类的是叫: hun_he -> 从新点击混合树(也就是混合动画)-> Parameter下接->选择hun_he(以后就是用这个参数来进行混合的)
->Motion下面有个+号就可以添加多个动画(叫添加运动域),然后就进混合。《通过调参数,变微蓝就是在使用,都蓝就是都在使用》
->还可以添加:New Blend Tree 混合树(也就是混合动画) 也就是 混合树中又嵌套混合树 ~~
剪辑3(动画层,进行融合多个动画)
1、动画控制器->动画器->图层->
Any State 任何状态(接收100无数个动画过度到上面)->再过度到跑步,如果没有它的话,那么100个状态都连接到跑步,炸了
Entry 入口
Exit 退出(一般不怎么用,如果是子图层就会有用,子图层有个返回上一层,还是就是退出)
图层下面还可以建子图层(拿刀的子图层,拿抢的子图层)
->选择玩家人物->双击“动画控制器”进入->动画器->右键->创建状态->创建子状态 跟 剪辑2 从新混合树(也就是混合动画)平级。
2、融合动画,其实就是多个图层就行融合,也可以做到上面的(拿刀是一个层,拿抢是一个层) (思路:什么都没拿放第1层,拿抢放第2层里,拿刀的放第3层里,需要播放哪一层的动画就改哪一层的权重为1就可以了,这也是一个很好的分类方式)
默认:Base Layer ->点+号-> New Layer
->添加个挥手动画wave在此层->改成循环->应用
-> New Layer ->右边有个齿轮->设置权重即可混合动画。 站也不好站,挥手也好好挥手(这样的效果不是我们要的)怎么解决?
-> 权重 (这个一定要设置好,才能融合,但是有上面的问题,我们都设置权重为最大,用遮罩就行配置就可以解决上面的问题)
遮罩 (解决正真的融合)->等待下面创建好动画限制只有手臂,然后选择就好了,拖不进来,只能选。(边跑步边举枪~~)
配合上面的做动画限制:选择项目->Avatar遮罩(就是骨骼遮罩的意思,阿凡达的一个遮罩)->重新命名为:骨骼遮罩1->点击它就看到有个人形->选择只要手臂动画即可。
正在混合
同步
IK 处理
剪辑4(IK处理,让人看向这个目标)
动画控制器->图层->右边有个齿轮->IK(勾上即可,保证C#代码publi出了一个目标属性,并把立方体就是要看的目标拖上这个public)
//IK写到这个方法内 OnAnimatorIK
private void OnAnimatorIK(int layerlndex) {
//设置头部IK
animator.SetLookAtWeight(1);
animator.SetLookAtPosition(target.position);
//设置右手I权重
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1);
//旋转权重
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1);
//设置右手IK
animator.SetIKPosition(AvatarIKGoal.RightHand, target.position);
animator.SetIKRotation(AvatarIKGoal.RightHand,target.rotation);
}
曲线(挥拳效果):
点击加号->曲线名如my_quxing1(注意这里这个名到时就是在锚点那里也要是一样的)->编辑曲线
动画控制器->动画器->参数->添加控制锚点名字对应上面的:my_quxing1 相同 ,这样就可以在代码中时时获取: Debug.Log(animator.GetFloat("my_quxing1"));//随时获取Test参数并打印出来
事件(更有用):
手拖着动画时候时间轴->看左脚落地->在事件那里有个左竖+号添加事件为: leftFoot
->看右脚落地->在事件那里有个左竖+号添加事件为: rightFoot
最后C#脚本就可以用:
void leftFoot() {
Debug.Log("左脚");
}
void rightFoot() {
Debug.Log("右脚");
}
10、导航
Unity 2023的AI Navigation功能未显示的问题通常可通过以下步骤解决:
安装AI Navigation组件
打开Package Manager:点击菜单栏的 Window > Package Manager
切换到Unity Registry:在Package Manager窗口左上角下拉菜单选择 Unity Registry
搜索并安装AI Navigation:在搜索栏输入 AI Navigation,找到后点击 Install 完成安装。
1、添加障碍对象(大目录,子对象放二级目录)
2、窗口->AI->导航
名称 wan iia1 (这个到时在游戏对象组件中会用)
半径 0.05 (人物半径)
高度 1 (有个墙挡住,设置多高能有路,一般设置:《半径与高度》 差不多大就可以 )
步高 0.5 (能上多高的台阶)
最大坡度 35 (上斜坡的角度)
下面这两个没多大用(用link比这个好用)
Generated Links(生成分离网格链接)
掉落高度 10(人可以跳过去的高度)
跳跃距离 10(表示10米,可以跳过去的长度)
3、选择障碍对象->组件添加->NavMeshSurface(导航网格表面,烘焙)->Agent Type (代理类型:dao_hang_1)
Default Area (默认区域:可行走区域)----
Generate Links《生成连接,不用》
Use Geometry 《使用几何体,不用》
Object Collection (对象集合)---
Collect Objects (所有对象)----
Include Layers (混合图层,意思是所有图层,最后排除图层)------
4、选择玩家(人物)->组件添加->Nav Mesh Agent(导航网络代理)-> 障碍
躲避半径 (保持与上面烘焙一样即可)
高度 (保持与上面烘焙一样即可)
质量
优先级 (有两个人同时过一条窄路,谁优先级高信谁先过去)
->最后运行即可
5、导航障碍物(这个要排除在烘焙外,生成的导航,等于是没有设置导航的这一部分)
选择玩家(人物)->组件添加->Nav Mesh Obstacle
->切割
移动阈值
静止时间 (当停留多少秒后才切割)
仅在静止时切割(时时切,但是影响性能)
->变成动态烘焙这一小部分
发表评论 取消回复