📅  最后修改于: 2023-12-03 15:20:53.943000             🧑  作者: Mango
Unity 中有大量的接口可以使用,本文将介绍 Unity 中常用的几个接口。
MonoBehaviour
是 Unity 中编写脚本的基类,它封装了一些生命周期函数和基本的操作,例如:
public class MyScript : MonoBehaviour
{
void Start()
{
// 在场景开始时调用
}
void Update()
{
// 每一帧都会调用
}
void OnCollisionEnter(Collision collision)
{
// 当对象碰撞到其他对象时调用
}
}
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
用于在物理引擎中模拟物体的运动,例如:
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
用户获取用户的输入,例如:
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
用于控制相机的行为和属性,例如:
public class MyScript : MonoBehaviour
{
private Camera camera;
void Start()
{
camera = GetComponent<Camera>();
}
void Update()
{
camera.fieldOfView += Input.mouseScrollDelta.y * 5; // 根据鼠标滚轮缩放视野(每滚动一个单位,视野扩大 / 缩小 5 度)
}
}
以上介绍了 Unity 中常用的接口,通过这些接口我们可以轻松地控制游戏的运行和行为。