📜  Unity接口(1)

📅  最后修改于: 2023-12-03 15:20:53.943000             🧑  作者: Mango

Unity 接口

Unity 中有大量的接口可以使用,本文将介绍 Unity 中常用的几个接口。

MonoBehaviour

MonoBehaviour 是 Unity 中编写脚本的基类,它封装了一些生命周期函数和基本的操作,例如:

public class MyScript : MonoBehaviour
{
    void Start()
    {
        // 在场景开始时调用
    }

    void Update()
    {
        // 每一帧都会调用
    }

    void OnCollisionEnter(Collision collision)
    {
        // 当对象碰撞到其他对象时调用
    }
}
Transform

Transform 用于表示在 3D 空间中的一种位置和旋转方式,常用的属性有:

public class MyScript : MonoBehaviour
{
    private Transform transform;

    void Start()
    {
        transform = GetComponent<Transform>();
    }

    void Update()
    {
        transform.position += new Vector3(0, 1, 0) * Time.deltaTime; // 每秒垂直上升 1 米
        transform.Rotate(new Vector3(1, 0, 0), Time.deltaTime * 60); // 每秒沿 X 轴旋转 60 度
    }
}
Rigidbody

Rigidbody 用于在物理引擎中模拟物体的运动,例如:

public class MyScript : MonoBehaviour
{
    private Rigidbody rigidbody;

    void Start()
    {
        rigidbody = GetComponent<Rigidbody>();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rigidbody.AddForce(new Vector3(0, 300, 0)); // 在 Y 轴正方向上施加 300 牛顿的力
        }
    }
}
Input

Input 用户获取用户的输入,例如:

public class MyScript : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("Space is pressed");
        }

        float horizontal = Input.GetAxis("Horizontal"); // 获取水平轴向的输入(-1 ~ 1)
        float vertical = Input.GetAxis("Vertical"); // 获取垂直轴向的输入(-1 ~ 1)
        transform.position += new Vector3(horizontal, vertical, 0) * Time.deltaTime;
    }
}
Camera

Camera 用于控制相机的行为和属性,例如:

public class MyScript : MonoBehaviour
{
    private Camera camera;

    void Start()
    {
        camera = GetComponent<Camera>();
    }

    void Update()
    {
        camera.fieldOfView += Input.mouseScrollDelta.y * 5; // 根据鼠标滚轮缩放视野(每滚动一个单位,视野扩大 / 缩小 5 度)
    }
}
Conclusion

以上介绍了 Unity 中常用的接口,通过这些接口我们可以轻松地控制游戏的运行和行为。