UstaEDDIZ
Decapat
- Katılım
- 2 Kasım 2020
- Mesajlar
- 18
Daha fazla
- Cinsiyet
- Erkek
Unity ile oyun geliştirmeye başladım ve daha çok acemiyim ilk başta böyle bir protatip gibi bir şey yaptım 2D platformer fakat oyunu denemeleri için bazı arkadaşlarıma gönderdeğimde yavaş olduğunu söylediler karakterin bende fark ettim ki oyunu 60 FPS sabit oynamazsan FPS yükselince karakter yavaşlıyor düşünce hızlanıyor bunu önlemek için "time.Deltatime" ile çarptıydım hareket yönlerini ama işe yaramamış galiba. Kodlarımın fotosunu en aşağıya fotoğraf olarak da attım kodlara düzgün çalışıyor zaten sadece FPS yükselince yavaşlıyor oyun. Çözümü nedir bunun kodlama bilen arkadaşlar yardımcı olursa çok mutlu olurum.
Kod:
Kod:
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class KarakterHareket : MonoBehaviour
{
public float yatayhareket;
public int harekethızı;
public int zıplamahızı;
public int zıplamahakkı;
Rigidbody2D rb;
public bool karakteryerde = true;
public bool faceright = true;
void Start()
{
rb = GetComponent<Rigidbody2D>();
zıplamahakkı = 2;
}
void Update()
{
yatayhareket = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(yatayhareket * harekethızı * 100 * Time.deltaTime, rb.velocity.y);
if(Input.GetKeyDown(KeyCode.Space) && (karakteryerde==true || zıplamahakkı > 0))
{
rb.velocity = Vector2.up * zıplamahızı * 100 * Time.deltaTime;
karakteryerde = false;
zıplamahakkı -= 1;
}
if(yatayhareket > 0 && faceright == false)
{
turn();
}
if(yatayhareket < 0 && faceright ==true)
{
turn();
}
}
private void OnCollisionEnter2D(Collision2D temas)
{
if(temas.gameObject.tag == "zemin")
{
karakteryerde = true;
zıplamahakkı = 2;
}
}
void turn()
{
faceright = !faceright;
Vector2 yeniscale = transform.localScale;
yeniscale.x *= -1;
transform.localScale = yeniscale;
}
}