欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決unity rotate旋轉物體 限制物體旋轉角度的大坑

 更新時間:2021年04月12日 15:42:48   作者:aldonaletto  
這篇文章主要介紹了解決unity rotate旋轉物體 限制物體旋轉角度的大坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

今天可是遇到一個很簡單的需求,但是卻讓我疼了半天。

滑動屏幕控制物體旋轉,但是旋轉的角度要在-60到60之間。

乍一聽這簡直是小兒科啊。

判斷一下角度不就行了。相比這四元數,歐拉角雖然有時會出現萬向鎖,但是簡潔明了啊。

這不,我就中了一個簡潔明了的大坑。

圖中,如果你以為transform.eulerAngles =(-1,0,90)

那就大錯特錯了。

因為對于旋轉來說。360度是一個循環(huán)。-1° 也可以算是就是359°

而且unity就是這樣認為的。面板上雖然顯示的是-1。但是他運行時是359。

這就讓我的判斷出了問題。

 if(angle>60)
 
 transform.eulerAngles = new Vector3(60, transform.eulerAngles.y, transform.eulerAngles.z);
 if(angle<-60)
 
 transform.eulerAngles = new Vector3(-60, transform.eulerAngles.y, transform.eulerAngles.z);

這樣你就會發(fā)現 你的物體處并不受控制,有時候還會出現一種奇葩的狀態(tài)。

因為當x的值小于0后,他又變回359了。這樣又走到第一個if里面了。

那要怎么辦呢。解決方法就是:你不是負數 我把你變成負數。

 public float CheckAngle(float value)
 {
 float angle = value - 180;
 
 
 if (angle > 0)
 return angle - 180;
 
 
 return angle + 180;
 }

通過這個方法,將他的角度在變回負數。

可以看到 圖中 x的值是-26但是輸出實際上是333。經過方法的轉換才能成為顯示的值。

這樣就可以計算了。

2011年就有人提出這個問題了。在官方論壇下2016年還有回答??磥碚媸强恿瞬簧偃恕?/p>

補充:Unity RotateAround固定旋轉

當前顯示的為本地坐標系

//旋轉視野
void rotateVeiw()
{
float x=Input.GetAxis("Mouse X");
float y=Input.GetAxis("Mouse Y");
//函數參數(旋轉點,旋轉軸,旋轉量)

旋轉效果相當于旋轉軸平移到旋轉點上后 沿此軸旋轉相應的量。

例上圖,如果沿本地坐標的Y軸旋轉 則會出現旋轉偏移到地下的情況。

必須使用下式 沿世界坐標的y軸旋轉

transform.RotateAround(plear.position,Vector3.up,x);

當單純的左右旋轉時,x軸都為固定的,所以沒有區(qū)別。

但當左右移動后,本地坐標的x軸和世界坐標的x軸有出入。

例如:此時如果選用世界坐標x軸,則左右移動后的x軸還是固定的,左右移動移動一定的量后

世界就會開始傾斜:如下圖所示:

所以此時我們應采用 本地坐標軸x

transform.RotateAround(plear.position, transform.right, y);
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • 解析Silverlight調用WCF/Rest異常的解決方法

    解析Silverlight調用WCF/Rest異常的解決方法

    本篇文章對Silverlight調用WCF/Rest異常的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C#獲取攝像頭拍照顯示圖像的方法

    C#獲取攝像頭拍照顯示圖像的方法

    這篇文章主要為大家詳細介紹了C#獲取攝像頭拍照顯示圖像的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Unity Shader實現動態(tài)過場切換圖片效果

    Unity Shader實現動態(tài)過場切換圖片效果

    這篇文章主要為大家詳細介紹了Unity Shader實現動態(tài)過場切換圖片效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C# Winform使用擴展方法實現自定義富文本框(RichTextBox)字體顏色

    C# Winform使用擴展方法實現自定義富文本框(RichTextBox)字體顏色

    這篇文章主要介紹了C# Winform使用擴展方法實現自定義富文本框(RichTextBox)字體顏色,通過.NET的靜態(tài)擴展方法來改變RichTextBox字體顏色,需要的朋友可以參考下
    2015-06-06
  • C#命令行編譯器配置方法

    C#命令行編譯器配置方法

    這篇文章主要介紹了C#命令行編譯器配置方法,本文講解了配置C#命令行編譯器、配置其它.NET命令行工具、通過csc命令行編譯器來編譯C#文件實例等內容,需要的朋友可以參考下
    2015-06-06
  • user32.dll 函數說明小結

    user32.dll 函數說明小結

    這篇文章主要介紹了user32.dll 函數說明,需要的朋友可以參考下
    2018-06-06
  • C#?崩潰異常中研究頁堆布局的詳細過程

    C#?崩潰異常中研究頁堆布局的詳細過程

    最近遇到一位朋友的程序崩潰,發(fā)現崩潰點在富編輯器 msftedit 上,這個不是重點,重點在于發(fā)現他已經開啟了 頁堆,由于 頁堆 和 NT堆 的內存布局完全不一樣,這一篇結合我的了解以及 windbg 驗證來系統(tǒng)的介紹下 頁堆,需要的朋友可以參考下
    2022-10-10
  • 那些年,我還在學習C# 學習筆記

    那些年,我還在學習C# 學習筆記

    那些年學了ASP.NET后,才開始學習C#,說來也怪,怎么學了ASP.NET才來學習C#,其實沒有什么的
    2012-03-03
  • C#使用Npoi實現生成Word文檔

    C#使用Npoi實現生成Word文檔

    這篇文章主要為大家詳細介紹了C#如何使用Npoi實現生成Word文檔,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2024-03-03
  • c#使用windows服務更新站點地圖的詳細示例

    c#使用windows服務更新站點地圖的詳細示例

    這篇文章主要介紹了c#使用windows服務更新站點地圖的詳細示例,需要的朋友可以參考下
    2014-04-04

最新評論