Öncelikle Selamun Aleyküm
Unity de yeniyim 2 bölümlük bir oyun yaptım atak yapma kayma yürüme sorunsuzdu zıplamayı yaparken kodlarda bir hata yaptım sanırım oyun bozuldu zıplama için yaptığım kodları sildim daha kötü bozuldu C# ustası biri yardımcı olabilir mi
Unity de yeniyim 2 bölümlük bir oyun yaptım atak yapma kayma yürüme sorunsuzdu zıplamayı yaparken kodlarda bir hata yaptım sanırım oyun bozuldu zıplama için yaptığım kodları sildim daha kötü bozuldu C# ustası biri yardımcı olabilir mi
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class Player : MonoBehaviour
{
private Rigidbody2D myRigidbody;
private Animator myAnimator;
private int skor;
public Text toplamSkor;
private bool Atak;
private bool Kayma;
[SerializeField]
private GameObject AnahtarVar;
[SerializeField]
private float hiz;
private bool sagaBak;
[SerializeField]
private AudioSource AltinSes;
[SerializeField]
private AudioSource AnahtarSes;
// Start is called before the first frame update
**** Start()
{
sagaBak = true;
skor = 0;
myRigidbody = GetComponent<Rigidbody2D>();
myAnimator = GetComponent<Animator>();
}
// Update is called once per frame
**** FixedUpdate()
{
float yatay = Input.GetAxis("Horizontal");
TemelHareketler(yatay);
YonCevir(yatay);
AtakHareketleri();
DegerleriResetle();
}
**** Update()
{
Kontroller();
}
private **** TemelHareketler(float yatay)
{
if (!myAnimator.GetBool("Kayma") && !this.myAnimator.GetCurrentAnimatorStateInfo(0).IsTag("Atak"))
{
myRigidbody.velocity = new Vector2(yatay * hiz, myRigidbody.velocity.y);
}
if (Kayma && !this.myAnimator.GetCurrentAnimatorStateInfo(0).IsName("Slide"))
{
myAnimator.SetBool("Kayma", true);
}
else if (!this.myAnimator.GetCurrentAnimatorStateInfo(0).IsName ("Slide"))
{
myAnimator.SetBool("Kayma", false);
}
myAnimator.SetFloat("karakterHizi", Mathf.Abs(yatay));
}
private **** AtakHareketleri ()
{
if (Atak && !this.myAnimator.GetCurrentAnimatorStateInfo(0).IsTag("Atak"))
{
myAnimator.SetTrigger("Atak");
myRigidbody.velocity = Vector2.zero;
}
}
private **** Kontroller ()
{
if (Input.GetKeyDown (KeyCode.Z))
{
Atak = true;
}
if (Input.GetKeyDown(KeyCode.X))
{
Kayma = true;
}
private **** YonCevir(float yatay)
{
if (yatay > 0 && !sagaBak || yatay < 0 && sagaBak)
{
sagaBak = !sagaBak;
Vector3 yon = transform.localScale;
yon.x *= -1;
transform.localScale = yon;
}
}
// Aşağıdaki kodlar tag oluşturduğumuz objeyi karakter değdiğinde kaybediyor
**** OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Altin")
{
other.gameObject.SetActive(false);
skor = skor + 100;
SkorAyarla(skor);
AltinSes.Play();
}
if (other.gameObject.tag == "Anahtar")
{
other.gameObject.SetActive(false);
// false= kaybet "arasındaki tag adı olacak"
AnahtarVar.SetActive(true);
//Anahtar Almayı Aktif Ettik.
AnahtarSes.Play();
}
}
**** SkorAyarla (int count)
{
toplamSkor.text = count.ToString();
}
private **** DegerleriResetle ()
{
Atak = false;
Kayma = false;
}
}
