1. 程式人生 > >unity 物體拖拽移動

unity 物體拖拽移動

3D物體拖拽移動

1 獲取滑鼠的螢幕座標
2 將滑鼠座標與相機y軸方向的值,轉換為3d座標,並將改制賦給跟隨滑鼠移動物件

void Update () {
     //   Vector3 vp = Camera.main.ScreenToViewportPoint(Input.mousePosition + new Vector3(0, 0, Camera.main.farClipPlane));
        transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition + new Vector3(0, 0, Camera.main
.transform.position.y)); }

NGUI 滑鼠拖拽

參考NGUI示例demo中的Drag程式碼:Example 11 - Drag & Drop
使用到的類:
UIDragDropItem
UIDragDropRoot 當拖拽超出scrowView時,可以繼續顯示拖拽物件

使用方法
自己建立一個指令碼,繼承UIDragDropItem,重寫拖拽的事件方法
開始拖拽移動
protected override void OnDragDropStart()
結束拖拽
protected override void OnDragDropRelease (GameObject surface)
正在拖拽
protected override void OnDragDropMove(Vector3 delta)

UGUI 滑鼠拖拽

在canvans下面建立一個Image物件,在該物件上面新增一個控制拖拽的腳步

using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class MyDrag : MonoBehaviour,IBeginDragHandler, IDragHandler, IEndDragHandler {

    // begin dragging
    public void OnBeginDrag(PointerEventData eventData)
    {
        SetDraggedPosition(eventData);
    }

    // during dragging
public void OnDrag(PointerEventData eventData) { SetDraggedPosition(eventData); } // end dragging public void OnEndDrag(PointerEventData eventData) { SetDraggedPosition(eventData); } /// <summary> /// set position of the dragged game object /// </summary> /// <param name="eventData"></param> private void SetDraggedPosition(PointerEventData eventData) { var rt = gameObject.GetComponent<RectTransform>(); // transform the screen point to world point int rectangle Vector3 globalMousePos; //把螢幕座標轉換為UGUI對應的座標 if (RectTransformUtility.ScreenPointToWorldPointInRectangle(rt, eventData.position, eventData.pressEventCamera, out globalMousePos)) { rt.position = globalMousePos; } } }

腳步繼承3個介面IBeginDragHandler, IDragHandler, IEndDragHandler,分別監聽開始拖拽、正在拖拽和拖拽結束三種狀態

相關推薦

unity 物體移動

3D物體拖拽移動 1 獲取滑鼠的螢幕座標 2 將滑鼠座標與相機y軸方向的值,轉換為3d座標,並將改制賦給跟隨滑鼠移動物件 void Update () { // Vector3 vp = Camera.main.ScreenToViewpo

unity 滑鼠物體移動

    private Camera cam;//發射射線的攝像機     private GameObject go;//射線碰撞的物體     private Vector3 screenSpace;     pri

ScreenToViewportPoint,WorldToViewportPoint,ViewportToWorldPoint的運用,實現一個簡單的對三維中物體移動效果

  眾所周知,我們手機或者手機螢幕上的座標是一個二維平面的的座標值,而且這個座標是一畫素為單位的,也就是說這個是會根據你用的裝置的不同,你手機或者電腦上的座標的長寬最大值也就不同。   之前不太瞭解標題上三個方法的用法,走了不少彎路,然後下來仔細研究了一下,感覺還是挺有收穫的。   簡單說一下,我們在Unit

Bootstrap -- 模態框實現移動

file set sin boot css modal 鏈接 href 需要 ###   這裏實現這個效果   需要引入 jquery-ui.min.js類庫   jquery-ui.min.css樣式   使用它提供的draggable()方法實現 ### 菜

矩形移動,四個角動改變大小

http enter pos 變化 tails per posit ems sca 原創是https://blog.csdn.net/liujava621/article/details/30495103,我這裏做了修改,侵權刪。 上幹貨:這裏首先要註意操作四個角的時候,框

實現可移動的懸浮按鈕

前言:   最近想要實現一個可拖拽移動的FAB按鈕,這裡記錄一下個人的思路與經驗。 如何監聽FAB按鈕的移動?   我們可以實現View.OnTouchListener介面,在onTouch( )方法中獲取FAB按鈕移動時的位置引數。或者可以選擇複寫View自身的onT

UE4房產應用虛擬樣板間功能演示 | 3D箭頭移動 | 材質替換 | 模型移動 - Unreal Engine 4

功能列表: 1.Runtime 3D Gizmo, 支援模型拖拽移動、旋轉功能 2.材質替換功能 3.模型管理:建立傢俱、傢俱庫、材質庫可以動態編輯和更新 4.場景儲存、清空、截圖功能 5.支援正常模式和VR模式切換,VR模式下支援移

原生JS實現圖片移動與縮放

rgb asc col ice head () etl ini size <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name

Java swing移動元件.

首先構造自己的元件,如..Component extends JComponents { ... }。在裡面新增拖拽方法 DragSource dragSource = DragSource.getDefaultDragSource(); dragSource.create

為Bootstrap模態對話方塊新增移動功能

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">

一行程式碼實現view移動、雙指縮放效果

實現原理:通過重寫View.OnTouchListener實現拖拽與縮放效果; 注意:如果對含有子類的viewGroup設定,子類的大小可能不變,因為縮放的效果程式碼用的是view.layout(),只是改變了當前設定觸控監聽view的大小,裡面子類的大小是沒有變的; 如果想子類一起改變

unity任意的物件

孫廣東   2015.8.16 目的 :  我們能簡單的通過 滑鼠位置 得到目標物件  如果沒有使用剛體元件  Step - 1: 在3D專案中設定場景.  一個空物件命名為: DragAndDrop

Unity 物體根據滑鼠移動而轉動(可用於物體的360度展示)(PC端)

有時候會有這個需求,就是物品的360度的展示,例如武將的全方位展示,或是物品的360度展示,這就需要根據滑鼠的移動來轉動物體 而這個就可以實現哦!!! using UnityEngine; using System.Collections; public class D

vuejs 移動端 實現div移動

vue 移動端 實現div拖拽移動 本文講述,在使用VUE的移動端實現類似於iPhone的懸浮窗的效果。 相關知識點 touchstart 當在螢幕上按下手指時觸發 touchmove 當在

UGUI控制元件可移動類元件

由於Unity3d自帶的UGUI不帶拖拽功能,想要實現拖拽功能,必須自己實現拖拽類.所以我寫了一個通用的UGUI拖拽元件,使用方便. 使用方法: 直接放到要拖拽的UI元件上,設定目標移動的物件即可,也可以不設定目標物件,預設是拖動物件自己. using UnityEngin

unity實現

using System.Collections; using UnityEngine; public class king : MonoBehaviour { // Use this for initialization void Start () {

UE4房產應用虛擬樣板間功能演示 | 3D箭頭移動 | 材質替換 | 模型移動

功能列表: 1.Runtime 3D Gizmo, 支援模型拖拽移動、旋轉功能 2.材質替換功能 3.模型管理:建立傢俱、傢俱庫、材質庫可以動態編輯和更新 4.場景儲存、清空、截圖功能 5.支援正常模式和VR模式切換,VR模式下支援移動,僅支援HTC

NGUI物件跟隨滑鼠移動

public Camera WNGUICamera; Vector3 _WoldPosition;//指標的初始位置 // Vector3 _WoldAng; Vector3

3D箭頭移動 | 材質替換 | 模型移動

功能列表:1.Runtime 3D Gizmo, 支援模型拖拽移動、旋轉功能 2.材質替換功能 3.模型管理:建立傢俱、傢俱庫、材質庫可以動態編輯和更新 4.場景儲存、清空、截圖功能 5.支援正常模式和VR模式切換,VR模式下支援移動,僅支援HTC Vive 6.鳥瞰

unity中滑鼠物體移動

指令碼附著在物體上,加上collide,非mesh collider </pre><pre name="code" class="csharp">using UnityEngine; using System.Collections; public