Unity 3D TR Forum

Orjinalini görmek için tıklayınız: her sahne icin objenin materyalini degistirme yardim
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Amacim menu sahnesinde oyuncunun player olarak kullanacigi topun materyalini degistirmesi ve bu degisimin her sahnede olmasi. birkac yol denedim ancak sadece tek bir sahnede bu degisimi gerceklestirebildim. Bunun tum ayni tag ve isimdeki objeleri degistirmenin bir yolu var mi? kod bu 

Kod:
public static GameObject objs;
   public Material[] material;
   
   Renderer rend;
   void Start()
   {
       objs = GameObject.FindGameObjectWithTag("Spheretag");
   }
   public void choose() {

       
           
               objs.transform.GetComponent<Renderer>().material = material[1];
         
           
     

   }
material[1] derseniz hep 1. indisteki material kullanılmış oluyor. Bu yüzden değişiklik olmuyor.
(23-02-2019, Saat: 23:29)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.!material[1] derseniz hep 1. indisteki material kullanılmış oluyor. Bu yüzden değişiklik olmuyor.

Peki bunun yerine yapmam gereken nedir? 9 saattir felan bakiyorum hic yol katedemedim , her sahnede yeni bir sphere olusturdum hepsine ayni tag i verdim , material[1] yerine Resources.Load<Material>("Materrials/colorsphere 1"); kullandim ancak olmuyor
(24-02-2019, Saat: 00:15)panimo 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.!
(23-02-2019, Saat: 23:29)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.!material[1] derseniz hep 1. indisteki material kullanılmış oluyor. Bu yüzden değişiklik olmuyor.

Peki bunun yerine yapmam gereken nedir? 9 saattir felan bakiyorum hic yol katedemedim , her sahnede yeni bir sphere olusturdum hepsine ayni tag i verdim , material[1] yerine Resources.Load<Material>("Materrials/colorsphere 1"); kullandim ancak olmuyor

Oyuncunun kaçıncı indisteki materyali seçtiğini kaydetmeniz gerekecek. Bunu PlayerPrefs ile yapabilirsiniz.

int secimIndis=(bu kısım oyuncunun seçimine göre doldurulacak)
PlayerPrefs.SetInt("TopMaterial",secimIndis);

Daha Sonra Oyun sahnesi yüklenirken



Kod:
objs.transform.GetComponent<Renderer>().material = material[PlayerPrefs.GetInt("TopMaterial")];