我有一個腳本面向我的播放器(立方體)的移動方向。它也有一把抓斗槍,但是當他轉向它的移動方向時,槍也會轉動,當我試圖抓斗并且物體停留在我的玩家對面的位置時,它不能使用抓斗槍。
這就是我轉動我的播放器的方式:
private void Flip()
{
if (isFacingRight && HorizontalInput() < 0f || !isFacingRight && HorizontalInput() > 0f)
{
Vector3 localScale = transform.localScale;
isFacingRight = !isFacingRight;
localScale.x *= -1f;
transform.localScale = localScale;
}
}
如果我可以修復我的槍的 localScale,這樣當我乘以整個身體時它就不會乘以 -1。
任何想法?非常感謝。
uj5u.com熱心網友回復:
據我了解這個問題:你想翻轉玩家但不翻轉槍(這是玩家的孩子)。
這樣做的一種方法是像這樣組織 Player 物件:
-Player(prefeb,不可見)
--PlayerGraphicChild(立方體,只翻轉這個)
--PlayerGunChild(不翻轉這個)。
另一種方法是添加一個名為 Gun 的新預設,并將該物件的位置設定為 Player 的一個子物件。像這樣組織層次結構:
-Player(翻轉這個)
--PlayerGunDolly(與父級翻轉)
并創建一個新的prefeb:
-Gun(有一個組件將transform.position設定為PlayerGunDolly的變換。不翻轉。)
uj5u.com熱心網友回復:
如果我理解正確,您正在更改本地比例以左右翻轉您的精靈?
如果是這種情況,有一種更好更快的方法來翻轉你的精靈,而不會弄亂你的物件的比例。
在您的SpriteRenderer組件上,有一個選項Flip
用于在 2 軸 (x,y) 上翻轉您的精靈。使用 X 軸左右翻轉精靈。
Sprite 渲染器組件示例
只需SpriteRenderer
在腳本中創建組件的參考,然后使用該flip
屬性,就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528946.html
標籤:unity3d
下一篇:玩C#的射擊腳本