我撰寫了一個運行良好的 Shoot 函式,但我希望彈丸物件在場景中的玩家物件后面生成。我試過在 z 軸上將射彈的預制件設定為 -1,這似乎不起作用。我懷疑這是因為它被物件的實體化覆寫了。我還簡短地嘗試使用 Vector3 通過以下代碼生成射彈,但這也不起作用。
這是我的代碼。
Vector3 spawn = new Vector3(0, 0.5f, -1)
rb.position spawn
彈道腳本:
public class Projectile : MonoBehaviour
{
Rigidbody2D rb;
Vector2 launch = new Vector2(0, 1);
void Awake()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
if (transform.position.magnitude > 1000.0f)
{
Destroy(gameObject);
}
}
void OnCollisionEnter2D(Collision2D other)
{
Destroy(gameObject);
}
public void Shoot(float force)
{
rb.AddForce(launch * force);
}
}
播放器腳本中的射擊功能:
void Shoot()
{
GameObject projectileObject = Instantiate(projectilePrefab, rb.position Vector2.up * 0.5f, Quaternion.identity);
Projectile projectile = projectileObject.GetComponent<Projectile>();
projectile.Shoot(300);
}
uj5u.com熱心網友回復:
如果射彈和播放器都是 2d 并且您只想在播放器后面渲染射彈,則它應該在不同的排序層中,或者它應該sortingOrder比播放器的渲染器低。
請參閱此處了解更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/347443.html
上一篇:如何修復Unity/C#中的InvalidExpressionTerm'='錯誤?
下一篇:如何獲得剛體速度的分量?
