Ebeveynler ve Çocuklar
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 24 / 67.
Hierarchy bölümünde, başka bir nesnenin üzerine sürüklenen nesne onun child öğesi olur ve parent öğesinin altında girintili olarak gösterilir. Bir child, parent öğesiyle birlikte hareket eder, döner ve ölçeklenir: parent öğesini hareket ettir, tüm child öğeleri de onunla birlikte gelir; child öğelerine kod eklemen gerekmez.
Unity, bir child öğesinin yerini parent öğesine göre saklar. transform.localPosition, parent öğesinden ölçülen bu uzaklıktır; transform.position ise dünyadaki konumdur. Bu Rider, bir Horse öğesinin child öğesidir ve script'i onu atın merkezinin 1 birim üstüne ve yarım birim gerisine yerleştirir; at nerede durursa dursun:
void Start()
{
transform.localPosition = new Vector3(0, 1, -0.5f);
}At (4, 0.5, 2) konumundayken, binicinin position değeri (4, 1.5, 1.5) olurken localPosition değeri (0, 1, -0.5) olarak kalır. At ilerlediğinde position değişir, localPosition ise değişmez. Uzaklık, parent öğesinin kendi eksenleri boyunca ölçülür; bu nedenle parent döndüğünde veya ölçeklendiğinde uzaklık da onunla birlikte döner ve ölçeklenir. Parent öğesi olmayan bir nesne için localPosition ve position aynıdır.
Görev
OrtaBayrak, Gemi'nin çocuğudur ve gemi dünyanın merkezinde değildir. Bayrağın Start() metodu, bayrağı gemiye göre ölçüldüğünde 0.6 sağa ve 1 yukarı, direğin dibine koymayı amaçlar; ancak bu sayıları position konumuna yazdığı için bayrak gemiden uzağa düşer.
Start()metodunu, bayrak direğin dibinde başlayacak şekilde düzelt.- Yukarı ok tuşu basılı tutulduğunda bayrağı çek: gemiye göre ölçülen yüksekliği direğin tepesi olan 4'e ulaşana kadar saniyede
climbbirim yükselsin ve orada dursun.
Play'e bas, yukarı ok tuşunu basılı tut, ardından Check'e bas.
Kendin dene
using UnityEngine;
public class Hoist : MonoBehaviour
{
public float climb = 1f;
void Start()
{
// Direğin tabanı: Ship'ten ölçüldüğünde 0.6 sağa ve 1 yukarı
transform.position = new Vector3(0.6f, 1, 0);
}
void Update()
{
// Yukarı ok tuşu basılı tutulurken, Ship'e göre yükseklik 4 olana kadar tırman
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1İlk Betiğiniz
Merhaba, UnityKüpü YerleştirHer Karede Hareket EtHer Saniye DönTuşlarla Yön VerÖzet: Küpü Sür4Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir YapıdırÖzet: Drone Pilotu7Proje: Yıldızı Yakala
YakalayıcıDüşen Bir Yıldız5Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarÖlçekNesnelere BakışBir Noktaya Doğru HareketTekrar: Yörüngedeki Ay6GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBir Bileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı