unity组件介绍
所有物体都是一个空物体,加上一些组件才形成了所需要的GameObject。
这是一个空物体,在Scene场景中没有任何外在表现,因为它只有Transform这个组件,表示它仅仅只有位置,旋转和缩放。
Mesh组件
Mesh Filter
mesh filter定义了物体的网格,也就是形状,此时给空物体加上。
点击Add Component,选择 Mesh-->Mesh Filter,然后在Mesh Filter中选择Cube这个网格,此时Scene窗口中并没有出现,因为还没有渲染。
Mesh Renderer
再加上Mesh Renderer,网格渲染,指定材质后,一个空物体,就变成了一个Cube物体,在Scene窗口中也可见了。
渲染组件(Rendering)
光源组件
在Rendering->Light中可以看到一个光源组件,这个就是提供光照的。
给这个空物体GameObject加上Light组件,改变为平行光(Directional)和红光,此时照在物体表面的就是红光了。
Camera(摄像机)
摄像机组件拍摄到的,就是游戏画面。
选中摄像机,执行Align with View,就可以将摄像机放在我们在Scene视角的位置。
Audio组件
Audio Source
这个Audio Source组件就是用来播放音频文件的,它需要一个AudioClip,本质上就是一个MP3文件。
指定好后,打开小喇叭就可以播放音乐了。
物理系统
刚体组件(RigidBody)
physics->rigidbody
刚体组件使一个物体有了质量,重力等。
use gravity 勾选后,物体才会受到重力,会自动下落,取消勾选就不会。
is kinematic 表示运动学刚体,此时物体质量为0,就不会受重力的影响。
碰撞(Collider)
physics--> xxx collider
里面有各种各样形状的碰撞。
is trigger 是否开启触发器模式,常用于碰撞检测。
勾选触发器后,在代码中使用 onTriggerEnter 来检测。
public class SimpleExample : MonoBehaviour { // Start is called before the first frame update void Start() { Application.targetFrameRate = 60; } // Update is called once per frame void Update() { } /** * 碰撞检测触发器 * 当和其他物体发生碰撞时,会调用这个方法 */ private void OnTriggerEnter(Collider other) { Debug.Log($"与物体{other.gameObject.name}发生了碰撞。"); } }
注意:勾选了isTrigger后,r物体自由落体后,就不会再停在地面上,而是会继续下落。
没勾选isTrigger时,
反弹和摩擦
需要为物体指定物理材质,所以需要先创建一个物理材质。
弹性系数范围: [0,1]
在碰撞组件中设置创建的材质。