• Unity3d FPS Kontrol, Oyuncu Hareketi

    Merhabalar, Unity ile FPS bir oyun geliştirmek istediğinizde ilk aşamalar aynı oluyor ve bu da her defasında aynı kodları yazmamıza neden oluyor diye Youtuber “Brackeys” abimizin bu güzel tutorialinden aldığım kısımları buraya atmak istedim (ufak değişiklikler olabilir). oyuncuyu sağa sola ve ileri geri hareket ettirebilmemiz için önceden belirlediğimiz “Horizontal” ve “Vertical” tuşlarıyla; player prefabımızda olan…

Unity3d FPS Kontrol, Oyuncu Hareketi

Merhabalar,

Unity ile FPS bir oyun geliştirmek istediğinizde ilk aşamalar aynı oluyor ve bu da her defasında aynı kodları yazmamıza neden oluyor diye Youtuber “Brackeys” abimizin bu güzel tutorialinden aldığım kısımları buraya atmak istedim (ufak değişiklikler olabilir).

oyuncuyu sağa sola ve ileri geri hareket ettirebilmemiz için önceden belirlediğimiz “Horizontal” ve “Vertical” tuşlarıyla; player prefabımızda olan script:

    public CharacterController characterController;
    public float jumpSpeed = 1.6f;
    public float speed = 6.0f;
    public float gravity = 9.81f;
    private Vector3 move = Vector3.zero;

    void Start()
    {
        characterController = GetComponent<CharacterController>();
    }

    void Update()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");

        if (characterController.isGrounded)
        {

            move = transform.right * x + transform.forward * z;

            if (Input.GetButton("Jump"))
            {
                move.y = jumpSpeed;
            }
        }
        move.y -= gravity * Time.deltaTime;
        characterController.Move(move * speed * Time.deltaTime);
    }

Player prefabında bulunan camera objesinin hareketini mouse ile döndermek için ise:

    public float mouseSensivity = 100f;
    public Transform playerBody;
    float xRotation = 0f;
    void Update()
    {
        float mouseX = Input.GetAxis("Mouse X") * mouseSensivity * Time.deltaTime;
        float mouseY = Input.GetAxis("Mouse Y") * mouseSensivity * Time.deltaTime;
        xRotation -= mouseY;
        xRotation = Mathf.Clamp(xRotation, -90f, 90f);//sınırlama getirir.
        transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
        playerBody.Rotate(Vector3.up * mouseX);
    }

 


Yorumlar

“Unity3d FPS Kontrol, Oyuncu Hareketi” için bir yanıt

  1. yasin şen avatarı
    yasin şen

    character controller kısmına neyi sürükleyip bırakmam gerekiyor

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir