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
 



















