📜  Unity 让一个 2D 对象看鼠标位置 - C# (1)

📅  最后修改于: 2023-12-03 15:05:45.421000             🧑  作者: Mango

Unity 让一个 2D 对象看鼠标位置 - C#

在 Unity 中,我们可以使用 C# 脚本来让一个 2D 对象看鼠标位置。这样可以实现很多有趣的效果,比如让角色始终面向鼠标指向的方向,或者让鼠标移动到某个位置时,2D 对象也跟随移动。

实现步骤
  1. 新建一个 2D 游戏对象,比如一个 Sprite。

  2. 添加一个 C# 脚本组件,命名为 MouseMovement。

  3. 打开 MouseMovement.cs 文件,编写以下代码:

using UnityEngine;

public class MouseMovement : MonoBehaviour
{
    void Update()
    {
        Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        transform.up = new Vector2(mousePos.x - transform.position.x, mousePos.y - transform.position.y);
    }
}
  1. 解释一下代码的实现逻辑:
  • Update 方法中,我们获取鼠标在世界坐标系中的位置,即 mousePos

  • 然后我们将 transform.up(即 2D 对象的朝向)设置为从当前位置指向鼠标位置的向量,即 new Vector2(mousePos.x - transform.position.x, mousePos.y - transform.position.y)

  1. 运行场景,移动鼠标,发现 2D 对象始终面向鼠标指向的方向。
总结

通过上述步骤,我们实现了让一个 2D 对象看鼠标位置的效果。这个方法不仅可以用于让角色始终面向鼠标指向的方向,还可以用于实现其他需要跟随鼠标或指定位置移动的效果。