Top Atış Alanı
Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 66 / 71.
Bir atış poligonunun bir ucunda bir top bulunur ve üç hedef, poligon boyunca farklı mesafelerde bir yandan diğer yana kayar. Her mesafeye ulaşmak için namluyu yukarı ve aşağı eğersin ve her atışı, hedef ateş hattını geçerken yapacak şekilde zamanlarsın. Bir hedefe isabet eden top onu devre dışı bırakır ve kendisi de kullanılmış olur; hedefe çarpan diğer her şey ise ona dokunmaz. Hedefler kinematik cisimlerdir, bu yüzden isabetler onları asla itmez ve topta beş gülle bulunur.
İki betik yaz: namluya Cannon, her hedefe Target ekle.
Görev
ZorTopu yaz: nişan al, ardından beş top ateşle.
Update()içindeInput.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTimedeğeriniangledeğerine ekle, 10 ile 60 arasında sınırla vetransform.rotation = Quaternion.Euler(-angle, 0f, 0f);olarak ayarla.balls > 0iken Space tuşuna basıldığında,ballPrefabnesnesinitransform.position + transform.forwardkonumunda oluştur veAddForce(transform.forward * power, ForceMode.Impulse)uygula.ballsdeğerinden 1 çıkar ve"Balls left: " + ballsifadesini günlüğe yazdır.
“Oyna” düğmesine bas ve ateş et. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class Cannon : MonoBehaviour
{
[SerializeField] private Rigidbody ballPrefab;
[SerializeField] private float angle = 30f;
[SerializeField] private float turnSpeed = 40f;
[SerializeField] private float power = 30f;
[SerializeField] private int balls = 5;
void Update()
{
// Yukarı ve aşağı ok tuşlarıyla nişan al, Space ile ateş et
}
}
Fizik ve Oynanış bölümündeki tüm dersler
1Rigidbody
Yerçekimi ve KütleAddForce ile İtmeDürtüyle ZıplamaFizik için FixedUpdateHızKinematik CisimlerTekrar: Fırlatma Rampası2Çarpışmalar
OnCollisionEnterNeye Çarptım?Çarpınca KırılYerde DurmakSekme ve SürtünmeCollider ŞekilleriTekrar: Kırılabilir DuvarKendi başına pratik yap: Unity playground