一、编辑界面
	 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
														->切割
															移动阈值
															静止时间		(当停留多少秒后才切割)
															仅在静止时切割(时时切,但是影响性能)
																						->变成动态烘焙这一小部分		


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
{__SCRIPT__}