05-09-2021, Saat: 01:27
merhabalar yaklasık 1 aydır unity öğrenmeye calısıyorum. sonsuz kosu oyunu yapım orneği üzerinden pratik yapmaya calısıyorum.
Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.! bu arkadasın tutorial serisinden hareket komutunu asagıdakı sekılde verdı;
public class Playercontroller : MonoBehaviour
{
private CharacterController controller;
private Vector3 direction;
public float forwardSpeed;
private int desiredLane = 1;// 0=sol 1=orta 2=sag hangi yolda gıdecegı
public float laneDistance = 4;//iki yol arası mesafe
void Start()
{
controller = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
direction.z = forwardSpeed;
if(Input.GetKeyDown(KeyCode.RightArrow))
{
desiredLane++;
if (desiredLane == 3)
desiredLane = 2;
}
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
desiredLane--;
if (desiredLane == -1)
desiredLane = 0;
}
Vector3 targetPosition = transform.position.z * transform.forward + transform.position.y * transform.up;
if(desiredLane==0)
{
targetPosition += Vector3.left * laneDistance;
}
else if(desiredLane==2)
{
targetPosition += Vector3.right * laneDistance;
}
transform.position = targetPosition;
}
private void FixedUpdate()
{
controller.Move(direction * Time.fixedDeltaTime);
}
}
anlamadıgım sey desiredLane 1 oldugunda neye göre hareket etmiş oluyor yani if else komutunun calısma mantıgı nedir burada mantıgını acıklarsanız cok sevınırım sımdıden teşekkür ederim
Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.! bu arkadasın tutorial serisinden hareket komutunu asagıdakı sekılde verdı;
public class Playercontroller : MonoBehaviour
{
private CharacterController controller;
private Vector3 direction;
public float forwardSpeed;
private int desiredLane = 1;// 0=sol 1=orta 2=sag hangi yolda gıdecegı
public float laneDistance = 4;//iki yol arası mesafe
void Start()
{
controller = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
direction.z = forwardSpeed;
if(Input.GetKeyDown(KeyCode.RightArrow))
{
desiredLane++;
if (desiredLane == 3)
desiredLane = 2;
}
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
desiredLane--;
if (desiredLane == -1)
desiredLane = 0;
}
Vector3 targetPosition = transform.position.z * transform.forward + transform.position.y * transform.up;
if(desiredLane==0)
{
targetPosition += Vector3.left * laneDistance;
}
else if(desiredLane==2)
{
targetPosition += Vector3.right * laneDistance;
}
transform.position = targetPosition;
}
private void FixedUpdate()
{
controller.Move(direction * Time.fixedDeltaTime);
}
}
anlamadıgım sey desiredLane 1 oldugunda neye göre hareket etmiş oluyor yani if else komutunun calısma mantıgı nedir burada mantıgını acıklarsanız cok sevınırım sımdıden teşekkür ederim