Unity 3D ile İlgili Örnekler (klavye kontrol kodu, mouse ile kamera hareket kodu) - MyBlog - Bilgi Paylaşım Platformu


Unity 3D ile İlgili Örnekler (klavye kontrol kodu, mouse ile kamera hareket kodu)


Kameranın hareketini mause ile değiştiren kod ,Karakteri hareket ettiren kod:
Unity 3D ile İlgili Örnekler  (klavye kontrol kodu, mouse ile kamera hareket kodu)

Unity 3D ile İlgili Örnekler

 

Animasyonlarla çalışmak 

Bu örnek kapsamında Assets Store (Window->Assets Store/CTRL+9) Character Pack indirilmiştir. Assets içerisindeki karakteri sahneye atabilmek için Project klasörünün altındaki Assets klasöründeki yolu takip ederek karakteri sahneye yerleştiniz.  

 

 

Hazır animasyonlar (Koşma, yürüme, zıplama vb.) içeren bu pakette her bir karakterin animatorü bulunmaktadır. Bunlara herhangi bir fonksiyon eklenmedikçe (koşma, yürüme vb.) karakterlerde hareket gözlemlenmeyecektir. Karakterlere fonksiyon eklemek için;

 

  1. Assets klasörünün altına yeni bir klasör açıyoruz.
  2. Bu klasörün içinde sağ tık Create->Animator Controller eklenir.
  3. Eklenen controller’a çift tıklanarak aşağıdaki ekran açılır (Animator). 

 

 

 

  1. Base Layer herhangi bir yere sağ tıklanarak Create State-> Empty ile yeni bir state oluşturulur.
  2. Inspector panelinden bu statenin adı değiştirilir ve Motion kısmına tıklanarak karaktere fonksiyon tanımlanır. 

 

 

 

  1. Oluşturulan Animasyon Controllerı karakterde tanımlamak için sahne elamanlarının yer aldığı Hierarchy panelinde karakterin ismine tıklayarak özelliklerine yani Inspector paneli açılır. Burada Animator kısmında 2. Adımda oluşturulan Animator Controller eklenir. 

 

 

 

Karaktere farklı fonksiyonlar eklemek için 4. adımda itibaren işlemler tekrarlanır. Daha önce eklenmiş olan state sağ tıklanıp Make transition eklenir.

 

Not: Unity 3D’de oyun tasarlarken C# kullanılır. Bu nedenle metot oluşturma (veri çekme, veri gönderme), değişken tanımlama vb. işlemleri https://www.w3schools.com/cs/  verilen linkten çalışınız. 

Kameranın hareketini mause ile değiştiren kod:

using System.Collections; using System.Collections.Generic; using UnityEngine;

 

public class kamera : MonoBehaviour

{

    public GameObject camera;     public float mouse_sensivity;     public float XmouseRotation;     public float YmouseRotation;     public GameObject obje;

    void Start()

    { }

    void Update()

    {

        XmouseRotation = Mathf.Clamp(XmouseRotation, -90, 90);

        XmouseRotation -= Input.GetAxis("Mouse Y") * mouse_sensivity * Time.deltaTime;         YmouseRotation += Input.GetAxis("Mouse X") * mouse_sensivity * Time.deltaTime;         camera.transform.rotation = Quaternion.Euler(XmouseRotation, YmouseRotation, 0);         obje.transform.rotation = Quaternion.Euler(0, YmouseRotation, 0);

    } }

 

Karakteri hareket ettiren kod:

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class obje_hareket : MonoBehaviour

{

    public GameObject obje;     public float speed;     public float jump_power;     private Rigidbody yer_cekimi;     public bool onGround;

    void Start()

    {

        yer_cekimi = obje.GetComponent();         onGround = true;

    }

    void Update()

    {

        if (Input.GetKey(KeyCode.W))

        {

            obje.transform.Translate(0, 0, Time.deltaTime * speed);}         if (Input.GetKey(KeyCode.S))

        {

            obje.transform.Translate(0, 0, Time.deltaTime * -speed); }         if (Input.GetKey(KeyCode.A))

        {

            obje.transform.Translate(Time.deltaTime * -speed, 0, 0); }         if (Input.GetKey(KeyCode.D))

        {

            obje.transform.Translate(Time.deltaTime * speed, 0, 0); }

 

        if (Input.GetKey(KeyCode.Space) && onGround == true)

        {

            yer_cekimi.velocity = new Vector3(0f, jump_power, 0f);                    onGround = false;}}     public void OnCollisionEnter(Collision obje_col)

    {

              if (obje_col.collider.tag == "zemin")  {             onGround = true;}         else

        { onGround = false;

        }

    }}            onGround = false;}  }}

 

Tepkileriniz Nedir?

like
3
dislike
5
love
3
funny
0
angry
9
sad
3
wow
3

Bir Yorum Yaz