欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 【Unity 游戏开发】角色控制模块技术要点拆解

【Unity 游戏开发】角色控制模块技术要点拆解

2025/12/22 14:05:16 来源:https://blog.csdn.net/kinghzking/article/details/147670655  浏览:    关键词:【Unity 游戏开发】角色控制模块技术要点拆解

文章目录

    • 1️⃣ 基础概念
      • ✅ 坐标系
      • ✅四大坐标系分类与特性
      • ✅ 按键检测
      • **按键状态检测函数**
        • `Input.GetKey(KeyCode key)`
        • `Input.GetKeyDown(KeyCode key)`
        • `Input.GetKeyUp(KeyCode key)`
      • **轴输入检测函数**
        • `Input.GetAxis(string axisName)`
        • `Input.GetAxisRaw(string axisName)`
      • **鼠标输入检测函数**
      • **触摸输入检测(移动端)**
    • 2️⃣ 角色移动实现
      • ✅ 创建Scene
      • ✅ 平滑处理
      • ✅ 编码控制Player

1️⃣ 基础概念

围绕Unity跨平台特性与控制器适配展开基础场景搭建

✅ 坐标系

Unity 采用 右手坐标系(Right-Handed Coordinate System),默认轴向定义为:

  • X 轴:向右(Right)
  • Y 轴:向上(Up)
  • Z 轴:向前(Forward,指向屏幕外侧)

坐标系是所有物体位置、旋转、缩放的基础,理解其特性是实现精准场景搭建与物体控制的关键。

但是本例子中,我们以跑步类游戏为原型,以x正值为前进方向,z轴正方形为左,如下图:
在这里插入图片描述

✅四大坐标系分类与特性

  1. 世界坐标系(World Coordinate System)

全局绝对坐标,以场景原点(0,0,0)为中心

  • 轴向:X(右)、Y(上)、Z(前)

  • 应用场景

    • 物体在场景中的绝对位置(Transform.position
  • 摄像机视角计算(如 Camera.main.transform.position

    • 物理系统碰撞检测(刚体位置基于世界坐标)
// 获取物体世界坐标  
Vector3 worldPos = transform.position;  
// 设置物体沿世界 Z 轴移动  
transform.Translate(Vector3.forward * speed * Time.deltaTime);  
  1. 局部坐标系(Local/Parent Coordinate System)

相对于父物体的相对坐标,原点为物体自身枢轴点(Pivot)

  • 轴向:随父物体旋转而变化,Transform.localPosition 表示相对于父物体的位置

  • 应用场景

    • 子物体相对于父物体的位置调整(如角色手臂相对于身体的摆动)
  • 物体自身方向移动(Transform.forward 表示物体局部向前方向)

  • 示例

  // 获取物体相对于父物体的位置  Vector3 localPos = transform.localPosition;  
// 沿物体自身前方移动(不考虑世界坐标系方向)  transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.Self);  
  1. 屏幕坐标系(Screen Coordinate System)

以屏幕像素为单位的 2D 坐标,原点位于屏幕左下角

  • 轴向

    • X:向右(范围:0 ~ 屏幕宽度)
  • Y:向上(范围:0 ~ 屏幕高度)

    • Z:摄像机到屏幕的距离࿰

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词