其实,物体移动范围和分辨率没有特别的关系,主要是要知道一个世界坐标的概念
我就直接上代码了
//将屏幕坐标转化为世界坐标
WorldPos = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height, 0));
//限制物体可移动的范围
obj.transform.position = new Vector3(Mathf.Clamp(obj.transform.position.x,-WorldPos.x, WorldPos.x), Mathf.Clamp(obj.transform.position.y,-WorldPos.y,WorldPos.y), obj.transform.position.z);
下面是我点击屏幕的时候,物体跟着鼠标移动的完整代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HeroControl : MonoBehaviour
{
Vector3 office;
public GameObject obj;
private Vector3 WorldPos;
private void OnMouseDown()
{
office = Camera.main.ScreenToWorldPoint(Input.mousePosition) - obj.transform.position;
//startPos=
Debug.Log("开始点击的时候=" + Camera.main.ScreenToWorldPoint(Input.mousePosition));
}