Показать сообщение отдельно
Старый 20.02.2013, 12:25   #1410
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Вопросы от новичка

Хорошо пакс!
Смысл такой, я хочу создать свой объект со своими свойствами и методами.

Т.е. такой же объект, или класс (пока не очень разбираюсь как правильно) как GameObject, Camera и т.д.

Т.е. задача - создать свой класс npc, и добавить ему свойства position, life и т.д. Добавить методы Create(), Destroy().

Чтобы в дальнейшем в скрипте можно было обращаться к полям примерно так:
npc newNPC = npc.Create();
newNPC.position = Vector3(1,2,3);
newNPC.life = 100;

void Update()
{
if (newNPC.life<=0) { newNPC.Destroy(); }
}

Буду очень рад, если покажешь маленький наглядный примерчик!

Пакс, я нашел твой пример, это как раз то что мне нужно. Только там парочка непоняток.

using System;  
using System.Collections.Generic; 

namespace test  
{  
    //Начало класса  
    public class Worker  
    {  
        public int age = 0;  
        public string name;  
    }  
    //Конец класса  


    class Test  
    {  
        // Объявление и инициализация списка
        public List<Worker> workers = new List<Worker>();

        [STAThread]  
        static void Main(string[] args)  
        {  
            Worker wrkl = new Worker();  
            wrkl.age = 30;  
            wrkl.name = "Петров Иван Сергеевич";  

            // Добавление первого элемента списка
            workers.Add(wrkl);

            wrkl = new Worker();  
            wrkl.age = 40;  
            wrkl.name = "Иванов Петр Сергеевич";  

            // Добавление второго элемента списка
            workers.Add(wrkl);
            
            // Перебор всех элементов списка
            foreach(Worker worker in workers)
            {
                 Console.WriteLine(worker .name + " - " + worker .age + " года"); 
            }

            // Очистка списка
            workers.Clear();
        }  
    }  
}

Ругался так: (28,13): error CS0120: An object reference is required to access non-static member `test.Test.workers'
Поправил строку на public static List<Worker> workers = new List<Worker>();
Ошибка пропала, но ругается что имя скрипта не совпадает с внутрескриптовым. (Пробовал и test и Test, всё равно ругается..)
Помоги плиз, как надо обозвать скрипт, и можно в твоём примере добавить MonoBehavior??
__________________
(Offline)
 
Ответить с цитированием