2016-03-19 19 views
0

Tamam, işte benim sorunum, bir düşman hedefine kilitlenmem ve yörüngememi sağlayan bir komut dosyası var. Sorun, kilitleme düğmesine basıldığında karakterimin hareket etmesi durumunda, başka herhangi bir düğmeye basmadan önce, düğmenin ters yönde kaydedilmesinden bağımsız olarak, karakterin ne yönde hareket edeceğine devam etmesidir.Unity-Character Devam Ediyor Düşman Kilitlendiğinde Taşınıyor

Bu, sabit olduğumda olmaz, karakterim hala duruyorsa ve kilit düğmesine bastığımda her şey iyi çalışıyor. Sadece hareket ettiğimde. Bu yeterli bilgi, ya da ne birilerinin burada daha iyi anlamamız gerekir ama belki benim senaryom ise

emin değilim:

if (GetComponent<DetectedEnemies>().locked)//checks bool to see if lockOn button was pressed 
{ 
    mainCam.SetActive(false);//turns off main cam 
    lockCam.SetActive(true);//turns on lockOn cam 

    movesetting.tarObject = GetComponent<DetectedEnemies>().Closest;//target object will be the closest enemy to player 

    this.transform.LookAt(movesetting.tarObject.transform.position);//player will look at the target object at all times 

    if (currXRot.x > maxXRot.x)//if the current x rot of this object exceeds the maxXRot it can go... 
     currXRot.x = maxXRot.x;//it gets reset 

    transform.Translate(Vector3.right * movesetting.speed * Time.deltaTime * turnInput);//orbits around the target object 
    transform.Translate(Vector3.forward * movesetting.speed * Time.deltaTime * forwardInput);//in control of moving towards and away from target 
} 

Herhangi ve tüm Yardım büyük appreaciated edilir, şimdiden teşekkür ederim. Daha fazla bilgiye ihtiyacınız varsa veya bir şey açık değilse lütfen bize bildirin.

cevap

0

Dönme hızı için kullandığınız ikinci bir hız değişkeni oluşturmayı deneyin. Daha sonra oyuncu kilitliyse, ilk hız değişkeni 0 olarak ayarlanmış ve oyuncu kilitlenmediğinde yörüngede hız değişkeni 0 olarak ayarlanmıştır. Bunun gibi bir şey: (bir örnek olarak 5 kullanıyorum)

if(GetComponent.<DetectedEnemies>().locked) { 

speed = 5; 
orbitSpeed = 5; 
} else { 

speed = 5; 
orbitSpeed = 0; 
} 
İlgili konular