Unity'de spawn edilen objeleri toplama

KendineCoderr

Picopat
Katılım
7 Haziran 2022
Mesajlar
35
Çözümler
1
Daha fazla  
Cinsiyet
Kadın
Merhaba arkadaşlar. Yeniden bir Unity sorusuyla sizlerin karşısındayım :) bu oyunu sanırım sizinle birlikte bitireceğim. Fakat öğrenmek için soruyorum tabii ki bunları. Amacım şu anda oyun yapıp para kazanmak değil; bir oyunun gelişme süreçlerini, süreçlerdeki olası problemlerle nasıl başa çıkabileceğimi öğrenmek ve sektöre girerken biraz da olsa tecrübe kazanmış olmak. Fazla uzattım biliyorum fakat bu seferki sorum şu: Bir coin objesi spawn ettim çok güzel bir şekilde çalışıyor. İstediğim gibi geliyor fakat bu spawn objelerini toplamak istiyorum. Spawn olmadan kendi koyduğum coinleri toplamak ve yazdırmak için kullandığım CoD:

Kod:
Public Void ontriggerenter(collider other)

 {

 İf (other. Tag == "character")

 {

 Cointext. Coinamount += 1;

 Destroy(gameobject);

 }

}

Fakat spawn objelerine buna benzer bir toplama kodu nasıl yazacağımı bulamadım. Yardımcı olursanız sevinirim :)
 
Son düzenleme:
Size düzgün bir şekilde anlatayım.

Oyuncu objemize aşağıdaki kodu atın.

Oyuncumuzda ve coin objelerinde Collider'lar olacak. Coin objemizin collider componenti içerisindeki isTrigger true olacak.

Gerekli bir diğer component ise Rigidbody. Bunu oyuncu objemize yani aşağıdaki kodu atacağınız objeye ekleyin.

Beni sonuçtan haberdar edin.

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

public class Code : MonoBehaviour
{
    public Text moneyText;
    
    public float money;
    
    void OnTriggerEnter(Collider player){
        if(player.gameObject.tag == "coin"){
            Destroy(player.transform.gameObject);
            
            UpdateMoney(1);
        }
    }
    
    void UpdateMoney(int i){
        money += i;
        
        moneyText.text = "" + money;
    }
}
 
Başardım arkadaşlar önce coin objemi preferb olarak aldım, öncesinde silindir olarak yaratmıştım ve preferb olarak almam gerektiğini yeni öğrendim, ardından capsule collider ve rigidbody ekledim, abdullah_akd kullanıcı adlı arkadaşımın bana tavsiye ettiği kodla birlikte çalıştı. En başta klonlamasını istediğim obje iki kere klonlanıp yok oluyordu ama bu sorunu da orijinal objeyi oyunda görünmeyecek şekilde kapatarak düzelttim :) hepinize çok teşekkür ederim iyi ki varsınız. Siz olmasaydınız başaramazdım :)

Size düzgün bir şekilde anlatayım.

Oyuncu objemize aşağıdaki kodu atın.

Oyuncumuzda ve coin objelerinde Collider'lar olacak. Coin objemizin collider componenti içerisindeki isTrigger true olacak.

Gerekli bir diğer component ise Rigidbody. Bunu oyuncu objemize yani aşağıdaki kodu atacağınız objeye ekleyin.

Beni sonuçtan haberdar edin.

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

public class Code : MonoBehaviour
{
    public Text moneyText;
   
    public float money;
   
    void OnTriggerEnter(Collider player){
        if(player.gameObject.tag == "coin"){
            Destroy(player.transform.gameObject);
           
            UpdateMoney(1);
        }
    }
   
    void UpdateMoney(int i){
        money += i;
       
        moneyText.text = "" + money;
    }
}
Bu mesajınızı görmemişim bir önceki gönderdiğiniz onCollisionEnter kodunuzla halletim :)
 

Yeni konular

Geri
Yukarı