Hey merhaba ziyaretçi bize destek olmak ister misin ? Hemen Kayıt Ol Seni hiç sıkmadan kayıt edeceğiz endişelenmek bize destek olduğun için teşekkürler.



  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Unity Kapı Açılması
#1
Ö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ı :

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);
       }
   }
}
Buda Player Kodlarım : 
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();
}
 
}
  Cevapla
#2
Hierarchy kısmında görünmez zaten. Hierarchy de bulunan bir nesneye component olarak eklemelisiniz. Project alanındaki script dosyanızı sürükle bırak ile ilgili nesneye ekleyin.
  Cevapla
#3
Dediğiniz gibi daha öncesinde de denemiştim program hata vermişti bugün tekrardan denedim ve Inspector kısmında nihayet scprit gözüktü anahtar var ve kapı açık resim/anim leri ilişkilendirdim ama hala kapımız açılmıyor karakter içeri girmiyor Sad

Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!


163yB1.png
  Cevapla
#4
Player ın tag i Player olarak ayarlandı mı? Değilse bu yüzden çalışmıyordur. Bir de player da rigidbody2d componenti var mı? Eğer yoksa triger olayı çalışmıyordur.
  Cevapla
#5
(05-03-2019, Saat: 21:31)mtat0640 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Player ın tag i Player olarak ayarlandı mı? Değilse bu yüzden çalışmıyordur. Bir de player da rigidbody2d componenti var mı? Eğer yoksa triger olayı çalışmıyordur.

Player'e Player tagı ayarlanmadığı için kapı player'i tanımlamıyormuş artık kapı açılıyor çok teşekkürler ufak hatalar gözden kaçıyormuş Smile
  Cevapla
#6
(05-03-2019, Saat: 22:06)Enesk001 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!
(05-03-2019, Saat: 21:31)mtat0640 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Player ın tag i Player olarak ayarlandı mı? Değilse bu yüzden çalışmıyordur. Bir de player da rigidbody2d componenti var mı? Eğer yoksa triger olayı çalışmıyordur.

Player'e Player tagı ayarlanmadığı için kapı player'i tanımlamıyormuş artık kapı açılıyor çok teşekkürler ufak hatalar gözden kaçıyormuş Smile

Rica ederim.
  Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Unity multiplayer sıralama Bedirhan 2 27 21-06-2019, Saat: 17:06
Son Yorum: Bedirhan
  Unity üzerinden Visual Studio sorunu cyclopshammer1 3 85 15-06-2019, Saat: 23:49
Son Yorum: abayir41
  Unity Ads Rewarded-Ad Videonun bittiğini anlayabilme? Cem 0 42 20-05-2019, Saat: 16:49
Son Yorum: Cem
  Nasıl Made with Unity Yazısını değiştirebilirim? Cem 2 92 06-05-2019, Saat: 18:07
Son Yorum: Cem
Question Unity 3D Haritalaştırma kaanarik 1 118 30-04-2019, Saat: 17:11
Son Yorum: abayir41

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi