unity中 拖拽任意的物件
孫廣東 2015.8.16
目的 : 我們能簡單的通過 滑鼠位置 得到目標物件 如果沒有使用剛體元件
Step - 1: 在3D專案中設定場景. 一個空物件命名為: DragAndDrop ,和建立一些其他的遊戲物件 如 sphere, cube 等
- 感覺如下l;Step - 2: C# 指令碼命名為 "GameobjectDragAndDrop".
Step - 3: 新增方法:
GameObject ReturnClickedObject(out RaycastHit hit) { GameObject 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; }
Step - 4: 在Update 方法中
void Update() { if (Input.GetMouseButtonDown(0)) { RaycastHit hitInfo; target = ReturnClickedObject(out hitInfo); if (target != null) { isMouseDrag = true; Debug.Log("target position :" + target.transform.position); //Convert world position to screen position. 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) { //track mouse position. Vector3 currentScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z); //convert screen position to world position with offset changes. Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenSpace) + offset; //It will update target gameobject's current postion. target.transform.position = currentPosition; } }
Step - 6: 執行程式,然後拖拽物件就OK了啊。。。。
相關推薦
unity中 拖拽任意的物件
孫廣東 2015.8.16 目的 : 我們能簡單的通過 滑鼠位置 得到目標物件 如果沒有使用剛體元件 Step - 1: 在3D專案中設定場景. 一個空物件命名為: DragAndDrop
jquery中獲取原生事件物件來解決html5中拖拽事件的bug
在做一個拖拽demo(九宮格拼圖)時,遇到一個bug,當拖動一張圖片1到另外一張圖片2的位置時,兩個位置的圖片都變成了圖片2,程式碼如下 <script type="text/javascript"> (function($){ var dragSrc; $('li').each
unity 滑鼠拖拽物體移動
private Camera cam;//發射射線的攝像機 private GameObject go;//射線碰撞的物體 private Vector3 screenSpace; pri
PPT_2010/2013/2016實現在演示過程中拖拽圖片/形狀
如果有需要在PPT演示過程中簡單拖拽一些元素的功能,那麼這篇文章絕對能幫助你 在上一篇文章分泌蛋白過程操作動畫中提及到實現PPT演示過程中拖拽元素的方法,這篇寫出詳細過程。 先說明幾點: 1、完成後的PPT必須儲存為字尾pptm,而不能是p
JS中拖拽demo
html部分 <div id="box"> <div id="drop">此處可以移動拖拽 <span id="close">[關閉]</span> <
Unity中拖動的簡單實現(UGUI以及3D物體)
拖動的基本程式碼如下 [RequireComponent(typeof( RectTransform))] using UnityEngine; using System.Collections; u
如何在Listview中拖拽其中的子Item移動其位置
最近開發遇到一個需求,需要顯示的物件支援拖拽,一般的物件直接使用dargarea即可。但我用的是Listview來顯示,而且是自己定義的listmodel,可以說是相當的煩。 1、一種情況,如果是使用qml中的listmodel則直接呼叫model的move方法進行移動:核心程式碼為 &nb
unity 物體拖拽移動
3D物體拖拽移動 1 獲取滑鼠的螢幕座標 2 將滑鼠座標與相機y軸方向的值,轉換為3d座標,並將改制賦給跟隨滑鼠移動物件 void Update () { // Vector3 vp = Camera.main.ScreenToViewpo
gridpanel中拖拽排序
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> &
在Unity中定義統一的物件搜尋介面
我們經常要在Unity中以各種方式搜尋物件。比如按名字搜尋、按tag、layer或者是查詢名字為xxx開頭的物件。本文是介紹以一種統一的介面來搜尋物件。1、定義統一的搜尋介面 /// <summary> /// 遊戲物件搜尋介面 /// &l
unity實現拖拽
using System.Collections; using UnityEngine; public class king : MonoBehaviour { // Use this for initialization void Start () {
關於MFC中任意物件的拖拽功能的實現(COleDataSource, COleDropTarget)
拖拽功能的實現是一個全域性的功能實現,也就是沒有程序之隔,是一個類似windows的檔案拖拽管理和開啟的功能。而下面說記錄的是關於任意內容的全域性拖拽的實現細節。關於相關函式和物件的具體描述可以直接MSDN檢視,這裡就不對其進行詳細的簡介。 大體的實現可
Unity輸出PC端(Windows) 拖拽文件到app中
unity 路徑 。。 gate orm new 通過 som cos 需求:給策劃們寫一個PC端(Window)的Excel導表工具。本來用OpenFile打開FileExplorerDialog後讓他們自己選擇想要添加的Excel文件就行了,結果有個需求是希望能拖拽Ex
unity中ScrollRect拖拽子物體無法拖拽
在拖拽物體上繫結的本指令碼中,重寫一下UGUI的drag相關事件,調ScrollRect的drag等方法 public class DragScrollView : EventTriggerListener { /// <summary> ///
Unity中2D物體的拖拽
public class testButton : MonoBehaviour { public bool isMouseDown = false; private Vector3 la
unity中滑鼠拖拽物體移動
指令碼附著在物體上,加上collide,非mesh collider </pre><pre name="code" class="csharp">using UnityEngine; using System.Collections; public
Unity UGUI中ScrollView的拖拽與被UGUI事件系統遮蔽的問題
最近在專案中遇到一個Scroll View相關問題,具體為:在ScrollView中,為例項化出來的toggle添加了OnValueChange的方法,會導致ScrollView的拖拽方法接收不到拖拽資訊。同時經過測試EventSystem中的onDown,onCli
H5中的拖拽文件上傳
ext block point over ive orm children anim 代碼 一:介紹 1.內容摘要 2.主要設計的技術 3.drag與drop事件 4.drag與drop的部分重要代碼 5.File Api
HTML5拖拽——將本地文件拖拽到網頁中顯示
ctype har char result html blank size func log HTML5標準中的提供的用於文件輸入輸出(I/O)的對象 File: 代表一個文件對象 FileList:
vue中實現百度地圖拖拽地圖定位功能
.com 元素 偏移量 locals 進行 函數 nco 查看 page 效果如果所示,拖動地圖。中間圖標不動,並且自動獲取地圖當前中心點的經緯度。然後就可以用經緯度做其他的操作了。。。首先查看了百度地圖的api。能實現這個功能最貼近的就是marker。marker