2016-04-13 40 views
0

benim oyuncu diyagonal yönde hareket etmek istiyor ve bu bir aşağı diyagonal şekilde hareket etmeye kullanıyorum kodudur:Birlik Çapraz Hareketi Çalışmıyor

if (Input.GetAxisRaw("Horizontal") > 0f && Input.GetAxisRaw("Vertical") < 0f) 
{ 
     front45 = true; 
     rb.velocity = new Vector3(moveSpeed, -moveSpeed, 0f); 
} 

ancak bu yönde rigidbody2d alışkanlık hareket. Yukarı, aşağı ve yanlara doğru hareket eder, fakat asla çapraz değildir.

Ön45 = gerçek, animatörü ne zaman değiştireceğini bilmek için yalnızca animatör içindir.

+0

Kodunuz if ifadesini başarılı bir şekilde giriyor mu? yani. Sorun belirli koşullar mı yoksa hız ataması mı? – Serlite

+0

Listelenen yanıtı denedim ve bu hile yaptı. Karakteri kontrol eden çok fazla kod satırım olduğu için yanlış bir yere gidebilirdim –

cevap

1

böyle bir şey denemek istiyorum:

float h = Input.GetAxisRaw("Horizontal") * Time.deltaTime; 
float v = Input.GetAxisRaw("Vertical") * Time.deltaTime; 

if (h != 0 && v != 0) 
    front45 = true; //Not sure what this does, so I just left it inside the condition 

rb.velocity = new Vector3(h * moveSpeed, v * moveSpeed, 0f); 

Bu herhangi bir yönde çalışması gerekir.

+0

Bu kesinlikle hareket için çok daha kolay ve çok sayıda satır kodu kaydediyor –

+0

@lain Blackwood Yardım ettiğim için mutluyum – Agustin0987