unity搭建场景学习
- 创建场景
- 创建gameobject
- 创建材质,用于给gameobject上色
- 拖拽材质球上色
- 上色原理
- 设置多个材质方式
- 设置贴图的方式
- 效果
- 设置光滑度
- 一些预览设置菜单
- 渲染模型与碰撞模型
- 网格渲染参数
- 1. materials(材质)
- 2. lighting(光照)
- 3. reflection probes(反射探针)
- 4. light probes(光照探针)
- 5. lightmap settings(光照贴图设置)
- 6. scale in lightmap(光照贴图中的缩放)
- 7. receive GI(接收全局光照)
- 8. motion vectors(运动向量)
- 9. dynamic occludee(动态遮挡)
- 10. dynamic occluder(动态遮挡器)
- 11. static editor flags(静态编辑器标志)
- 12. rendering layer mask(渲染层遮罩)
- 简模碰撞参数
- 1. is trigger(是否为触发器)
- material(材质)
- 3. center(中心)
- 4. radius(半径)
- 5.edit collider(编辑碰撞器)
- 6. include layers(包含层级)
- 7. exclude layers(排除层级)
- 其他类型的碰撞器组件
- 刚体组件rigidbody-模拟物理效果
- 添加刚体组件
- 1. mass(质量)
- 2.drag(阻力)
- angular drag(角阻力)
- 4. use gravity(使用重力)
- 5. is kinematic(是否为运动学)
- 6. interpolate(插值)
- 7. collision detection(碰撞检测)
- 8. constraints(约束)
- 9. center od mass
- 10. angular velocity(角速度)
创建场景
保存场景,命名为main_scene
创建gameobject
创建材质,用于给gameobject上色
拖拽材质球上色
上色原理
设置多个材质方式
设置贴图的方式
效果
设置光滑度
创建材质文件夹,用于统一管理使用到的材质
点击game窗口,看到的就是main camera看到的场景
一些预览设置菜单
类似上述操作,再创建一个小球,并上色,效果如下:
渲染模型与碰撞模型
渲染模型和碰撞模型分来的原因:节省性能,例如一个球模型本身有很多点,在进行计算碰撞时会增大计算的复杂度,而使用mesh中的标准球网格,只需要,计算是否在半径内判断碰撞即可,可以提高性能,所以一般对于导入的模型会设置其简模(sphere collider)
网格渲染参数
参数详解:
在unity中,mesh renderer组件用于将网格(mesh)渲染到屏幕上,他负责管理网格的可视化特性,包括材质、光照、阴影等
1. materials(材质)
- 描述:用于指定应用于网格的材质,可以为一个网格分配一个或多个材质,每个材质对应网格中的一个子网格(submesh)
- 默认值:单一材质
2. lighting(光照)
- 描述:
- cast shadows(投射阴影):控制网格是否投射阴影,选项如下:
- on(开启):网格会投射阴影
- off(关闭):网格不会投射阴影
- two sided(双面):网格的两面都会投射阴影
- shadows only(仅阴影):网格的两面都会投射阴影
- receive shadows(接收阴影):控制网格是否接收其他对象投影的阴影
- motion vectors(运动向量):控制网格是否在运动时生成运动向量,这对于后期特效(如运动模糊)非常有用
- dynamic occlusion(动态遮挡):控制网格是否参与动态遮挡计算
- cast shadows(投射阴影):控制网格是否投射阴影,选项如下:
- 默认值:根据光照设置
3. reflection probes(反射探针)
- 描述:控制网格如何使用反射探针来反射环境,选项包括:
- off(关闭):不使用反射探针
- blend probes(混合探针):使用反射探针,并混合相邻探针的结果
- blend probes and skybox(混合探针和天空盒):混合反射探针和天空盒的结果
- simple(简单):简单使用最近的反射探针
- 默认值:blend probes
4. light probes(光照探针)
-
描述:控制网格如何使用光照探针来模拟光照,选项包括:
- off(关闭):不使用光照探针
- blend probes(混合探针):使用光照探针,并混合相邻探针的结果
- use proxy volume(使用代理体积):使用光照探针代理体积
-
默认值:blend probes
5. lightmap settings(光照贴图设置)
- 描述:控制网格如何使用光照贴图
- lightmap static(光照贴图静态):控制网格是否为光照贴图静态对象,静态对象会在光照贴图烘焙时考虑
- lightmap index(光照贴图索引):指定网格使用哪个光照贴图
- lightmap scale offset(光照贴图缩放偏移):控制光照贴图在网格上的缩放和偏移
- 默认值:根据光照贴图设置
6. scale in lightmap(光照贴图中的缩放)
- 描述:控制网格在光照贴图中占用的空间比例,较大值意味着网格在光照贴图中占用更多的空间
- 默认值:1
7. receive GI(接收全局光照)
- 描述:控制网格是否接受全局光照,全局光照是指来自所有方向的光照,通常用于模拟间接光照
- 默认值:开启
8. motion vectors(运动向量)
- 描述:控制网格是否生成运动向量,运动向量用于后期特效,如运动模糊
- 默认值:开启
9. dynamic occludee(动态遮挡)
- 描述:控制网格是否作为动态遮挡对象,动态遮挡对象会在运行时进行遮挡计算
- 默认值:开启
10. dynamic occluder(动态遮挡器)
- 描述:控制网格是否作为动态遮挡器,动态遮挡器会在运行时遮挡其他对象
- 默认值:开启
11. static editor flags(静态编辑器标志)
- 描述:控制网格是否被视为静态对象,静态对象在光照贴图和全局光照烘焙时使用
- 默认值:未勾选
12. rendering layer mask(渲染层遮罩)
- 描述:控制网格的渲染层,渲染层用于在不同的渲染通道中控制对象的可见性
- 默认值:默认层
简模碰撞参数
radius:设置碰撞的半径
参数详解:
在unity中,sphere collider组件用于为游戏对象添加一个球形碰撞器,这个碰撞器可以用于检测物理碰撞,或作为触发器(trigger)来检测其他对象进入或离开该区域
1. is trigger(是否为触发器)
- 描述:如果勾选,这个碰撞器将被视为触发器而不是物理碰撞器,触发不会产生物理碰撞,但可以检测其他对象进入或离开其区域
- 默认值:未勾选
material(材质)
- 描述:用于指定碰撞器使用的物理材质(physics material),物理材质用于控制摩擦力和反弹效果
- 默认值:None
3. center(中心)
- 描述:球形碰撞器的中心位置,相对于游戏对象的变化中心,可以通过调整中心来控制碰撞器在对象内部的具体位置
- 默认值:0,0,0
4. radius(半径)
- 描述:球形碰撞器的半径,半径越大,球形碰撞器的体积越大
- 默认值:0.5米
5.edit collider(编辑碰撞器)
- 描述:勾选此选项后,可在场景视图中直接编辑碰撞器的位置,大小和形状,这对于快速调整碰撞器非常有用
- 默认值:未勾选
6. include layers(包含层级)
- 描述:此选项用于指定碰撞器应该与哪些层的对象进行碰撞,如果设置了包含层级,只有在这些指定层中对象才会参与物理碰撞检测
- 使用场景:
- 该功能可以用于优化碰撞检测,避免与不必要的对象进行碰撞,例如:如果若游戏只需要某些特定类型的对象能够与该碰撞器发生碰撞,可将这些对象放入一个或多个指定层级中
- 通过使用层,能够更容易的管理对象间的交互,尤其是在复杂的游戏场景中
7. exclude layers(排除层级)
- 描述:用于排除特定层级的对象不被这个碰撞器检测,只有非排除层级的对象才会与这个碰撞器发送碰撞
- 默认值:none
其他类型的碰撞器组件
刚体组件rigidbody-模拟物理效果
添加刚体组件
在unity中,刚体组件(regidbody)是用于模拟物理行为的组件之一,它使得游戏对象能够受物理引擎的控制,如重力、碰撞和外力等
1. mass(质量)
- 描述:对象的质量,较大的质量意味着对象需要更大的力来移动或停止
- 默认值:1
2.drag(阻力)
- 描述:对象在空气中或液体中移动时的阻力,阻力越大,对象移动的速度下降得越快
- 默认:0
angular drag(角阻力)
- 描述:对象旋转时的阻力,角阻力越大,对象旋转的速度下降得越快
- 默认值:0.05
4. use gravity(使用重力)
- 描述:是否让对象受到重力的影响
- 默认值:勾选
5. is kinematic(是否为运动学)
- 描述:是否将对象设置为运动学刚体,运动学刚体不受物理引擎控制,但可以通过脚本手动移动
- 默认值:未勾选
6. interpolate(插值)
- 描述:用于平滑对象的运动,当对象运动时有抖动或不平滑时,可以选择以下选项:
- none(无),不进行插值
- interpolate(插值):基于上一帧的位置进行插值
- extrapolate(外推):基于下一帧的预测位置进行插值
- 默认值:none
7. collision detection(碰撞检测)
- 描述:用于控制对象的碰撞检测方式,以避免高速移动时的穿透现象,选项包括:
- discrete(离散):标准的碰撞检测方式
- continuous(连续):用于检测与静态网格碰撞器的碰撞
- continuous dynamic(连续动态):用于检测与动态和静态网格碰撞器的碰撞
- 默认值:discrete
8. constraints(约束)
- 描述:用于限制对象的移动和旋转
- freeze position(冻结位置):限制对象在xyz轴上的移动
- freeze rotation(冻结旋转):限制对象在xyz轴上的旋转
9. center od mass
- 描述:对象的质心位置,通常不需要手动设置,但如果对象的形状不规则,可能需要调整以获得正确的物理行为
- 默认值:自动计算
10. angular velocity(角速度)
- 描述:当前对象的角速度,可通过脚本访问和修改
- 默认值:0,0,0