日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

unity拖拽 到固定位置_Unity3D拖动任意对象GameObject移动到任意地方

發(fā)布時(shí)間:2025/4/16 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity拖拽 到固定位置_Unity3D拖动任意对象GameObject移动到任意地方 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天不是很忙,研究了一下拖拽GameObject移動(dòng)到任意位置,沿x軸和z軸移動(dòng),其他的也就不說(shuō)了,上代碼:using?UnityEngine;

using?System.Collections;

public?class?DragAndDrog?:?MonoBehaviour?{

private?GameObject?target;

private?bool?isMouseDrag;

private?Vector3?screenPosition;

private?Vector3?offset;

//?Use?this?for?initialization

void?Start?()?{

}

//?Update?is?called?once?per?frame

void?Update?()?{

GameObjectDragAndDrog();

}

//任意拖拽

private?GameObject?ReturnGameObjectDrag(out?RaycastHit?hit)

{

target?=?null;

Ray?ray?=?Camera.main.ScreenPointToRay(Input.mousePosition);

if?(Physics.Raycast(ray.origin,?ray.direction?*?10,?out?hit))

{

target?=?hit.collider.gameObject;

}

return?target;

}

//拖拽Updata

private?void?GameObjectDragAndDrog()

{

if?(Input.GetMouseButtonDown?(0))

{

RaycastHit?hitInfo;

target?=?ReturnGameObjectDrag(out?hitInfo);

if?(target?!=?null)

{

isMouseDrag?=?true;

screenPosition?=?Camera.main.WorldToScreenPoint(target.transform.position);

offset?=?target.transform.position?-?Camera.main.ScreenToWorldPoint(new?Vector3(Input.mousePosition.x,?Input.mousePosition.y,?screenPosition.z));

}

}

if?(Input.GetMouseButtonUp(0))

{

isMouseDrag?=?false;

}

if?(isMouseDrag)

{

Vector3?currentScreenSpace?=?new?Vector3(Input.mousePosition.x,?Input.mousePosition.y,?screenPosition.z);

Vector3?currentPosition?=?Camera.main.ScreenToWorldPoint(currentScreenSpace)?+?offset;

target.transform.localPosition?=?new?Vector3(currentPosition.x,?currentPosition.y,?currentPosition.z);

}

}

}

本腳本可以加載任意一個(gè)對(duì)象GameObject,場(chǎng)景中所有帶Collider的對(duì)象,當(dāng)鼠標(biāo)點(diǎn)擊拖動(dòng)時(shí)候都可以沿x和z軸拖動(dòng)。之前,都是要拖動(dòng)那個(gè)GameObject就會(huì)寫(xiě)一個(gè)腳本掛在上面,今天實(shí)現(xiàn)了不用每一個(gè)要拖動(dòng)的GameObject都掛載腳本,也不用將移動(dòng)的GameObject賦給某個(gè)變量。

總結(jié)

以上是生活随笔為你收集整理的unity拖拽 到固定位置_Unity3D拖动任意对象GameObject移动到任意地方的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。