Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 19.02.2013, 16:57   #1396
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Кстати, в C# есть библиотеки для работы с ZIP? Только чтобы архивировались\распаковывались в памяти, а не сразу на диск.
Это работает:
DotNetZip
и на мобилах,которые поддерживают .NET Compact Framework - тоже. Работает с потоками, т.е. можно и с памятью.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
WISHMASTER35 (20.02.2013)
Старый 19.02.2013, 18:26   #1397
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Вопросы от новичка

Помогите пожалуйста, не могу понять как классы создаются и используются..
Мне нужен только маленький пример.
Задача: создать свой класс npc, создать поля Pos, Life. Создать пару npc, и двигать их поочереди, т.е. выбрать первого, передвинуть, поставить в конец списка.

Вот как примерно будет на блитце, для ясности
Type npc
Field Pos#,Life
End Type

for i=1 to 2
npc.npc = New npc
npc\Pos = rnd(10)
npc\Life = 100
next


function UpdateNPC()
npc.npc = First npc
npc\Pos = npc\Pos+0.01
Insert npc.npc After Last npc
end function
__________________
(Offline)
 
Ответить с цитированием
Старый 19.02.2013, 19:56   #1398
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Сообщение от Morganolla Посмотреть сообщение
Костян!
Выдает ошибку что то типа не соответствия типов-
error CS0266: Cannot implicitly convert type `UnityEngine.Object' to `UnityEngine.GameObject'. An explicit conversion exists (are you missing a cast?)
ну это если на JS писать, на C# никогда не вылетал


Сообщение от burovalex Посмотреть сообщение
Помогите пожалуйста, не могу понять как классы создаются и используются..
Мне нужен только маленький пример.
Задача: создать свой класс npc, создать поля Pos, Life. Создать пару npc, и двигать их поочереди, т.е. выбрать первого, передвинуть, поставить в конец списка.

Вот как примерно будет на блитце, для ясности
Type npc
Field Pos#,Life
End Type

for i=1 to 2
npc.npc = New npc
npc\Pos = rnd(10)
npc\Life = 100
next


function UpdateNPC()
npc.npc = First npc
npc\Pos = npc\Pos+0.01
Insert npc.npc After Last npc
end function
Для ясности: не нужно одним скриптом управлять всеми ботами.
Пишешь один, и кидаешь на каждого.
public float live=100f;
private 
Transform _transform;

void Start(){
  
_transform this.transform;
  
_transform.position  = new Vector3(Random.Range(-10.0F10.0F), 0Random.Range(-10.0F10.0F));   
}
void Update(){
  
_transform.position+=new Vector3(0.01f,0,0);  

Ну типо так. Не понял что там написано конечно, ну ладно
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 19.02.2013, 21:21   #1399
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Вопросы от новичка

Не Костян, мне немного другое надо, увидел сейчас у пакса пример, но в какую часть кода её вписывать надо - не понял.

using UnityEngine;
using System.Collections;

//объявляем класс, но если сюда написать - не канает
public static class npc
{
public 
Vector3 position;
public 
float life;
}

public class 
npcScript MonoBehaviour {
//а здесь уже заполнять
public static void npcCreate()
{
public 
npc newNPC=new npc;
npc.position = new Vector3(1,2,3);
npc.life 100f

void Update()
{
npc.life-=0.01f;
}

__________________
(Offline)
 
Ответить с цитированием
Старый 19.02.2013, 21:51   #1400
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

поправьте меня, так как я :"не компетентен" (MOKA)

нужно же хоть создать объект было.
using UnityEngine;
using System.Collections;

public class 
npcScript MonoBehaviour {

//объявляем класс, но если сюда написать - не канает
public static class npc()
{
    public 
Vector3 position;
    public 
float life;
}

public static 
npc npcCreate()
{
    private 
npc newNPC=new npc();
    
newNPC.position = new Vector3(1,2,3);
    
newNPC.life 100f
   return 
newNPC;
}

private 
nps newNPC;

void Start(){
   
newNPC npcCreate();
}
void Update(){
    
newNPC.life-=0.01f;
}
//

__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 19.02.2013, 22:42   #1401
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Вопросы от новичка

Неа, я же говорю, так не канает..
Нашел еще тему, надо использовать namespace, но у меня ругается на List<>, который я не могу найти в руководстве по Юнити.

вот пример пакса

using UnityEngine;
using System.Collections;

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


    
class Test  
    
{  
        
// Объявление и инициализация списка
        
public List<Workerworkers = 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();
        }  
    }  

(18,16): error CS0246: The type or namespace name `List`1' could not be found. Are you missing a using directive or an assembly reference?

т.е. ругается на public List<Worker> workers = new List<Worker>();


И не знаю как справится...
Вот если мне с этим помогут, а еще подскажут как брать первый элемент списка и ложить в конец, я вообще буду прыгать от счастья ))
__________________
(Offline)
 
Ответить с цитированием
Старый 19.02.2013, 23:44   #1402
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Сообщение от burovalex Посмотреть сообщение
Неа, я же говорю, так не канает..
Нашел еще тему, надо использовать namespace, но у меня ругается на List<>, который я не могу найти в руководстве по Юнити.

вот пример пакса

using UnityEngine;
using System.Collections;

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


    
class Test  
    
{  
        
// Объявление и инициализация списка
        
public List<Workerworkers = 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();
        }  
    }  

(18,16): error CS0246: The type or namespace name `List`1' could not be found. Are you missing a using directive or an assembly reference?

т.е. ругается на public List<Worker> workers = new List<Worker>();


И не знаю как справится...
Вот если мне с этим помогут, а еще подскажут как брать первый элемент списка и ложить в конец, я вообще буду прыгать от счастья ))
да е ты привязался к списку. забудь про него.! этот код вообще никаким макаром не будет работать.
Пили справку: http://docs.unity3d.com/Documentatio...Behaviour.html
http://shgames.ru
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 19.02.2013, 23:49   #1403
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

burovalex
Замени using System.Collections;
на
using System.Collections.Generic;

Есть ли в юнити простой способ назначить число промежуточных кадров, для смешения анимации?

Вроде блицевского:

Animate entity[,mode][,speed#][,sequence][,transition#]
transition# (не обязательно) - определяет количество промежуточных кадров. По умолчанию 0.
__________________
(Offline)
 
Ответить с цитированием
Старый 20.02.2013, 00:25   #1404
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Нашел еще тему, надо использовать namespace
Это пример не юнити. Чисто консольная программа
А чем не понравился пример Pax?
(Offline)
 
Ответить с цитированием
Старый 20.02.2013, 00:26   #1405
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Есть ли в юнити простой способ назначить число промежуточных кадров, для смешения анимации?
Есть способ указать время смешения
Animation.CrossFade
(Offline)
 
Ответить с цитированием
Старый 20.02.2013, 01:51   #1406
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

seaman, мне не верится, что в net нету библиотек для работы с zip.
Этот DotNetZipLib-DevKit-v1.9 выглядит каким-то сложным. Столько проектов там, не пойму что подключать надо.
А System.IO.Compression разве не для этого?
(Offline)
 
Ответить с цитированием
Старый 20.02.2013, 09:35   #1407
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от WISHMASTER35 Посмотреть сообщение
А System.IO.Compression разве не для этого?
Если тебе чисто на C# и ты можешь использовать Net 4+ то да, для этого.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 20.02.2013, 11:21   #1408
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Вопросы от новичка

Да не работает так!!
using UnityEngine;
using System.Collections.Generic;

public class TestClass : MonoBehaviour {

//объявляем класс, но если сюда написать - не канает
public static class npc
{
public Vector3 position;
public float life;
}

public static npc Create()
{
npc newNPC = new npc;
newNPC.position = new Vector3(1,2,3);
newNPC.life = 100f;
return newNPC;
}

private nps newNPC;

void Start(){
newNPC = npcCreate();
}
void Update(){
newNPC.life-=0.01f;
}
}
Моно не видит что это новый класс, и компилятор ругается
Assets/Scenes/Scrips/TestsClass.cs(15,11): error CS1525: Unexpected symbol `private'
__________________
(Offline)
 
Ответить с цитированием
Старый 20.02.2013, 11:25   #1409
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

ну тут явно не статик
public class npc 
Поясни что ты хочешь сделать, не на примере блица, а на примере того что хочешь получить, тогда подскажу как лучше.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 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)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:07.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com