Unity5 Roll A Ball项目笔记

版权声明:所有的博客仅仅作为个人笔记使用!!!!!!! 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对象,获取碰撞的一般方式:
    private void OnTriggerEnter(Collider other) {
        if (other.gameObject.CompareTag("Pick Up")) {
            other.gameObject.SetActive(false); // 碰撞后无效了
        }
    }
    
    需要用到tag进行标记

Vector3

表示一个3维向量和一个点。

获取输入

float moveVertical = Input.GetAxis("Vertical");
float moveHorizontal = Input.GetAxis("Horizontal");

关于Unity编辑器中的槽

脚本类的public对象直接显示在外部,需要拖入需要关联的对象。

猜你喜欢

转载自blog.csdn.net/qq_35976351/article/details/83049241