Unity笔记
记录个人学习Unity的笔记
TravisZeng
这个作者很懒,什么都没留下…
展开
-
Unity寻路导航NavMesh
寻路导航NavMeshUnity中对于寻路算法进行了封装,支持提交将地图进行导航烘焙,降低了实时计算的消耗菜单Window–>Navigation,打开导航面板操作选择不移动的游戏对象,勾选Navigation Static如果是不连接的游戏对象,勾选 Generate OffMeshLinks如果需要设置区域,可以在属性 Navigation Area下选择,使用方式与层一样点击Areas标签,可以添加区域,内置创建了三个区域,表示可以行走、不可以行走、可跳跃选择原创 2020-05-23 15:52:12 · 1354 阅读 · 0 评论 -
unity的音频、预保存、资源加载、多场景切换、协同
音频Unity支持格式:aiff和wav为短音效;mp3和ogg为长音乐与音乐相关的 Audio组件组件AudioListener:收听音乐的组件组件AudioSource:播放音乐的组件组件AudioSource的主要参数:Audio Clip:音乐剪辑Mute:是否静音Play On Awake是否自动播放Loop是否循环播放Volumn音量,值为0-1之间的float类型音乐的播放控制获取AudioSource组件,控制播放得到AudioCli原创 2020-05-22 15:22:04 · 772 阅读 · 0 评论 -
unity角色控制器简介
Character Controller用于应用到会动的游戏对象上,添加角色控制器后,会自动添加一个胶囊碰撞体主要参数说明:Slope Limit:坡度限制Step Offset:台阶高度-Skin Width:皮肤厚度,控制双方渗入的深度,一般是Radius值的10%Min Move Distance:最小移动距离,大多数情况下设置为0Center、 Radius、 Height:胶囊碰撞体的中心、半径、高度移动的方法:move:指定一个向量,完成移动S原创 2020-05-21 23:13:28 · 4232 阅读 · 0 评论 -
unity打箱子小游戏demo
制作一个小的打箱子的demo来验收一下之前学习过的内容,主要的功能包括有自动生成一系列箱子、用户以第一人称发射小球子弹击打放置在平面上的箱子。箱子的生成将箱子作为prefabs通过脚本自动生成,相关代码如下://用箱子生成一堵墙public GameObject Wall;void Start(){ for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { GameObje原创 2020-05-21 11:36:49 · 1018 阅读 · 0 评论 -
unity射线系统
由于我们在看到屏幕上的显示效果时是在2D的一个平面的效果,为了体现出屏幕的纵深从而呈现出3D的效果,设计了射线系统。射线是有摄像机发出的。射线是从一个点向另外一个点发生的一条线,一旦与其他模型发生碰撞将停止发射,该线是逻辑上的,界面上看不到。一般使用射线判断是否发射至某个游戏对象上或者获得鼠标点击的游戏对象等。如下图所示,当鼠标点选的是很遥远的地平线时会由于无法到达一个模型对象而无法产生射线。public class RayDemo : MonoBehaviour{ private Line原创 2020-05-21 11:35:09 · 8472 阅读 · 0 评论 -
unity地形系统、物理引擎
地形系统在菜单Create–>Terrain创建地形在Inspactor面板中进行参数设置,包括6个标签建立山形平滑山形压低山形树草纹理参数设置导入地形包,可以选择树、草、纹理的资源Terrain是不能低于y=0这个平面的,要想制作沟壑,需要先提高地形平面粒子系统可以实现硝烟、火焰、雪花、水汽、爆炸等效果创建例子游戏对象:GameObject->Particle System一个例子游戏对象包含很多模块,不同模块具有不同的功能,默认只有少量模块时原创 2020-05-20 00:02:13 · 920 阅读 · 0 评论 -
人称设置
最简单方式实现第一人称时,将maincamera拖拽到游戏物体上使其成为游戏物体的一个组件,同时maincamera位置和游戏物体重合即可。实现第三人称时,只需要在上述第一人称的基础上将camera的位置进行移动即可。实现代码如下:public class CameraMove : MonoBehaviour{ //速度 private float speed; //角速度 private float angleSpeed; // Start is ca原创 2020-05-19 23:49:14 · 244 阅读 · 0 评论 -
unity光照效果
Unity提供了4种光源,不同光源的主要区别在于照明的范围不同:平行光平行光像太阳,光线从一个方向照亮整个场景,在Forward Rendering模式下,只有平行光可以显示实时阴影点光点光像灯泡,从一个点向周围发射光线,光线逐渐衰减聚光聚光像车灯,光线按某个方向照射,并有一定范围限制范围光范围光表示一个区域内的光,没有方向,只能被用来烘焙光源的烘焙主要是指针对一些静止的物体通过前期的计算生成贴图以减少运行时的计算,减少游戏运行时实时光照的计算量。光线主要的参数设置:Range:原创 2020-05-15 17:37:07 · 1321 阅读 · 0 评论 -
unity用户输入Input、旋转、平移
用户输入Input·鼠标按键方法GetMouseButton()方法GetMouseButtonUp()参数为int,表示左键,1表示右键,2表示滚轮·键盘输入方法GetKey()方法GetKeyDown()方法GetKevUp()参数为KeyCode枚举,表示按的某个键示例:通过键盘wsad控制游戏对象前后左右的移动KeyCode枚举可以在project settings->Input处进行查看如下图此处的Fire1即为KeyCode枚举,为字符串变量,代表按原创 2020-05-15 15:12:33 · 1481 阅读 · 0 评论 -
unity模型导入和控制
unity的模型导入和控制通过导入已设计好的prefabs来导入模型通过设定状态机或者播放动画的方式来控制模型控制的两种方式状态机方式通过建立AnimationController来建立不同动画之间的状态转换机制,如下图所示的例子:可以通过设置不同状态之间的转换参数来改变模型的动作状态,如以下代码:public class ZombieMove : MonoBehaviour{ private Animator animator; // Start is called原创 2020-05-15 15:08:04 · 733 阅读 · 0 评论 -
unity的模型动画
模型输出方式模型主要可以以两种方式进行输出:1.使用插件进行输出。并输出为指定的文件格式,如FBX或OBJ2.直接输出为相应的3D应用文件,如ma 或 Blend, Unity自身再进行转换。优缺点使用3D软件包自身格式进行输出:优点:快速的输出过程,直接从3D文件 Unity到简单的初始化过程不足:文件中可能会包括不需要的数据。若输出文件过大,可能会妨碍 Unity的更新过程。比较少的数据检验过程,可能会增加出错几率。使用插件进行输出:优点:仅输出你需要的原创 2020-05-15 10:26:02 · 688 阅读 · 0 评论 -
unity常见资源及资源类型
shader定义物体外表,主要与材质进行配合使用compute shader与Dx11一起创建更艳丽的视觉效果prefabunity的特有功能,称为预设,可以用来定义大量重复性物体,且这些物体可以运用脚本随时进行销毁Matrial材质,定义物体的外部纹理,与shader配合使用Animation动画,一般在外部程序包中进行创建,然后导入到unity中Cubemap相当于一种纹理,立方体纹理,通过定义立方体的六个面来呈现不同的环境效果Lens Flare一般用来模拟当摄像机面向阳光时原创 2020-05-14 22:10:55 · 1679 阅读 · 0 评论