给要拖动的物体添加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;
}
}