• Unity 鼠标旋转物体360展示


    PC端

    using UnityEngine;
    using System.Collections;
     
    public class DragRound : MonoBehaviour {
     
        public Transform obj;
        public float speed = 2;
        
        private bool _mouseDown = false;
        
        void Update () 
        {
            if (Input.GetMouseButtonDown(0))
                _mouseDown = true;
            else if (Input.GetMouseButtonUp(0))
                _mouseDown = false;
    
            if (_mouseDown)
            {
                float fMouseX = Input.GetAxis("Mouse X");
                float fMouseY = Input.GetAxis("Mouse Y");
                obj.Rotate(Vector3.up, -fMouseX * speed, Space.World);
                obj.Rotate(Vector3.right, fMouseY * speed, Space.World);
            }
        }
    }

    移动端:

    using UnityEngine;
    using System.Collections;
     
    public class DragRoundPhone : MonoBehaviour {
     
        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);
            }  
     
        }  
    }
  • 相关阅读:
    捕获组
    re.S解析
    Python eval 函数妙用
    Python tips: 什么是*args和**kwargs?
    HBase 的安装与配置
    HBase 基本操作
    HBase中的备份和故障恢复方法
    Hbase写数据,存数据,读数据的详细过程
    HBase shell
    HDFS的快照原理和Hbase基于快照的表修复
  • 原文地址:https://www.cnblogs.com/unity3ds/p/10837061.html
Copyright © 2020-2023  润新知