Когда я умираю, сердце не удаляется, но нет ошибок - PullRequest
0 голосов
/ 26 декабря 2018

Я создаю 2-го бегуна и у меня есть этот файл "collision.cs", в котором у меня есть система сердца, я не получаю никаких ошибок, но когда я умираю, сердце не удаляется, так что ячто-то не так?

Система основана на тегах, поэтому я много пытался изменить систему тегов, но ничего не получалось;затем я попытался изменить способ нахождения игрового объекта через некоторое время и увидел, что он создает много игровых объектов вместо 3, поэтому я попытался изменить систему тегов вокруг этого, но даже это не сработало, и я действительно не могухочу иметь простой текст, который говорит, что 3 жизни и т. д.

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

    public class Collision : MonoBehaviour {

        public int lifes = 3    ;
        //public GameObject Life_icon1;
        //public GameObject Life_icon2;
        //public GameObject Life_icon3;
        public  Sprite Heart;
        public  int current_icon = 3;
        public  GameObject ParentPanel; 

        public static int Coins = 0;

        public  float offset = 150f;
        List<int> i = new List<int>() { 1 };

        public int tagN;

        void Update() {
            tagN = i.Max() + 1;
        }

        // Use this for initialization
        void Start () {
        for(int x = 0; x < lifes; x++)
        {
            i.Add(x);
            GameObject NewObj = new GameObject(); //Create the GameObject
            Image NewImage = NewObj.AddComponent<Image>(); //Add the Image Component script
            NewImage.gameObject.tag = x.ToString();
            if(x == 0) {
                NewImage.transform.position = new Vector3(0 + 40f, 0 + 40f , 0);
            } else {
                NewImage.transform.position = new Vector3(0 + offset, 0 + 40f , 0);
                offset += 130f;
            }
            //print(x);
            NewImage.sprite = Heart; //Set the Sprite of the Image Component on the new GameObject
            NewObj.GetComponent<RectTransform>().SetParent(ParentPanel.transform); //Assign the newly created Image GameObject as a Child of the Parent Panel.
            NewObj.SetActive(true); //Activate the GameObject
        }
        }

         void AddLife(int amount) {
            lifes++;
            i.Add(amount);
            GameObject NewObj = new GameObject(); //Create the GameObject
            NewObj.gameObject.tag = tagN.ToString();
            Image NewImage = NewObj.AddComponent<Image>(); //Add the Image Component script
            NewImage.transform.position = new Vector3(0 + offset, 0 + 40f , 0);
            NewImage.sprite = Heart; //Set the Sprite of the Image Component on the new GameObject
            NewObj.GetComponent<RectTransform>().SetParent(ParentPanel.transform); //Assign the newly created Image GameObject as a Child of the Parent Panel.
            NewObj.SetActive(true); //Activate the GameObject
        }


        void DelLife(int amount) {
            Vector3 pos = transform.position;


            offset -= 130f;

            pos.x = -0.49f;
            pos.y = -0.49f;
            transform.position = pos;

            i.RemoveAt(i.Max());

                 GameObject go = null;
                 if (GameObject.FindWithTag(tagN.ToString()) != null)
                 {
                     go = GameObject.FindWithTag(tagN.ToString());
                 }
                 if (go != null)
                 {
                     go.gameObject.SetActive(false);
                 }

        }

        void OnTriggerEnter2D(Collider2D other)
            {          

                //extra life item collision
                if(other.gameObject.name == "Heart_item") {
                        AddLife(1);
                        Destroy(other.gameObject);
                }

                if(other.gameObject.name == "Spike") {
                        DelLife(1);
                    }   

                    if(other.gameObject.name == "Coin") {
                        Destroy(other.gameObject);
                        Coins += 1;
                    }

          }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...