Arkadaşlar canım sıkıldı bende unity ile ilgilenenler için kod paylaşıyım dedim
kamera çevirme
karakter hareket
web sitemden ayrıntılı bakmak isteyenler için
kamera çevirme
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class kamera : MonoBehaviour
{
//kamera objemmizi tanımladık
public GameObject camera;
//mouse'umuza hassasiyet ekliyoruz cs oynayanlar bilir
public float mouse_sensivity;
//mouse'umuzun kordinatlarını hesaplıyoruz
public float XmouseRotation;
public float YmouseRotation;
//kameramızın kafasını çevirince karakterimizinde dönmesini istiyorum bu yüzden obje tanımladık
public GameObject obje;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
//x mouse rotation'ına sınır ekliyoruz eğer sınıf eklemezsek karakterimiz kafasını 360 derece çevirebilir
XmouseRotation = Mathf.Clamp(XmouseRotation, -90, 90);
XmouseRotation -= Input.GetAxis("Mouse Y") * mouse_sensivity * Time.deltaTime;
YmouseRotation += Input.GetAxis("Mouse X") * mouse_sensivity * Time.deltaTime;
//biz mouse'u çevirdiğimizde ben kameranında dönemsini istiyorum bunun için bu kodu giriyoruz
camera.transform.rotation = Quaternion.Euler(XmouseRotation, YmouseRotation, 0);
//ben kamera döndüğünde karakterimizinde dönmesini istiyorum bunun için bu kodu giriyoruz
//ancak sadece y yönünde dönmesini istiyorum çünkü ben sadece etrafa bakmak için dönemsini istiyorum karaktermizin ters dönmesini değil
obje.transform.rotation = Quaternion.Euler(0, YmouseRotation, 0);
}
}
karakter hareket
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class obje_hareket : MonoBehaviour
{
//kod kısmında obje adında yeni bir gameobject oluşturuyoruz
public GameObject obje;
//objemize float değişkeninde bir hız tanımladık
public float speed;
//objemize float değişkeninde bir zıplama gücü ekledik
public float jump_power;
//kod kısmında rigidbody oluşturduk ancak başına private koyduğumuz için buna unity den erişemiyeceğiz
private Rigidbody yer_cekimi;
//burda karekterimizin yere değip değmediğini algıladık çünkü karaktermiz havadeyken bir daha zıplayabilecek
public bool onGround;
// Start is called before the first frame update
void Start()
{
//yer çekimi = objenin içindeki yer çekimine eşitledik
yer_cekimi = obje.GetComponent<Rigidbody>();
//başlangıçta onGround true olsun dedik
onGround = true;
}
// Update is called once per frame
void Update()
{
//eğer(if) klavyeden w tuşuna basılırsa(Input.GetKey(KeyCode.W)) SÜSLÜ PARENTEZİN İÇİNDEKİLER OLUCAK
//BEN NE İSTİYORUM W TUŞUNA BASILIRSA İLERİYE GİTSİN O YÜZDEN BU KODU YAZALIM
if (Input.GetKey(KeyCode.W))
{
//z ileri geri - y yukarı aşşağı - x sağ sol
//obje z yönünde zamana bağlı kalarak speed hızıyla gitsin
obje.transform.Translate(0, 0, Time.deltaTime * speed);
}
//şimdi s ye basılırsada bunun tam tersi olmasını istiyorum hemen bunuda yapalım
//eğer(if) klavyeden s tuşuna basılırsa(Input.GetKey(KeyCode.S)) SÜSLÜ PARENTEZİN İÇİNDEKİLER OLUCAK
if (Input.GetKey(KeyCode.S))
{
//z ileri geri - y yukarı aşşağı - x sağ sol
//obje -z yönünde zamana bağlı kalarak speed hızıyla gitsin
obje.transform.Translate(0, 0, Time.deltaTime * -speed);
}
//eğer(if) klavyeden a tuşuna basılırsa(Input.GetKey(KeyCode.A)) SÜSLÜ PARENTEZİN İÇİNDEKİLER OLUCAK
if (Input.GetKey(KeyCode.A))
{
//z ileri geri - y yukarı aşşağı - x sağ sol
//obje -x yönünde zamana bağlı kalarak speed hızıyla gitsin
obje.transform.Translate(Time.deltaTime * -speed, 0, 0);
}
//eğer(if) klavyeden d tuşuna basılırsa(Input.GetKey(KeyCode.D)) SÜSLÜ PARENTEZİN İÇİNDEKİLER OLUCAK
if (Input.GetKey(KeyCode.D))
{
//z ileri geri - y yukarı aşşağı - x sağ sol
//obje x yönünde zamana bağlı kalarak speed hızıyla gitsin
obje.transform.Translate(Time.deltaTime * speed, 0, 0);
}
//eğer(if) klavyeden space tuşuna basılırsa(Input.GetKey(KeyCode.SPACE)) SÜSLÜ PARENTEZİN İÇİNDEKİLER OLUCAK
//if onGround doğruysa yani yere değiyorsa
if (Input.GetKey(KeyCode.Space) && onGround == true)
{
//zıplasın
yer_cekimi.velocity = new Vector3(0f, jump_power, 0f);
//onground yani yere değmesi false olsun
onGround = false;
}
}
public void OnCollisionEnter(Collision obje_col)
{
//eğer objemiz zemin tagı olan bir objeye değiyorsa onGround true olsun
if (obje_col.collider.tag == "zemin")
{
onGround = true;
}
//eğer objemiz zemin tagı olan bir objeye değmiyorsa onGround false olsun
else
{
onGround = false;
}
}
}
web sitemden ayrıntılı bakmak isteyenler için
Bağlantıları görmek için lütfen
Giriş Yap