找回密码
 立即注册
查看: 145|回复: 0

unity游戏开发-古迹探险开发笔记

[复制链接]
发表于 2022-12-23 06:33 | 显示全部楼层 |阅读模式
写在前面:本文仅为个人学习用 侵权立删 如有错误请指正
1.建立场景基础操作



添加多个场景窗口


物体原点


整体的物体中心


局部坐标和世界坐标的区别,局部坐标会跟着物体一起动,但世界坐标不会



layer是图层一样的效果,当锁定以后就可以锁定此图层所有的物体不被改变。
在移动物体时,如果想单位距离(步长)的移动,需要摁住CTRL。在snap setting可以修改步长距离。




摁下V键就可以吸附顶点功能


制作预制体(prefab),可以将设置好参数的模型直接拖入project面板。


从同一个预制体拖出来的如果是粗字体说明不受预制体影响,在调整预制体时被拖出来的物体不会因此而变化,细字体说明受影响。


在inspector面板调试细字体就会变成粗字体,不再受预制体约束。


如果想恢复预制体的参数,则要选择revert。



在预制体的关联丢失时,会变成红色字体,点击break prefab instance就会解除关联。


apply就是将设置的内容将添加到预制体上


opacity(透明度)可以调节地形升高的快慢


新版本(2019)的unity的paint texture改到了这里,选择create layers
摁住shift+左键 可以去掉刷的草


刚体(rigidbody)组件
angular drag (角?摩擦力),只控制旋转的速度 mass(质量) drag(摩擦力)
如果碰撞发生问题可以换一个碰撞器,box等(box是最省性能的碰撞器因为顶点少)





这两种方法都是不同的,enter是第一次碰撞和最后一次碰撞引用,exit是离开时引用,两个都是只调用一次。



在碰撞中持续调用



collision(碰撞)可以获取碰撞的所有信息
发生碰撞的前提条件是:两个物体有碰撞器,其中有一个有刚体组件



unity手册里碰撞的条件
如果想要获得触发条件的话,勾上colliders里的trigger(触发)即可



刚体会穿透其中


顾名思义就是触发检测,虽然不会对碰撞发生任何影响,但是可以检测是否在此区域。


不用渲染网格,只保留碰撞器即可。



触发函数,与碰撞检测相同,分别是触发时,过程中,结束后。但是碰撞的名称有不同,other是触发的名称。



unity里的四种光:平行光(无衰减,改变方向会改变),点光源(有衰减),soptlight(聚光灯)区域光(效果不够好时烘焙使用





烘焙light mapping,Windows-light settings-选择env-static,都勾选上static


在烘焙之前将texture的mode改成烘焙baked
烘焙出来的效果总是有错,所以放弃了,记得在增加灯光时加上阴影。
利用粒子系统添加火焰:




先调整粒子特效的形状


调整参数


创建一个材质球


shader材质particle(粒子)-additive(添加)
Mobile/Particles/Additive新版本(2019)是改到了此目录下


在renderer里拖入材质球


他是一个4*4的动画,勾上播放并改为4*4


调整粒子从大变小


创建动画



在编辑时需要选中游戏物体才可以编辑动画



给强度添加动画intensity(强度)


把录制打开并更改强度,不用保存会自己保存,在更改时记得一定要选中物体才可更改。



寻路系统,Windows里选择navigation(导航),注意勾选右上角的static(其实是勾选其中的navigation信息)



烘焙导航网格,如果想要更靠近的话调小agent radius(边缘半径)




想要草可以穿过的话 ,取消草的navigation,重新bake即可


不在不可以行走的地方生成导航网格


生成导航网格是根据mesh rendering来生成的,点击物体一次点击父物体(蓝灰色框 )双击(橙色框)则是选择了mesh render,选中后回到navigation,选择object,


选择not walkable就可以了



寻路导航的组件,将边框调整与主角相同




注意将组件拖进脚本



跟随脚本(这里觉得控制起来看不到角色了)而且只能前进不能后退不能旋转有点怪,我猜测可能是我fov太小的原因,调大一点就能看到角色了
添加角色动画:在资产新建一个animation controller-


拖入状态机





把待机行走和跑步的动画都拖过来


在nav mesh agent获取它的速度,通过速度判断是否切换



在animations增加一个参数




添加参数,速度大于0的时候 切换到走路状态           


小于某某时,切换到待机状态


把has exit time取消。因为动画的切换随时可能发生


更改脚本,使其调用组件获取速度信息



为方便运行使用,可以增加esc退出的代码


导出





最终的效果(lightmapping的bake总是出错所以用了realtime的光,realtime的光是十分消耗性能的,所以此只作为练习使用不涉及性能问题)

01-工程的创建和打开_哔哩哔哩_bilibili  原教程地址

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-5 03:27 , Processed in 0.088642 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表