Unity 物體根據手指拖動而轉動(可用於物體的360度展示)(手機端)
private Vector3 startFingerPos;
private Vector3 nowFingerPos;
private float xMoveDistance;
private float yMoveDistance;
private int backValue = 0;
public GameObject obj;
void Update()
{
if (Input.touchCount <= 0)
{
return;
}
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
//Debug.Log("======開始觸控=====");
startFingerPos = Input.GetTouch(0).position;
}
nowFingerPos = Input.GetTouch(0).position;
if ((Input.GetTouch(0).phase == TouchPhase.Stationary) || (Input.GetTouch(0).phase == TouchPhase.Ended))
{
startFingerPos = nowFingerPos;
//Debug.Log("======釋放觸控=====");
return;
}
// if (Input.GetTouch(0).phase == TouchPhase.Ended) {
//
// }
if (startFingerPos == nowFingerPos)
{
return;
}
xMoveDistance = Mathf.Abs(nowFingerPos.x - startFingerPos.x);
yMoveDistance = Mathf.Abs(nowFingerPos.y - startFingerPos.y);
if (xMoveDistance > yMoveDistance)
{
if (nowFingerPos.x - startFingerPos.x > 0)
{
//Debug.Log("=======沿著X軸負方向移動=====");
backValue = -1; //沿著X軸負方向移動
}
else
{
//Debug.Log("=======沿著X軸正方向移動=====");
backValue = 1; //沿著X軸正方向移動
}
}
else
{
if (nowFingerPos.y - startFingerPos.y > 0)
{
//Debug.Log("=======沿著Y軸正方向移動=====");
backValue = 2; //沿著Y軸正方向移動
}
else
{
//Debug.Log("=======沿著Y軸負方向移動=====");
backValue = -2; //沿著Y軸負方向移動
}
}
if (backValue == -1)
{
obj.transform.Rotate(Vector3.up * -1 * Time.deltaTime * 50, Space.World);
}
else if (backValue == 1)
{
obj.transform.Rotate(Vector3.up * Time.deltaTime * 50, Space.World);
}
else if (backValue == 2)
{
obj.transform.Rotate(Vector3.right * Time.deltaTime * 50, Space.World);
}
else if (backValue == -2)
{
obj.transform.Rotate(Vector3.right * -1 * Time.deltaTime * 50, Space.World);
}
}
PC端滑鼠拖動而轉動參考連結:http://blog.csdn.net/liujunjie612/article/details/54136337
相關文章
- js 根據滑鼠拖動(或手機長按)旋轉JS
- 讓物體動起來,Unity的幾種移動方式Unity
- Unity更改物體的materialUnity
- Unity使用指令碼給已有物體建立子物體Unity指令碼
- Nginx根據PC端和手機端跳轉不同的路徑Nginx
- javascript 多物體運動JavaScript
- 【Unity】(2D)物體拖拽Unity
- unity3D用滑鼠和射線控制物體移動Unity3D
- Unity正交相機智慧包圍物體(組)方案Unity
- JS動畫效果——多物體動畫JS動畫
- Unity中,實現物體的2D頂牌始終位於物體包圍盒中間下方邊緣,並自動計算頂牌中心點,避免頂牌遮擋物體Unity
- OPCV 移動物體檢測
- unity3d縮放物體Unity3D
- Unity3D 透明物體ShaderUnity3D
- openCV檢測物體是否運動OpenCV
- SCRDet——對小物體和旋轉物體更具魯棒性的模型模型
- 按住panel 拖動窗體的方法
- 基於Keras的動物檢測Keras
- 無脊椎動物靠什麼支撐起身體?
- 利用FreeSql.Generator自動根據資料庫表動態生成實體類SQL資料庫
- SpringBoot使用JPA根據實體類自動生成相應表-mysqlSpring BootMySql
- java使用jaxb解析XML(含根據xml自動生成實體類)JavaXML
- 原生JavaScript運動功能系列(四):多物體多值鏈式運動JavaScript
- sld樣式之根據id展示不同樣式,大於10000展示標註
- 根據手機號識性別
- UE中材質平鋪隨物體動態縮放
- 物體識別互動系統的特點及優勢
- 移動端html展示word文件轉換方法HTML
- ARFoundation - 實現物體旋轉, 平移,縮放
- 《集合啦!動物森友會》是如何設計小動物的?
- 動物類Animal
- 第一屆“物天杯”體育節活動策劃
- 微博根據手機號查詢
- 人機互動新體驗,全新AR介面讓你輕鬆控制畫中物
- flutter系列之:移動端手勢的具體使用Flutter
- Sci Adv:重磅!科學家識別出維持哺乳動物機體正常體溫的關鍵神經元
- 【Oculus Interaction SDK】(七)使用射線進行互動(物體 & UI)UI
- CVPR 2019 | 條件運動傳播:從運動中學習物體性質
- C# 根據前臺傳入實體名稱,動態查詢資料C#