C# 如何在 Unity 中编写脚本_C# Unity 脚本编写入门教程

来源:这里教程网 时间:2026-02-21 17:30:27 作者:

在 Unity 中使用 C# 编写脚本是实现游戏逻辑的核心方式。Unity 支持 C# 作为主要脚本语言,因其结构清晰、功能强大且易于学习。以下是一个入门级教程,帮助你快速掌握如何在 Unity 中编写 C# 脚本。

创建并附加 C# 脚本

打开 Unity 编辑器,选择任意 GameObject(如 Main Camera 或空物体),在 Inspector 窗口中点击 Add Component,然后选择 New Script,命名为“PlayerMovement”,语言选择 C#。点击 Create and Add 按钮后,Unity 会自动生成一个 .cs 文件并附加到该对象上。

双击该脚本文件,Unity 默认会使用 Visual Studio 或 Rider 打开代码编辑器。你会看到类似以下的基本结构:

using UnityEngine;
<p>public class PlayerMovement : MonoBehaviour
{
void Start()
{
// 初始化代码
}</p><pre class='brush:php;toolbar:false;'>void Update()
{
    // 每帧执行的代码
}

}

理解 MonoBehaviour 与常用生命周期方法

C# 脚本必须继承自 MonoBehaviour 才能挂载到 GameObject 上。几个关键的生命周期方法包括:

Start():脚本启用时运行一次,适合初始化操作。 Update():每帧调用,适合处理输入、移动等实时逻辑。 FixedUpdate():用于物理计算,配合 Rigidbody 使用更稳定。 Awake():在 Start 前调用,常用于引用赋值或单例模式。

实现简单行为:控制物体移动

下面是一个简单的例子,让物体通过键盘方向键前后移动:

using UnityEngine;
<p>public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;  // 可在 Inspector 中调节</p><pre class='brush:php;toolbar:false;'>void Update()
{
    float moveInput = Input.GetAxis("Vertical"); // 获取前后输入 (-1 到 1)
    Vector3 movement = transform.forward * moveInput * speed * Time.deltaTime;
    transform.position += movement;
}

}

保存脚本后回到 Unity 编辑器,你可以在 Inspector 中看到 Speed 参数,可直接调整数值。运行场景后,按 W/S 键即可看到物体前后移动。

与其它组件交互

你可以通过 GetComponent 获取其他组件。例如,给物体添加 Rigidbody 后,用物理方式移动:

public class PhysicsMove : MonoBehaviour
{
    public float force = 10f;
    private Rigidbody rb;
<pre class='brush:php;toolbar:false;'>void Awake()
{
    rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
    if (Input.GetKey(KeyCode.W))
    {
        rb.AddForce(transform.forward * force);
    }
}

}

注意这里使用 FixedUpdateAddForce 来确保物理模拟正确。

基本上就这些。掌握基本结构、生命周期和组件交互后,你就可以逐步实现复杂的游戏机制了。

相关推荐