unity按下滑鼠拖動3D物體指令碼
public class ObjectDragger : MonoBehaviour { private Vector3 screenPoint; private Vector3 offset; bool dragged = false; private Vector3 newPosition;//賦值給物體的座標位置 private Rigidbody body; void Awake(){ //獲取自身重力 body = gameObject.GetComponent<Rigidbody>(); //獲取自身初始座標 newPosition = transform.position; } void OnMouseDown() { //按下滑鼠時獲取自身當前座標的螢幕座標 screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position); //按下滑鼠時記錄物體的世界座標,和滑鼠世界座標的向量偏移 offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z)); } void OnMouseDrag() { //按下拖動滑鼠時 dragged = true; Debug.Log("按下拖動滑鼠時"); } void FixedUpdate(){ if (dragged){ dragged = false; //當前滑鼠的螢幕座標 Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z); //保持物體與滑鼠的位置偏移量 newPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset; if (body != null) body.velocity = (newPosition - transform.position) / Time.deltaTime; Debug.Log(body.velocity); } } void LateUpdate(){ //移動程式碼 transform.position = newPosition; } }
相關推薦
unity按下滑鼠拖動3D物體指令碼
public class ObjectDragger : MonoBehaviour { private Vector3 screenPoint; private Vector3 offset; bool dragged = false; private V
unity中 UGUI的按下、拖動接口事件的實現
pointer 攝像機 sys parent generic npoi del 返回 ren using UnityEngine; using System.Collections.Generic; using DG.Tweening; using UnityEn
Unity基礎篇:Unity使用滑鼠拖動2D和3D物體。
/* 首先說一下,Input.mousePosition是滑鼠所在畫素平面內的座標,需要根據自己的需求轉變成世界座標。 Description 描述 The
unity 滑鼠拖動 物體旋轉 點選變色 拖動移動
public Camera camera; Ray ray; RaycastHit hitInfo; Vector3 offset; GameObject obj;//獲取點選到的物體 public GameObject tr
Unity滑鼠自由檢視3D物體之控制攝相機Camera
這種方式是通過控制相機的旋轉,位置來檢視物體。 下面的程式碼是通過修改官方的MouseOrbit程式碼產生,加了縮放功能,以及縮放,旋轉,位移的緩動,讓它不再那麼生硬。 需要將下面的程式碼放到相機上面。 using UnityEngine; using System.Col
Unity 拖動UI物體
using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class Tool : Mo
Unity2D中使用滑鼠拖動物體移動
昨天用unity開發了一個微信的飛機大戰,效果圖如下。期間遇到了很多問題都一一解決了,印象最深的問題就是如何用滑鼠拖動飛機的移動。今天我就把我的方法拿出來分享。 我的方法是在飛機物體中寫一個指令碼。在Update中先檢測滑鼠是否按下。 程式碼是這樣的: private
鼠標的拖動實現物體的上下左右移動
sta button locale transform min atime enter ans 實現 private GameObject center; private float rotateSpeed = 40f; private float rot
HTTP協議下可拖動時間軸播放FLV的實現(偽流媒體)
prot pac -m method bytes encoding 編寫 時間軸 delay HTTP協議下實現FLV的播放其實並不復雜,當初實現的原理是使用了flowPlayer插件實現的,效果還不錯。但仍有兩大問題影響著客戶的訪問情緒: 1.預加載時頁面卡死,似乎沒有
C# WPF實現滑鼠拖動的程式碼片
C# WPF實現滑鼠拖動的程式碼片 ///可表示實時拖動 void xxx_PreviewMouseLeftButtonUp(System.Object sender, System.Windows.Input.MouseButtonEventArgs e) { IsMous
QT練手專案二:滑鼠拖動視窗
對於一個沒有邊框的視窗,滑鼠是無法將它拖動的,於是我們就需要自己重寫滑鼠的點選、移動和釋放事件來跟蹤滑鼠,從而 達到使用滑鼠拖動視窗,這裡我們就簡單的使用一個mainwindow來演示。這個小專案程式碼非常少,適合用來入門QT。 &nb
原生js實現table列寬的滑鼠拖動事件
var tTD; //用來儲存當前更改寬度的Table Cell,避免快速移動滑鼠的問題 var table = document.getElementById("tableId"); //table的id名稱 for (j = 0; j < table.rows[0].cells.le
Qt 繪製可以用滑鼠拖動的線段
一、環境 VS2013 + QT5.7.0 二、效果 1.可以建立任意多條線段; 2.滑鼠在靠近到線段時產生吸附效果; 3.可以拖動任意一條線段的任意部位(線段的兩個端點或者整條線段)。 效果圖: 三、說明 1.建立線段的定義: 線段具有
C#窗體屬性FormBordeStyle設定為none後,通過程式碼實現窗體滑鼠拖動功能
備註:使用的是visual studio2013版本 1、新建C#窗體應用程式,初始化的程式預設FormBordeStyle屬性為Sizable,修改屬性FormBordeStyle為none (1)修改前 (2)修改後 2、F5除錯程式後,此時窗體沒有邊框、
QML之滑鼠拖動ListView中某項的位置
現有一種需求,就是用滑鼠拖動某項,動態去改變某一項在ListView中顯示的順序位置,經過研究及實踐實戰,實現方式的核心程式碼如下: import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Window 2
unity畫線之對映到3D物體上
1.畫線方式有很多 包括OpenGL,shader ,linerender,也可以直接動態更改貼圖的畫素點顏色 這裡是用的GL,如果不是太懂gl的可以參考unity 官方API,其實我也不是太懂~~~~ using UnityEngine; using System.Collection
C#Winform實現無邊框窗體滑鼠拖動
在有時候我們為了實現軟體的美觀,我們需要把窗體的邊框隱藏,但是問題也會隨之而來,在屬性中設定了FormBorderStyle應該為None,邊框便可以隱藏,但是我們在使用軟體時卻無法拖動窗體,
WPF無邊框視窗滑鼠拖動縮放大小
通常,我們會 通過AllowsTransparency=”True”、 WindowStyle=”None” 這兩個屬性將wpf視窗的邊框去掉,由於邊框沒了,我們就不能通過滑鼠指標懸停在某一邊上拖動改變視窗的大小,此時若要能調整視窗大小,官方倒也提供了個屬性:R
c# 實現用滑鼠拖動沒有標題欄的視窗(窗體的任何部分都可實現拖動效果)
上面形式的窗體,實現窗體的任何部分都可實現拖動 首先需要引入非託管程式碼,直接呼叫windows api public const int WM_NCLBUTTONDOWN = 0xA1; public const int HT_CAPT
Swift禁用UIWebView和WKWebView的下拉拖動效果
使用UIWebView或WKWebView載入網頁時,如果頁面處於最頂端時,使用者用手指往下拖動,會露出灰色空背景。同樣頁面在最底部的時候,繼續向上拖動,下方也會露出空背景。 要禁止這個拖動效果,可進行如下設定: 1 theWebView.scroll