第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在編輯器中旋轉(zhuǎn)平滑但在設(shè)備中不旋轉(zhuǎn)

在編輯器中旋轉(zhuǎn)平滑但在設(shè)備中不旋轉(zhuǎn)

C#
三國紛爭 2022-12-24 12:29:15
我有一個(gè) 3D 對象,我想用鼠標(biāo)/手指滑動(dòng)來旋轉(zhuǎn)它,所以我制作了下面的腳本。對象的旋轉(zhuǎn)在編輯器上看起來很流暢,但是在真實(shí)設(shè)備(android)上玩游戲時(shí),旋轉(zhuǎn)并沒有立即跟隨手指移動(dòng),跟隨手指需要幾毫秒,它不流暢并且控制變得困難并且令人沮喪!float sensitivity = 0.8f;Vector2 firstPressPos;Vector2 secondPressPos;void Update(){    if (Input.GetMouseButtonDown(0))    {        //save began touch 2d point        firstPressPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y);    }    if (Input.GetMouseButton(0))    {        //save ended touch 2d point        secondPressPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y);        if (firstPressPos != secondPressPos)        {            float RotX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;            float RotY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;            transform.RotateAround(Vector3.up, RotX);            transform.RotateAround(Vector3.right, -RotY);        }    }}
查看完整描述

2 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

試試這個(gè)代碼


// Screen Touches

    Vector2?[] oldTouchPositions = {

        null,

        null

    };

    // Rotation Speed

    public float rotSpeed = 0.5f;


    public void Update()

    {

        if (Input.touchCount == 0)

        {

            oldTouchPositions[0] = null;

            oldTouchPositions[1] = null;

        }

        else if (Input.touchCount == 1)

        {

            if (oldTouchPositions[0] == null || oldTouchPositions[1] != null)

            {

                oldTouchPositions[0] = Input.GetTouch(0).position;

                oldTouchPositions[1] = null;

            }

            else

            {

                Vector2 newTouchPosition = Input.GetTouch(0).position;

                float distanceX = (oldTouchPositions[0] - newTouchPosition).Value.x;

                float distanceY = (oldTouchPositions[0] - newTouchPosition).Value.y;


                float rotX = distanceX * rotSpeed * Mathf.Deg2Rad;

                float rotY = distanceY * rotSpeed * Mathf.Deg2Rad;



                transform.Rotate(Vector3.up, rotX * 5, Space.Self);

                transform.Rotate(Vector3.left, rotY * 5, Space.Self);



                oldTouchPositions[0] = newTouchPosition;


            }

        }

        else

        {

            if (oldTouchPositions[1] == null)

            {

                oldTouchPositions[0] = Input.GetTouch(0).position;

                oldTouchPositions[1] = Input.GetTouch(1).position;

            }

            else

            {


            }

        }

    }


查看完整回答
反對 回復(fù) 2022-12-24
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是我?guī)啄昵鞍l(fā)現(xiàn)的一個(gè)腳本,它使用鼠標(biāo)或觸摸操作 X 軸旋轉(zhuǎn)。它似乎適用于觸摸,但不適用于鼠標(biāo)。嘗試一下,讓我知道它是否表現(xiàn)更好。這個(gè)應(yīng)該動(dòng)態(tài)調(diào)整旋轉(zhuǎn)速度:


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class SpinDrag : MonoBehaviour {


    float f_lastX = 0.0f;

    float f_difX = 0.5f;

    float f_steps = 0.0f;

    int i_direction = 1;


    // Use this for initialization

    void Start()

    {


    }


    // Update is called once per frame

    void Update()

    {

        if (Input.GetMouseButtonDown(0))

        {

            f_difX = 0.0f;

        }

        else if (Input.GetMouseButton(0))

        {

            f_difX = Mathf.Abs(f_lastX - Input.GetAxis("Mouse X"));


            if (f_lastX < Input.GetAxis("Mouse X"))

            {

                i_direction = -1;

                transform.Rotate(Vector3.up, -f_difX);

            }


            if (f_lastX > Input.GetAxis("Mouse X"))

            {

                i_direction = 1;

                transform.Rotate(Vector3.up, f_difX);

            }


            f_lastX = -Input.GetAxis("Mouse X");

        }

        else

        {

            if (f_difX > 0.5f) f_difX -= 0.05f;

            if (f_difX < 0.5f) f_difX += 0.05f;


            transform.Rotate(Vector3.up, f_difX * i_direction);

        }

    }

}


查看完整回答
反對 回復(fù) 2022-12-24
  • 2 回答
  • 0 關(guān)注
  • 99 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)