Uygulanış :http://www.youtube.com/watch?v=_be97E0WWIw&feature=youtu.be
YZ1 Kodu :
var hedef : Transform;
var suankiyakinlik: String = "";
var yakinlik = 2.5;
var hiz : float =5;
var yeniceri : GameObject;
var Transformum : Transform;
// değişkenler . Ben oyunda boş bi obje oluşturup yeniçeriyi oraya atıyodum öbür türlü sapıtıyo karakter bunun için de yeniçeri diye değişken oluşturdum animasyonu oynatması bakımından
function Start()
{
Transformum = transform;
}
function Update(){
hedef = GameObject.FindWithTag("nok").transform; // Hedefimizi belirledik objeyi tagıyla bulacak yani öbür kodla noktalar klonlayacağız("nok" tagıyla küpler) o da tagla bulacak ve oraya yönelecek
var mesafe = (hedef.position - Transformum.position).magnitude; // üstüne geldiğinde yok olması için bi mesafe belirledik üstte bu da mesafeyi ölçecek.
transform.LookAt(hedef); // karakterimiz hedefe bakacak
transform.Translate(hiz*Vector3.forward*Time.deltaTime); //hedefe dönünce doğal olarak oraya doğru gidecek
if(mesafe < yakinlik){ // mesafe belirlediğimiz uzaklıktan küçükse
Destroy(hedef.gameObject); // hedef objeyi yokediyoruz
yeniceri.animation.Stop(); // animasyonu durduruyoruz ne zaman oynamaya başladı diyorsanız alttaki koda geçin
}
if(mesafe > yakinlik){ // mesafe belirlediğimiz mesafeden büyükse yürüme animasyonu oynayacak yani kübün yanına geldiğinde duracak tek tabi yerinde sayacak mı diyosanız onu da bu kodu iptal ederek halledeceğiz başka kodla
yeniceri.animation.Play();
}
}
// bu kod tamam ancak sadece bu kodla tek tek yönlendiremeyiz adamları adam basacağımız için tüm askerlerimizin ismi aynı olacak yani nokta koyduğumuzda hepsi beraber yürüyecek bunun için alternatif çözümler de vardır ama ben ayrı bi kodla çözdüm
YZİPT Kodu :
var obje : GameObject; // buraya askeri sürükleyeceğiz
function Update(){
if ( Input.GetMouseButtonDown(0)){ // fareyle sol tıkladığınızda
var carp : RaycastHit;
var isin : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var sec = GameObject.Find("GameObject");
// değişkenleri oluşturduk
if (Physics.Raycast (isin, carp, 100.0)){ // ışın çarparsa
if(carp.collider.name == "GameObject"){ // çarptığı colliderın adı GameObjectse
sec.collider.transform.tag = "Untagged"; // hepsinin tagını Untagged yap
GetComponent("yz1").enabled = true;
carp.collider.transform.tag = "dost";// çarptığının tagını dost yap
// şimdi burda hep beraber hareketi engelledik alttaki kodla beraber
}
}
}
if(obje.tag == "Untagged"){ // eğer objenin tagı Untagged'sa yz1 kodunu iptal et bizim karakterimiz noktaya yz1 kodu sayesinde gidiyor onu iptal edince gidemeyecek sadece açık olan gidecek o da tıkladığınız karakter
GetComponent("yz1").enabled = false;
}
}
Mauz Kodu :
var tiknoktasi : Vector3;
var nokta : Transform;
function Update()
{
var isin = Camera.main.ScreenPointToRay (Input.mousePosition);
var carp : RaycastHit;
if (Physics.Raycast (isin, carp, 100) && Input.GetButtonDown("Fire2") )
{
var pos = Vector3.up * 2;
tiknoktasi = carp.point;
var objem= Instantiate(nokta, tiknoktasi + pos,Quaternion.identity);
}
}