12 Nisan 2013 Cuma

Haçlı Adası Asker Kontrol Kodu

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);

}
}