版权声明:所有的博客仅仅作为个人笔记使用!!!!!!! https://blog.csdn.net/qq_35976351/article/details/83049241
Scenes
Unity开发的游戏是由一个个场景组成的。
Prefabs预制件
预制件的相当于一个模板,利用Prefab创造的对象,可以进行统一的配置和编码。
GameObject
GameObject
是Unity中所以实体的基类。同样的,该类型可以向任何子类目标进行转换。
MonoBehaviour
所有使用Unity脚本(C#)的类,都需要显示的继承这个类。该类型有几个关于生命周期的函数:
Awake()
:该函数在加载脚本时进行调用。仅仅会调用一次,而且是在所用的Object都初始化完毕后进行调用的,所以可以使用该函数调用所有的对象。Start()
:函数在脚本被允许使用的第一帧开始调用。它和Awake
类似,不过前者是直接在加载脚本的时候进行初始化,而该函数是在脚本被允许后进行初始化。Update()
:如果一个MonoBehaviour被允许,该函数在每一帧进行调用,用于刷新。FixedUpdate()
:固定帧数进行调用,如果使用了RigidBody
进行物理仿真,那么需要刷新的内容因该放在该函数中。LateUpdate()
:每一帧进行更新,不过是在其他所有更新函数调用完成之后,最后进行更新,一般用于跟随摄像机的操作
transform
每一个Unity的实体都有一个transform对象,用于存储、操作位置、旋转和尺寸等。
Collider
用于碰撞检测的,每个实体的外侧的那一层包围线就是,有一些子类,比如:BoxCollider, SphereCollider, CapsuleCollider, MeshCollider, PhysicMaterial, Rigidbody.。用于检测碰撞等。如果需要检测碰撞等的事件,需要在isTrigger
设置为有效。
RigidBody
如果一个对象添加了该组件,那么该对象的控制权交给物理引擎,并自动添加一些物理属性。使用了RigiBody的对象,需要使用FixedUpdate
函数进行更新,因为物理引引擎是根据时间步长计算的,Update
是根据时间计算的。RigidBody有时会有慢动作现象,因为物理引擎假设的距离是现时世界的一米,如果物体非常大,而在实际中假设的很小,就会出现这种现象。所以要控制与现实中的比例。
获取一个对象的RigidBody的方式:
public Rigidbody rb;
rb = GetComponent<Rigidbody>();
AddFore()
:对Object施加外力。Destory()
:移除一个对象。isKinematic()
:用于控制RigidBody是否受物理影响。如果不受影响,那么一般的物理操作,比如碰撞等,不会影响该物体。OnTriggerEnter(Collider)
:用于检测Collider的碰撞,如果是有效的Collider过来,那么会触发这个函数,传入的参数是触发该函数的Collider对象,获取碰撞的一般方式:
需要用到tag进行标记private void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Pick Up")) { other.gameObject.SetActive(false); // 碰撞后无效了 } }
Vector3
表示一个3维向量和一个点。
获取输入
float moveVertical = Input.GetAxis("Vertical");
float moveHorizontal = Input.GetAxis("Horizontal");
关于Unity编辑器中的槽
脚本类的public对象直接显示在外部,需要拖入需要关联的对象。