我通過為樞軸點添加父物件和為槍精靈添加子物件來更改我的槍的樞軸點,現在我的槍正在圍繞我的玩家轉動。
public class Gun : MonoBehaviour
{
private Rigidbody2D rb;
public Camera cam;
Vector2 mousePos;
Vector2 lookDir;
private float angle;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
lookDir = mousePos - rb.position;
angle = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg;
rb.rotation = angle;
}
void Update()
{
mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
}}
但如果槍的旋轉大于 -90 且小于 90,我不知道如何訪問子物件的 SpriteRenderer 和 flipY。
uj5u.com熱心網友回復:
只需SpriteRenderer在檢查器中存盤對兩者的參考
// Drag your child object into the according slot via the Inspector within Unity
[SerializeField] private SpriteRenderer spriteRenderer;
或使用 GetComponentInChildren
private void Awake ()
{
if(! spriteRenderer) spriteRenderer = GetComponentInChildren<SpriteRenderer>();
}
void FixedUpdate()
{
lookDir = mousePos - rb.position;
angle = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg;
rb.rotation = angle;
spriteRenderer.flipY = -90 < angle && angle < 90;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322900.html
