05-03-2019, Saat: 00:21
Öncelikle Merhabalar
Bir kitaptan yola çıkarak yeni yeni unity ile 2d oyun yapmaya başladı şuana kadar iyi gidiyordu aynı scprit dosyası üzerinden yazarak fakat kitapta farklı script dosyası açıp kodları öyle yazdırdı (C# kodları ve bunlarıda yeni yeni öğreniyorum) kodları aynen yazdım ama Hierarchy kısmında (Kapı) scprit bileşeni gelmedi nerede hata yaptım anlayamadım. yardımcı olurmusunuz.
Kapı Kodları :
Buda Player Kodlarım :
Bir kitaptan yola çıkarak yeni yeni unity ile 2d oyun yapmaya başladı şuana kadar iyi gidiyordu aynı scprit dosyası üzerinden yazarak fakat kitapta farklı script dosyası açıp kodları öyle yazdırdı (C# kodları ve bunlarıda yeni yeni öğreniyorum) kodları aynen yazdım ama Hierarchy kısmında (Kapı) scprit bileşeni gelmedi nerede hata yaptım anlayamadım. yardımcı olurmusunuz.
Kapı Kodları :
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Kapı : MonoBehaviour
{
[SerializeField]
private GameObject AnahtarVar;
[SerializeField]
private GameObject KapiAcik;
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.tag == "Player" && AnahtarVar.activeSelf)
{
KapiAcik.SetActive(true);
other.gameObject.SetActive(false);
}
}
}
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;
[SerializeField]
private GameObject AnahtarVar;
[SerializeField]
private float hiz;
private bool sagaBak;
// Start is called before the first frame update
void Start()
{
sagaBak = true;
skor = 0;
myRigidbody = GetComponent<Rigidbody2D>();
myAnimator = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
float yatay = Input.GetAxis("Horizontal");
TemelHareketler(yatay);
YonCevir(yatay);
}
private void TemelHareketler(float yatay)
{
myRigidbody.velocity = new Vector2(yatay * hiz, myRigidbody.velocity.y);
myAnimator.SetFloat("karakterHizi", Mathf.Abs(yatay));
}
private void 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
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Altin")
{
other.gameObject.SetActive(false);
skor = skor + 100;
SkorAyarla(skor);
}
if (other.gameObject.tag == "Anahtar")
{
other.gameObject.SetActive(false);
// false= kaybet "arasındaki tag adı olacak"
AnahtarVar.SetActive(true);
//Anahtar Almayı Aktif Ettik.
}
}
void SkorAyarla (int count)
{
toplamSkor.text = count.ToString();
}
}