导航系统
Unity的寻路系统AStarPathFinding: Navigation:unity自带的寻路系统;比较简单AgentRadius:烘焙路径可行区域和非可行区域的间隔;AgentHeight:烘焙路径时当高度小于这个值的地方,就是不可行区域;Max Slope:最大可行区域的坡度;Step Height:最大台阶高度;Drop Height:下落高度;Jump Distance:最大跳跃距离; 实现从低点到高点的跳跃:从cube3的位置到cube4的位置(如下图): NavMeshAgent 寻路组件:Base offset:组件的竖直方向的偏移量; Speed:速度;Agular Speed:角速度;Acceleration:加速度(加速度是矢量,有大小有方向,在加速时是加速度,减速时是减速的加速度);StoppingDistance:距离目标点多远就停止(速度不能太快,加速度不能太小,否则跟目标点距离等于stoppingdistance时停不下来) Radiu:寻路组件半径;Height:寻路组件高度;Quality:寻路精细度,速度越快对寻路精细度要求越高;Prio...
UI基础知识
UI UI:User Interface 用户界面 UE:User Experience 用户体验 常见的UI类型环抱式 弹框 全屏覆盖 超全屏 3D 常见设备的分辨率常见设备显示比例 4:3:iPad,安卓Pad 16:9:非全面屏的手机,PC的显示器 18:9:全面屏 异形屏:向标准分辨率靠近 配置常见设备分辨率 Unity界面的发展史 Unity 图形用户界面 unity Graphical User Interface Unity4.6版本之后引入的界面显示系统 Unity公司自己研发的一套界面显示系统 Unity的UI系统(OnGUI、NGUI、UGUI)OnGUI OnGUI:最早的UI系统,纯代码实现,写法类似Update 优点:出现很早,纯代码可控制 缺点:只能程序开发 NGUI NGUI:Unity著名插件,可实现2D和3D的界面,出现在老项目 优点:功能完整,集成了动态效果 缺点:性能较弱,交互使用物理引擎实现,需要付费 UGUI:官方制作的UI系统,NGUI作者开发 优点:性能优秀,功能较完整 缺点:功能需要再完善,动画需要配合DOTween ...
UI的事件交互
- Word M3W1 -
动画系统(Animation 和 Animator)
Animation:老版动画 Unity对老版Animation动画支持越来越弱,推荐使用的是新版动画Animator; 编辑Animation动画 1 Animation组件:Animation:这个是当前默认播放动画片段;Animations:是Animation数组,可以放多个animation动画片段;Play Auto:是否自动播放;Idle 通过动画组件播放动画 Animator新动画系统 - Word M2W4 -
Unity中UI基础控件
Unity中UI基础控件 Canvas 画布 Rect Transform 矩形变换 Text 文本 Image 图片 Raw Image 原始图片 Button 按钮 # Toggle 开关 Slider 滑动条 Scrollbar 滚动条 Dropdown 下拉框 InputField 输入框 Panel 面板 Scroll View 滑动视图 Canvas 画布 画布,绘制UI元素的载体,所有元素必须在Canvas之下。 UI元素的绘制顺序依赖于Hierarchy (层级面板)中的顺序。 参考https://docs.unity3d.com/cn/current/Manual/class-Canvas.html UI元素渲染顺序 在同一个Canvas下的UI对象会根据在Hierarchy窗口中从上到下的顺序进行渲染 以Hierarchy参考 下方物体在上方物体前显示 子物体在父物体前显示 下方物体永远在前显示,无论上方的层次结构 Render Mode 渲染方式(三种) Screen Space-Overlay 覆盖模式 Screen Sp...
射线
LineRenderer(划线组件)Material:划线的材质;Positions:多个点,划线的点集;Use World Space:是否使用世界坐标系;Loop:是否循环,是指第一个点和最后一个点是否形成闭环;Width:划线的宽度,通过曲线来控制; 一条射线碰撞到多个碰撞体1234567Ray ray1 = new Ray(Vector3.zero, Vector3.forward);//同理一条射线能触碰多个碰撞体,并返回碰撞信息数组﹔如果没有磁撞到碰撞体,数组长度为0RaycastHit[] hitinfos = Physics.RaycastAll(ray1,1000,(1 <<LayerMask.NameToLayer("UI")) + (1 << LayerMask.NameToLayer("Cube")));for (int i = 0; i < hitinfos.Length; i++){ Debug.Log(hitinfos[i].transform.name);...
相机
在线文档https://docs.unity.cn/cn/current/Manual/class-Camera.html Camera component(摄像机组件) 属性: 功能: Clear Flags Skybox 天空盒 Solid Color 填充颜色,当有空白处,填充背景颜色 Depth Only 仅考虑深度;只渲染我需要渲染的层,而且不受其他不渲染层遮挡影响 Don’t Clear 不清除上一帧留下的渲染数据,类似残影效果 Culling Mask 裁剪层;这里面控制当前摄像机会渲染哪些层的游戏物体,是通过二进制的形式去控制的 Projection Perspective 透视摄像机;一般渲染3D场景或者说是3D摄像机,能渲染出z轴值变化效果 Orthographic 正交摄像机,一般渲染2D场景或者2D游戏,游戏物体在z轴运动效果不能显示 Size/Field of view 摄像机渲染范围大小 Clipping Planes:Near/far 渲染最近/最远距离;所需要渲...
声音系统
AudioSourceAudioSource:播放声音的组件,音源Mute:静音Play On Awake:自动播放;Loop:循环;Priority:优先级;Volume:音量大小;Pitch:音调高低; AudioListenerAudioListener:监听声音;一般放摄像机上,相当于是耳朵重要:一个场景内只能有一个这个组件; AudioClipAudioClip:Unity支持的音频格式: .aiff:适用于较短声音片段; .wav: 适用于较短声音片段; .mp3、OGG:适合较长的音乐片段; Force to mono:强制将多声道音频转换成单声道音频,占用大小会缩小;勾选Normalize之后会对声音有优化; Load In Background:在后台加载声音;Load Type:Decompress On Load:以不压缩的形式存在内存,用的时候方便,但是占用内存高; Compress in memory:以压缩的形式存在内存, Streaming:以流的形式存在内存,使用时现解码;Preload Audio Data:预加载音频资源;如果勾...
Unity中的3D数学
函数三角函数123456//角度转换成弧度float x= Mathf.Deg2Rad*180;//弧度转换成角度float y = Mathf.Rad2Deg*3.14f;Debug. Log("x:"+ x+", y:"+y); 三角函数曲线坐标系 Unity所采用的左手坐标系 123456//Vector3.forward 0,0,1定值//transform.forward这个值不固定,本地坐标正方向所在世界坐标系中的方向Vector3 v = cube.transform.forward;Debug. Log("V:" + v);transform. Translate(Vector3.forward,Space. Self);transform. Translate(transform.forward,Space.World); 向量向量的定义向量的加法向量的减法向量的点乘向量的叉乘 - Word M2W2 -
欧拉角万向节死锁(Gimbal Lock)
版权声明(转载)本文总结归纳自知乎的天下行走和CSDN的AndrewFan。 FCND-Gimbal-Demo用于讨论万向节死锁(Gimbal Lock)的Unity3D开源项目 https://zhuanlan.zhihu.com/p/344050856 https://blog.csdn.net/andrewfan/article/details/60981437 https://github.com/udacity/FCND-Gimbal-Demo 前言四元数四元数相对于其他形式的优点,大略为: 解决万向节死锁 仅需4个浮点数,相比矩阵更轻量 无论求逆、串联等操作,相比矩阵更高效 本文简要分析“万向节死锁”形成原因。 欧拉角欧拉角用于表示刚体当前的姿态。思想:将刚体绕某一轴的一次旋转,分解为依次分别绕X、Y、Z轴的三次旋转。这三个轴分别旋转的转动角度,就是一组三个欧拉角。图片中即为上述的三次旋转(而其实可以绕某一轴,一次旋转即可达到最终位置) 具体旋转过程举例,如图: 图中有两组坐标系,我们定义为: x、y、z:世界坐标系(固定不动) X、Y、Z:刚体坐标系...
欧拉角与四元数(eulerAngles and Quaternion)
关键词欧拉角(eulerAngles) 使用三个数字来保存方位(描述物体的朝向),使用Vector3存储但并不代表向量;代表一系列的三维基本旋转,也就是围绕一个坐标系的每个轴的一系列旋转。 仅使用三个数字表达方位,占用空间小。 Unity在线文档 https://docs.unity.cn/cn/current/ScriptReference/Transform-eulerAngles.html 优缺点 优点:三个角度(沿坐标轴旋转的单位)组成,直观,容易理解。 优点:可以进行从一个方向到另一个方向旋转大于180度的角度。 缺点:万向节死锁问题。 缺点:对于一个方位,存在多个欧拉角描述,因此无法判断多个欧拉角代表的角位移是否相同。比如(250,0,0)与(290,180,180)为同一个欧拉角,为了保证任意方位都只有独一无二的表示,Unity引擎限制了角度范围,即沿X轴旋转限制在-90到90之间,沿Y与Z轴 旋转限制在0到360之间。 欧拉角分类 静态:即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,所以称为静态 动态:即绕物体坐标系的三个轴的旋转,由于物体...
