Unity 基础操作
csharp
// 同步加载
GameObject prefab = Resources.Load<GameObject>("Prefabs/Character");
// 异步加载
ResourceRequest request = Resources.LoadAsync<Texture>("Textures/Icon");
yield return request;
安装Unity Hub后,通过Hub管理不同版本的Unity编辑器。创建新项目时选择适合的模板(如3D、2D或URP)。项目结构分为Assets(资源)、Packages(依赖库)和ProjectSettings(配置)。
场景编辑器中,使用工具栏移动、旋转或缩放物体。Hierarchy窗口管理场景中的对象,Inspector窗口查看和修改组件属性。常用快捷键包括W(移动)、E(旋转)、R(缩放)和F(聚焦选中对象)。
脚本编写与组件
C#脚本需继承MonoBehaviour类。常用生命周期方法:
Awake():对象初始化时调用Start():首次帧更新前调用Update():每帧调用FixedUpdate():固定物理时间步长调用
添加组件到游戏对象:
public class PlayerController : MonoBehaviour {
private Rigidbody rb;
void Start() {
rb = GetComponent<Rigidbody>();
}
void Update() {
float move = Input.GetAxis("Vertical");
rb.AddForce(transform.forward * move * 10f);
}
}
物理系统与碰撞
Unity物理引擎基于NVIDIA PhysX。刚体组件使物体受物理影响,碰撞体定义物体形状。碰撞检测方法:
OnCollisionEnter():碰撞开始时调用OnTriggerEnter():触发型碰撞调用
设置碰撞层在Edit > Project Settings > Physics中配置。示例代码:
void OnCollisionEnter(Collision collision) {
if(collision.gameObject.tag == "Enemy") {
Destroy(gameObject);
}
}
UI系统
Canvas是UI元素的容器,渲染模式可选Screen Space或World Space。常用UI组件:
- TextMeshPro:高质量文本显示
- Button:可交互按钮
- Slider:数值调节控件
事件系统通过EventTrigger组件或代码绑定:
Button btn = GetComponent<Button>();
btn.onClick.AddListener(() => {
Debug.Log("Button clicked");
});
资源管理
Asset Store可直接导入资源包。常用资源类型:
- 预制体(Prefab):可复用的对象模板
- 材质(Material):定义物体外观
- 动画控制器(Animator Controller):管理状态机
资源加载方式:
// 同步加载
GameObject prefab = Resources.Load<GameObject>("Prefabs/Character");
// 异步加载
ResourceRequest request = Resources.LoadAsync<Texture>("Textures/Icon");
yield return request;
发布设置
Build Settings中选择目标平台(PC、移动设备或主机)。Player Settings配置公司名称、产品标识和图标。优化建议:
- 启用Addressables系统管理资源
- 使用Occlusion Culling减少渲染负担
- 配置Quality Settings分级画质
跨平台注意事项:
- 移动端需处理触摸输入和多分辨率适配
- WebGL注意内存限制和加载速度
- 主机平台需通过特定认证流程