Unity2D_鼠标拖动物体移动

给要拖动的物体添加2D碰撞体

 挂载脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move : MonoBehaviour
{
    [SerializeField] private Camera mainCamera;

    private bool In = false;//鼠标是否位于角色立绘
    private bool Down = false;//是否按下鼠标
    
    void Start()
    {
        
    }
    
    void Update()
    {
        if (Input.GetMouseButton(0)&&In)//按下鼠标左键
        {
            Down = true;
        }
        
        if (Input.GetMouseButtonUp(0))//抬起鼠标左键
        {
            Down = false;
        }
        
        if (Down)
        {
            Vector3 mouseWorldPosition = mainCamera.ScreenToWorldPoint(Input.mousePosition);//鼠标坐标转换为屏幕空间坐标
            mouseWorldPosition.z = 0f;
            mouseWorldPosition.y = mouseWorldPosition.y-1.25f;//角色立绘锚点默认在最底部,让重新绘制后的立绘中心偏移到鼠标坐标
            transform.position = mouseWorldPosition;
        }
    }
    
    void OnMouseEnter()//鼠标移入碰撞体
    {
        In = true;
    }

    void OnMouseExit()//鼠标移出碰撞体
    {
        In = false;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36917144/article/details/124080630