Bawie sie w unity i zrobilem podnoszenie i respawn ale nie dziala do konca tak jak chcialem. Nie moge zebrac wszystkich Od razu drzew poniewaz odradza sie ostatnie. Musze czekac az pierwsze drzewo ktore podnioslem sie z respawnuje potem kolejne i czekac i tak w kolko. Co tu w tym kodzie zmienic ? Czy wgl napisac to wszystko od nowa tylko na co zwrocic uwage?
Licznikdrzew.cs -
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Reflection;
using UnityEngine;
using UnityEngine.UI;
public class LicznikDrzew : MonoBehaviour
{
RespawnDrzew respawnDrzew;
int numberOfDrzewa;
public Text counterView;
public Text sellDrzewoText;
private bool wlaczliczenie;
public Vector3 vecto;//wektor drzewa do odrodzenia
// Start is called before the first frame update
void Start()
{
respawnDrzew = GameObject.Find("PickUpDrzewa").GetComponent<RespawnDrzew>();
if (respawnDrzew == null)
{
Debug.LogError("respawn nie znaleziono");
}
//wlaczliczenie = true;
resCounter();
//StartCoroutine(waiter());
}
public void IncrementCounter()
{
numberOfDrzewa++;
counterView.text = numberOfDrzewa.ToString();
sellDrzewoText.text = counterView.text;
wlaczliczenie = true;
StartCoroutine(waiter());
}
public void resCounter()
{
numberOfDrzewa = 0;
counterView.text = numberOfDrzewa.ToString();
}
IEnumerator waiter()
{
//
yield return new WaitForSecondsRealtime(4);
if (wlaczliczenie == true)
{
respawnDrzew.reSpawn();
wlaczliczenie = false;
}
}
}
RespawnDrzewa.cs
using System.Collections;
using System.Security.Cryptography;
using UnityEngine;
public class RespawnDrzew : MonoBehaviour
{
public GameObject myPrefObj;
LicznikDrzew licznikDrzew;
void Start()
{
licznikDrzew = GameObject.Find("Manager").GetComponent<LicznikDrzew>();
if (licznikDrzew == null)
{
Debug.LogError("Licznik drzew nie znaleziono");
}
}
public void reSpawn()
{
Debug.LogError("Doszedlem tu");
Debug.LogError(licznikDrzew.vecto.ToString());
Instantiate(myPrefObj, licznikDrzew.vecto, transform.rotation);
}
// Update is called once per frame
void Update()
{
}
}
PickUpDrzewo.cs
using System.Collections;
using UnityEngine;
public class PickUpDrzewo : MonoBehaviour
{
LicznikDrzew licznikDrzew;
void Start()
{
licznikDrzew = GameObject.Find("Manager").GetComponent<LicznikDrzew>();
if(licznikDrzew == null)
{
Debug.LogError("Licznik drzew nie znaleziono");
}
}
// Update is called once per frame
void OnTriggerEnter2D(Collider2D other)
{
if(other.gameObject.name == "Player")
{
Destroy(this.gameObject);
licznikDrzew.vecto = gameObject.transform.position;
licznikDrzew.IncrementCounter();
}
}
}