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
Spawner Sorunum :(
#1
Arkadaşlar 2d bir oyun üzerine çalışıyorum bir düşman var ve bu düşmanı karakter öldürünce 5 saniye sonra yeniden doğması gerek 
ancak şu hatayla karşılaşıyorum "ArgumentException: The Object you want to instantiate is null."

Komutlarım şu şekilde;
Kod:
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public enum EnemyState
{
   idle,
   walk,
   attack,
   stagger
}

public class Enemy : MonoBehaviour
{
   public GameObject FloatingTextPrefab;
   public EnemyState currentState;
   public FloatValue maxHealth;
   public float health;
   public string enemyName;
   public int baseAttack;
   public float moveSpeed;
   public Image healthBar;
   public float initHealth;
   private UnityEngine.Object enemyRef;


   void Start()
   {
       enemyRef = Resources.Load("wolf.prefab") as GameObject;

       initHealth = health;
   }


   // Update is called once per frame
   void Update()
   {
       healthBar.fillAmount = health / initHealth;
   }

   private void Awake()
   {
       health = maxHealth.initialValue;
   }


   private void TakeDamage(float damage)
   {
       if (FloatingTextPrefab)
       {
           ShowFloatingText();
       }

       health --;
       if(health <= 0)
       {
           this.gameObject.SetActive(false);
           Invoke("Respawn", 5);
       }
   }

   void Respawn()
   {
       GameObject enemyClone = (GameObject)Instantiate(enemyRef);
       enemyClone.transform.position = transform.position;

       Destroy(gameObject);
   }

   void ShowFloatingText()
   {
       var go = Instantiate(FloatingTextPrefab, transform.position, Quaternion.identity, transform);
       go.GetComponent<TextMeshPro>().text = health.ToString();
   }
   public void Knock(Rigidbody2D myRigidbody, float knockTime, float damage)
   {
       StartCoroutine(KnockCo(myRigidbody, knockTime));
           TakeDamage(damage);
   }

   private IEnumerator KnockCo(Rigidbody2D myRigidbody, float knockTime)
   {
       if (myRigidbody != null)
       {
           yield return new WaitForSeconds(knockTime);
           myRigidbody.velocity = Vector2.zero;
           currentState = EnemyState.idle;
           myRigidbody.velocity = Vector2.zero;
       }
   }
}


Hata satırı ise şu;
Kod:
GameObject enemyClone = (GameObject)Instantiate(enemyRef);

Lütfen yardım edin günlerdir çözemedim Sad
  Cevapla
#2
Simdi burda enemyref e obje atanmamış olduğunu anlıyoruz isterseniz enemyref i public ya da [SeriliaziedFiled] yapip bir bakin 

Neden o kadar zahmetli bir şekilde wolf prefabı öyle çektiginizj anlamadim public yapın atın gitsin Smile
  Cevapla
#3
Wink 
(01-09-2020, Saat: 15:23)abayir41 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.!Simdi burda enemyref e obje atanmamış olduğunu anlıyoruz isterseniz enemyref i public ya da [SeriliaziedFiled] yapip bir bakin 

Neden o kadar zahmetli bir şekilde wolf prefabı öyle çektiginizj anlamadim public yapın atın gitsin Smile

Teşekkür ederim dostum çözmeyi başardım Smile
  Cevapla


Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi