unity spine 對翻轉和大小的控制


spine-unity怎么決定我的Spine模型的大小?

Spine使用 1像素:1單位。意思是,如果你只是包含圖像在你的骨架中,並且沒有任何旋轉和縮放,在Spine中該圖像的1個像素就對應1個單位高和1個單位寬。

在Unity中,1單位:1米。這是Unity默認的物理值和約束(包括2D和3D)。對於這點,使用1像素:1單位通常不是一個好主意。反而,Unity自己的精靈默認縮放為1/100;意味着100個像素就是1個Unity的單位大小。

為了方便,當你將Spine數據帶入Unity的時候,可以將縮放設置為0.01用來匹配Unity的精靈。

如果你想設置骨架的基本比例的高低,你可以在Skeleton Data Asset的Inspector中改變這個值。當你的SkeletonData被讀取時這個值是一個乘數。當SkeletonData被加載並且在運行的時候去改變這個值是沒有用的。

如果你想在游戲中動態得改變骨架的視覺比例(像球這種的),你可以設置gameObject.transform.localScale屬性的值。

水平翻轉 or 垂直翻轉

訪問Skeleton.FlipXSkeleton.FlipY可以允許骨架的水平翻轉和垂直翻轉。 這通常是個好主意,這可以讓骨架朝着一個方向,所以你可以在代碼中控制翻轉邏輯。如果沒有,你可以隨時增加一個額外的bool變量用來控制和取消預期翻轉的布爾邏輯.

你可能已經在Unity中學會怎么反轉2D精靈,設置Transform的scale為負數,或者沿着Y軸旋轉180度。 這兩件事純粹是視覺的目的。但是它們有其副作用,請記住:

 

  • 不均勻的縮放會導致一個網格繞過Unity的配料系統。這意味着每個實例都會有它自己的draw calls。所以對於你的主要角色這沒什么問題。如果你的不均勻縮放骨架的規模為數十個,它就是有害的。
  • 旋轉會導致法線隨着網格旋轉。對於2D精靈的光照,這意味着它們會指向錯誤的方位。
  • 旋轉X或者Y也可能會導致Unity的2D碰撞發生不可預知的結果。
  • 負比例的縮放會導致附加的物理碰撞和一些腳本邏輯發生不可預料的結果。

上述是官方的說明, 我們項目目前是用ScaleX 翻轉, 不過只是展示, 並沒有處理其他邏輯, 應該還好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM