Çözüldü C# değişken public static olmasına rağmen diğer C# klasöründen kullanılmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

TurtleCanUsePC

Hectopat
Katılım
3 Haziran 2021
Mesajlar
1.102
Çözümler
8
Daha fazla  
Cinsiyet
Erkek
Unity de kilit sisteminde çalışıyorum ve izlediğim kişide olurken bende. Adı geçerli bağlamda yok hatası alıyorum.
1.c# dosyası (dosya ismi seviyeler)

Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class Scene : MonoBehaviour.
{
 public static bool oyun1, oyun2 , oyun3;
 public Button seviye2, seviye3;

 void Start()
 {
 oyun1 = true;
 }

 void Update()
 {
 if(seviye2 == true)
 {
 seviye2.interactable = true;
 }

 if(seviye3 == true)
 {
 seviye3.interactable = true;
 }
 }
}

2.C# dosyası(dosya ismi bölüm bitirme)

Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class BölümBitirme : MonoBehaviour.
{

 public void Bölüm1Bitir()
 {
 Seviyeler.oyun2 = true;
 SceneManager.LoadScene(1);
 }
 public void Bölüm2Bitir()
 {
 Seviyeler.oyun3 = true;
 SceneManager.LoadScene(1);
 }
}
 
Çözüm
İlk mesajınızın en üstündeki koda.

Private Awake()
{
İf(instance == null)
{
İnstance = this;
}
}

Bu kodu ekleyin. Daha sonra bu dosyadaki herhangi bir fonksiyona da dosyaadi. İnstance. Fonksiyonismi şeklinde erişebilirsiniz.

İnstance adında bağlam yok hatası veriyor bu sefer.
Düzelttim. İsmi seviyeler olan dosyanın başında ki public class scene yi seviyeler diye düzelttim ve oldu.
İnstance yapınınız eksik gözüküyor.

Static olan dosyanın Awake fonksiyonuna

if(instance == null)
{
instance = this
}

Kodunu yazarsanız erişmek istedğiniz diğer dosyadan, dosyaadi.instance.fonksiyonismi şeklinde ulaşabilirsiniz
 
İnstance yapınınız eksik gözüküyor.

Static olan dosyanın awake fonksiyonuna.

İf(instance == null)
{
İnstance = this.
}

Kodunu yazarsanız erişmek istedğiniz diğer dosyadan, dosyaadi. İnstance. Fonksiyonismi şeklinde ulaşabilirsiniz.

C#'a başlayalı çok olmadı. Sizin ne dediğinizi anlamadım tam olarak ne yapmam lazım?
 
İlk mesajınızın en üstündeki koda

Private Awake()
{
İf(instance == null)
{
instance = this;
}
}

bu kodu ekleyin. Daha sonra bu dosyadaki herhangi bir fonksiyona da dosyaadi.instance.fonksiyonismi şeklinde erişebilirsiniz
 
İlk mesajınızın en üstündeki koda.

Private Awake()
{
İf(instance == null)
{
İnstance = this;
}
}

Bu kodu ekleyin. Daha sonra bu dosyadaki herhangi bir fonksiyona da dosyaadi. İnstance. Fonksiyonismi şeklinde erişebilirsiniz.

İnstance adında bağlam yok hatası veriyor bu sefer.
Düzelttim. İsmi seviyeler olan dosyanın başında ki public class scene yi seviyeler diye düzelttim ve oldu.
 
Son düzenleme:
Çözüm

Yeni konular

Geri
Yukarı