Karakter kontrolleri ile ilgili yazılan kod nasıldır?

Arsen Lüpen

Hectopat
Katılım
28 Şubat 2021
Mesajlar
81
Daha fazla  
Cinsiyet
Erkek
Kod:
float playerMovementX = Input.GetAxis("Horizontal") * playerMovementSpeed * Time.deltaTime;
 float playerMovementY = Input.GetAxis("Vertical") * playerMovementSpeed * Time.deltaTime;

 if (Input.GetKey(KeyCode.A))
 {
 isTurningLeft = true;
 isTurningRight = false;
 isTurningUp = false;
 isTurningDown = false;

 transform.Translate(-playerMovementX, 0, 0);
 transform.rotation = Quaternion.Euler(0f, 0f, 180f);
 }

 else if (Input.GetKey(KeyCode.W))
 {
 isTurningUp = true;
 isTurningDown = false;
 isTurningLeft = false;
 isTurningRight = false;

 transform.Translate(playerMovementY, 0, 0);
 transform.rotation = Quaternion.Euler(0f, 0f, 90f);
 }

 else if (Input.GetKey(KeyCode.D))
 {
 isTurningRight = true;
 isTurningLeft = false;
 isTurningUp = false;
 isTurningDown = false;

 transform.Translate(playerMovementX, 0, 0);
 transform.rotation = Quaternion.Euler(0f, 0f, 0f);
 }

 else if (Input.GetKey(KeyCode.S))
 {
 isTurningDown = true;
 isTurningUp = false;
 isTurningLeft = false;
 isTurningRight = false;

 transform.Translate(-playerMovementY, 0, 0);
 transform.rotation = Quaternion.Euler(0f, 0f, 270f);
 }

Arkadaşlar yeni yeni öğreniyorum Unity ile oyun programlamayı. Bu şekilde bir kod yazdım ama anlamadığım şu karakteri ileri geri ilerletmek için playermovementy yi X eksenine yazmam gerekiyor. Karakterin yönünü döndürmek için böyle bir kod yazdım. Öncesinde ifler yoktu sade transform. Translate(playermovementx, playermovementy, 0) yaptığım zaman bir sorun yoktu. Anlamadığım için soruyorum. Bir de
Float playermovementx = ınput. Getaxis("horizontal") * playermovementspeed * time. Deltatime;
Float playermovementy = ınput. Getaxis("vertical") * playermovementspeed * time. Deltatime;
Bu şekilde kullanıcıdan bilgi alarak yazdığım kodun daha kolay bir hali var mı?
 

Geri
Yukarı