📅  最后修改于: 2023-12-03 14:51:33.127000             🧑  作者: Mango
在统一 2D(Unity 2D)中移动游戏对象是开发过程中的常见操作。本文将介绍如何在 Unity 2D 中移动游戏对象,包括移动方式和相关的代码实现。
Transform.Translate 是一个快捷函数,可以在三维空间中移动游戏对象。在 Unity 2D 中,我们通常将游戏对象的 Z 轴设置为 0,使其位于屏幕上方。因此,我们可以使用以下代码在 X 和 Y 轴上移动游戏对象:
private Rigidbody2D rb2d;
private float speed = 5.0f;
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
}
void Update()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
Vector2 direction = new Vector2(horizontal, vertical);
rb2d.transform.Translate(direction * speed * Time.deltaTime);
}
上述代码通过获取水平和垂直输入,计算出一个方向,并使用方向和速度来移动游戏对象。
Rigidbody2D.velocity 是 Rigidbody2D 组件的一个属性,可以控制游戏对象的速度和方向。可以使用以下代码来移动游戏对象:
private Rigidbody2D rb2d;
private float speed = 5.0f;
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
}
void Update()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
Vector2 direction = new Vector2(horizontal, vertical);
rb2d.velocity = direction * speed;
}
上述代码中,我们将方向乘以速度,然后将结果赋给 Rigidbody2D.velocity 属性,实现游戏对象的移动。
Rigidbody2D.AddForce 是 Rigidbody2D 组件的一个方法,可以在游戏对象上施加力。可以使用以下代码来移动游戏对象:
private Rigidbody2D rb2d;
private float speed = 5.0f;
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
}
void Update()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
Vector2 direction = new Vector2(horizontal, vertical);
rb2d.AddForce(direction * speed);
}
上述代码中,我们将方向乘以速度,然后使用 Rigidbody2D.AddForce 方法添加一个施加力的向量,实现游戏对象的移动。
以上便是在 Unity 2D 中移动游戏对象的几种方式,包括使用 Transform.Translate、Rigidbody2D.velocity 和 Rigidbody2D.AddForce。程序员可以根据实际情况选择合适的方法,来实现游戏对象的移动。