не могу удалить объект ПРАВИЛЬНО

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

не могу удалить объект ПРАВИЛЬНО

Сообщение phasha 03 апр 2012, 11:07

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class targetting : MonoBehaviour {

        public List<Transform> targets;
        public Transform selectedtarget;
        private Transform mytransform;
        public int index;
        // Use this for initialization
        void Start () {
        targets = new List<Transform>();
                mytransform=transform;
                addallenemyes();
        }
       
        // Update is called once per frame
        void Update () {
        if (Input.GetKeyUp(KeyCode.Tab)){
                       
                        targetenemy();
                       
                        }              
               
               
        }
        public void addallenemyes(){
        GameObject[] go =       GameObject.FindGameObjectsWithTag("enemy");
                foreach(GameObject enemy in go) addtarget(enemy.transform);
               
               
        }
        public void addtarget(Transform enemy) {
                targets.Add(enemy);
        }
        private void targetenemy(){
                if(selectedtarget==null){sorttargetbydistance();
                selectedtarget=targets[0];}
                else{ index = targets.IndexOf(selectedtarget);
                if(index<targets.Count-1){index ++;}else{index=0;}
                deselecttarget();
                selectedtarget=targets[index];}
                selecttarget();
        }
        private void sorttargetbydistance(){
                targets.Sort(delegate(Transform t1,Transform t2){return Vector3.Distance(t1.position,mytransform.position).CompareTo(Vector3.Distance(t2.position,mytransform.position));})     ;
        }private void selecttarget(){
                enemyhealth eh = (enemyhealth)selectedtarget.gameObject.GetComponent("enemyhealth");
                        if (eh._curHelth>0){
       
                selectedtarget.renderer.material.color=Color.red;
                playeratack pa = (playeratack)GetComponent("playeratack");
                pa.target=selectedtarget.gameObject;
       
                eh.showhealthbar();}
        else {
                        targets.RemoveAt(index);
                        targets.TrimExcess();
                        Destroy(gameObject);
               
               
                }
               
        }
        private void deselecttarget(){
                selectedtarget.renderer.material.color=Color.white;
                enemyhealth eh = (enemyhealth)selectedtarget.gameObject.GetComponent("enemyhealth");
                eh.hidehealthbar();
               
               
       
        }

       
}
 

со списками в си шарп работаю первый раз и не могу удалить из списка последовательности без ошибки((может направите по правильному пути?
пробовал так но увы...
Синтаксис:
Используется csharp
else {
                        targets.RemoveAt(index);
                        targets.TrimExcess();
                        Destroy(gameObject);
phasha
UNец
 
Сообщения: 20
Зарегистрирован: 11 мар 2012, 18:16

Re: не могу удалить объект ПРАВИЛЬНО

Сообщение seaman 03 апр 2012, 14:07

Вы понимаете, что gameObject - это объект, на котором висит этот скрипт? Удалив его, Вы удаляете и сам скрипт! Но тогда Вы удаляете и все его переменные, в том числе targets.
Что вы хотите на самом деле?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: не могу удалить объект ПРАВИЛЬНО

Сообщение phasha 03 апр 2012, 14:24

вот в том то и дело что нужно для начала удалить из списка а потом объект.вот на счет списка не очень понятно.знаком только со списками в делфи((
phasha
UNец
 
Сообщения: 20
Зарегистрирован: 11 мар 2012, 18:16

Re: не могу удалить объект ПРАВИЛЬНО

Сообщение seaman 03 апр 2012, 18:30

Зачем удалять из списка, если через мгновение сам список удаляется? Приведите, пожалуйста веское обоснование этому.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: не могу удалить объект ПРАВИЛЬНО

Сообщение phasha 04 апр 2012, 10:18

скрипт на персонаже а не на боте(противнике), я не себя пытаюсь удалить а его.
phasha
UNец
 
Сообщения: 20
Зарегистрирован: 11 мар 2012, 18:16

Re: не могу удалить объект ПРАВИЛЬНО

Сообщение seaman 04 апр 2012, 11:07

Вы читать умеете?
Вы понимаете, что gameObject - это объект, на котором висит этот скрипт? Удалив его, Вы удаляете и сам скрипт!

Если хотите удалить не объект, на котором скрипт, а объект в который стукнулись - так и делайте!
Синтаксис:
Используется csharp
Destroy(selectedtarget.gameObject);
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: не могу удалить объект ПРАВИЛЬНО

Сообщение phasha 04 апр 2012, 14:50

мда, так и знал что истинна где то рядом, спасибо!
phasha
UNец
 
Сообщения: 20
Зарегистрирован: 11 мар 2012, 18:16


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22