??作者:白日參商
🤵?♂?個人主頁:白日參商主頁
??堅持分析平時學習到的項目以及學習到的軟件開發知識,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈歡迎評論 💬點贊👍🏻 收藏 📂加關注+!
項目場景:
例如:項目場景:在unity開發過程中,我們有時候會希望在鼠標按下時開始旋轉,通過記錄鼠標按下的位置和移動的距離來進行物體的旋轉,并在鼠標釋放后將物體恢復到初始旋轉位置。
解決方案:
提針對這個需求,以下是示例腳本代碼:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ObjectRotationWithMouse : MonoBehaviour
{public float rotationSpeed = 1.0f; // 旋轉速度private Quaternion initialRotation; // 初始旋轉private bool isRotating = false; // 標記是否正在旋轉private float rotationStartX; // 旋轉起始點的X坐標private void Start(){initialRotation = transform.rotation; // 記錄初始旋轉}private void Update(){if (Input.GetMouseButtonDown(0)){isRotating = true;rotationStartX = Input.mousePosition.x;}else if (Input.GetMouseButtonUp(0)){isRotating = false;transform.rotation = initialRotation; // 恢復初始旋轉}if (isRotating){// 獲取鼠標水平移動的值float mouseX = Input.mousePosition.x - rotationStartX;// 計算旋轉角度float rotationAmount = mouseX * rotationSpeed * Time.deltaTime;// 圍繞自身 Y 軸旋轉物體transform.Rotate(Vector3.up, rotationAmount);rotationStartX = Input.mousePosition.x; // 更新旋轉起始點}}
}
??作者:白日參商
🤵?♂?個人主頁:白日參商主頁
??堅持分析平時學習到的項目以及學習到的軟件開發知識,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈歡迎評論 💬點贊👍🏻 收藏 📂加關注+!