Я делаю аркадную игру с стрельбой самолета с нисходящим видом, таким как игра 1942 года. Это как эффект допплера. Как я могу это исправить? Использует Coroutine для создания экземпляра и запуска Pullet Prefab в течение определенного периода времени. Ниже приведен фрагмент кода для движения игрока и логики генерации пуль.void FixedUpdate()
{
Vector2 desiredVelocity = rawInput * moveSpeed;
Vector2 nextPos = rb.position + desiredVelocity * Time.fixedDeltaTime;
float clampedX = Mathf.Clamp(nextPos.x, minBounds.x + paddingLeft, maxBounds.x - paddingRight);
float clampedY = Mathf.Clamp(nextPos.y, minBounds.y + paddingBottom, maxBounds.y - paddingTop);
Vector2 clampedPos = new Vector2(clampedX, clampedY);
Vector2 correctedVelocity = (clampedPos - rb.position) / Time.fixedDeltaTime;
rb.velocity = correctedVelocity;
}
Код экземпляра пули в шутере
IEnumerator FireContinuously()
{
while (true)
{
GameObject instance = Instantiate(projectilePrefab,
transform.position,
Quaternion.identity);
AudioPlayer.Instance.PlayShootingClip();
Rigidbody2D rb = instance.GetComponent();
if (rb != null)
rb.velocity = transform.up * projectileSpeed;
yield return new WaitForSeconds(firingRate);
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-the-move
Как сохранить интервалы при съемке снарядов в движении? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение