在Unity中使用C#编写脚本需继承MonoBehaviour,通过Start、Update等生命周期方法实现游戏逻辑;2. 创建PlayerMovement脚本并绑定到GameObject,利用Input.GetAxis获取输入,结合Time.deltaTime和transform.forward实现物体前后移动;3. 通过GetComponent获取Rigidbody组件,在FixedUpdate中调用AddForce实现物理运动,确保模拟稳定;4. 脚本参数可在Inspector中调节,便于调试与优化。掌握这些基础即可构建基本游戏行为。

在 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;public class PlayerMovement : MonoBehaviour { void Start() { // 初始化代码 }
void Update() { // 每帧执行的代码 }}
理解 MonoBehaviour 与常用生命周期方法
C# 脚本必须继承自 MonoBehaviour 才能挂载到 GameObject 上。几个关键的生命周期方法包括:
- Start():脚本启用时运行一次,适合初始化操作。
- Update():每帧调用,适合处理输入、移动等实时逻辑。
- FixedUpdate():用于物理计算,配合 Rigidbody 使用更稳定。
- Awake():在 Start 前调用,常用于引用赋值或单例模式。
实现简单行为:控制物体移动
下面是一个简单的例子,让物体通过键盘方向键前后移动:
using UnityEngine;public class PlayerMovement : MonoBehaviour { public float speed = 5f; // 可在 Inspector 中调节
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;
void Awake()
{
rb = GetComponent();
}
void FixedUpdate()
{
if (Input.GetKey(KeyCode.W))
{
rb.AddForce(transform.forward * force);
}
} }
注意这里使用 FixedUpdate 和 AddForce 来确保物理模拟正确。
基本上就这些。掌握基本结构、生命周期和组件交互后,你就可以逐步实现复杂的游戏机制了。










