forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

Okay 14.02.2013 22:37

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 252742)
А нет ли каких-то объектов, помеченных тэгом EditorOnly?

Просмотрел все объекты, которые находились в иерархии. У всех Untagged, а на игроке player

seaman 14.02.2013 23:02

Ответ: Вопросы от новичка
 
http://msdn.microsoft.com/ru-ru/libr...em.action.aspx
System.Action == public delegate void Action()
В чем разница? Только в записи?

pax 15.02.2013 09:12

Цитата:

Сообщение от WISHMASTER35 (Сообщение 252764)
pax, а в чем разница между делегатами и System.Action? Второе выглядит намного удобнее.

Разница в том, что делегаты уже созданы на большинство случаев, которые тебе могут понадобятся. По ссылке seaman слева есть все виды созданных заранее делегатов. Незачем создавать свои, а можно пользоваться готовыми.

Цитата:

Сообщение от Okay (Сообщение 252802)
Просмотрел все объекты, которые находились в иерархии. У всех Untagged, а на игроке player

Ну в таких случаях я ставлю в коде Debug.Log(1) ... Debug.Log(N) и смотрю на какой строке проблема в логе (проблема будет после последней выведенной цифры в лог). Но у меня такого практически не бывает.

Левша09 15.02.2013 12:11

Ответ: Вопросы от новичка
 
Приветствую всех! Созрел еще один вопрос. Есть First Person Controller, к нему добавлена некая модель. Нужно чтобы модель двигалась перед игроком на уровне земли не погружаясь в terrain. Каким образом можно это реализовать?

pie 15.02.2013 18:22

Ответ: Вопросы от новичка
 
1. Отодвигай камеру назад или удали ее и создай в сцене. Если создал новую, то вешай на нее скрипт MouseOrbit.
2. Использовать 3dr Person Controller.

Lestar 15.02.2013 18:33

Ответ: Вопросы от новичка
 
Из модели вниз пускай луч, меряй расстояние до террайна, если не удовлетворяет, то выравнивай расстояние(опускай/подымай модель)

WISHMASTER35 15.02.2013 19:18

Ответ: Вопросы от новичка
 
pax, не плохое там количество заготовленных делегатов)) Action(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)
А делегаты нельзя перечислять как params?

pax 15.02.2013 21:09

Ответ: Вопросы от новичка
 
Ну собственно params Action[] methods должно работать как и подразумевается

WISHMASTER35 15.02.2013 21:35

Ответ: Вопросы от новичка
 
pax, я перепутал. Я хотел написать дженерики. Т.е. Action(params T[] values). Но видно нельзя, если сделали столько перегрузок.

pax 15.02.2013 21:43

Ответ: Вопросы от новичка
 
Перегрузки для разных типов параметров, а не для одного.

WISHMASTER35 16.02.2013 01:19

Ответ: Вопросы от новичка
 
Вложений: 1
Хочу сделать вращение объекта мышкой как в Blender.
Для этого нужно из координат мышки вычислить рычаг за который будем крутить объект.
А чтобы вычислить этот рычаг нужно спроецировать курсор на сферу.
Есть идеи как это правильно сделать?

Сейчас так написал, но по-моему это не совсем правильно.
Код:

float tx = (Input.mousePosition.x-Screen.width/2)/Screen.width * 2;
float ty = (Input.mousePosition.y-Screen.height/2)/Screen.height * 2;
tx = Mathf.Clamp(tx, -1, 1);
ty = Mathf.Clamp(ty, -1, 1);
                               
dir = new Vector3(tx, ty, 0);
dir.z = -Mathf.Clamp01(1-dir.magnitude);
dir.Normalize();

Т.е. если точка в самом правом углу дисплея, то рычаг будет справа на сфере. Рисунок немного неверный, нужно было обрезать синюю линию.

pax 16.02.2013 11:04

Ответ: Вопросы от новичка
 
Попробуй посмотреть вот этот пример http://wiki.unity3d.com/index.php?title=ArcBall

Okay 16.02.2013 18:07

Ответ: Вопросы от новичка
 
Цитата:

Ну в таких случаях я ставлю в коде Debug.Log(1) ... Debug.Log(N) и смотрю на какой строке проблема в логе (проблема будет после последней выведенной цифры в лог). Но у меня такого практически не бывает.
pax, не совсем понял. Напиши пример пожалуйста

pax 16.02.2013 18:14

Ответ: Вопросы от новичка
 
PHP код:

Строка кода 1;
Debug.Log(1);
Строка кода 2;
Debug.Log(2);
Строка кода 3;
Debug.Log(3);
Строка кода 4;
Debug.Log(4);
Строка кода 5;
Debug.Log(5); 

Если последнее в логе перед ошибкой цифра 3, то ошибка на строке "Строка кода 4;"

Okay 16.02.2013 18:38

Ответ: Вопросы от новичка
 
мда :(
лог:
Цитата:

1
2
10
23
54
1
2
10
54
И так далее.

den 16.02.2013 19:03

Ответ: Вопросы от новичка
 
Цитата:

Ну в таких случаях я ставлю в коде Debug.Log(1) ... Debug.Log(N)...
а пошагового выполнения в юнити нет?

pax 16.02.2013 21:17

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Okay (Сообщение 252987)
мда :(
лог:

И так далее.

Так ошибка после какой цифры то?


Цитата:

Сообщение от Den (Сообщение 252989)
а пошагового выполнения в юнити нет?

В билде нет.

WISHMASTER35 16.02.2013 23:46

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 252949)
Попробуй посмотреть вот этот пример http://wiki.unity3d.com/index.php?title=ArcBall

Что-то не понял как тот пример работает, но мой код работает хорошо.
Код:

public class Trackball : MonoBehaviour {
        void Update () {
                if(Input.GetMouseButton(1)) {
                        float screenSize = Mathf.Max(Screen.width, Screen.height);
                        float tx = (Input.mousePosition.x-Screen.width/2)/screenSize * 2;
                        float ty = (Input.mousePosition.y-Screen.height/2)/screenSize * 2;
                       
                        tx = Mathf.Clamp(tx, -1, 1);
                        ty = Mathf.Clamp(ty, -1, 1);
                       
                       
                        Vector3 lever = new Vector3(tx, ty, 0);
                        lever.z = -Mathf.Clamp01(1-lever.magnitude);
                        lever.Normalize();
                       
                        Vector3 delta = new Vector3(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
                       
                        Vector3 axis = Vector3.Cross(lever, delta);
                        axis = Camera.mainCamera.transform.TransformDirection(axis);
                        transform.Rotate(axis, delta.magnitude*5, Space.World);
                       
                        Debug.DrawLine(transform.position, transform.position+lever, Color.green);
                }
        }
}


is.SarCasm 17.02.2013 00:26

Ответ: Вопросы от новичка
 
1. Как в Photon'е добавить свойство к комнате? Например мне нужно уровень(сцену) этой команты.
2. Как использовать Photon Cloud?

Okay 17.02.2013 00:41

Ответ: Вопросы от новичка
 
Цитата:

Так ошибка после какой цифры то?
pax, в дебаг выводит только вот эти 5 цифр. Причем 23 - через раз выводится. Походу только 5 функций из 54 - правильны.

pax 17.02.2013 01:56

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от is.SarCasm (Сообщение 252999)
1. Как в Photon'е добавить свойство к комнате? Например мне нужно уровень(сцену) этой команты.
2. Как использовать Photon Cloud?

1. PhotonNetwork.CreateRoom принимает i'i таблицу параметров комнаты и массив имен открытых параметров.
2. Скачать с ассет стора Photon Unity Networking. Посмотреть пример с сантехником.

Цитата:

Сообщение от Okay (Сообщение 253000)
pax, в дебаг выводит только вот эти 5 цифр. Причем 23 - через раз выводится. Походу только 5 функций из 54 - правильны.

Если не выводит в лог ошибок, значит их нет.

is.SarCasm 17.02.2013 02:50

Ответ: Вопросы от новичка
 
Я имел введу где хранить данные о пользователе? В сантехники этого нет. Свою БД делать? Или в фотоне это тоже предусмотрено?

pax 17.02.2013 03:03

Ответ: Вопросы от новичка
 
Постоянно в облаке хранить ничего нельзя, только на время жизни комнаты. В моих роботах все сохраняется через WWW + PHP + mysql

WISHMASTER35 17.02.2013 15:08

Ответ: Вопросы от новичка
 
Есть public переменная с атрибутами [NonSerialized] и [HideInInspector].
Можно эти атрибуты заменить переделав переменную свойство?
Т.е. get открытый, а set только для своего класса.

Писать методы get на все переменные уже лень. А по два атрибута тоже много.

Okay 17.02.2013 15:16

Ответ: Вопросы от новичка
 
Цитата:

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

WISHMASTER35 17.02.2013 15:36

Ответ: Вопросы от новичка
 
Okay, а большой проект? Нужно же время от время пробовать делать билды.

pax 17.02.2013 21:15

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 253017)
Есть public переменная с атрибутами [NonSerialized] и [HideInInspector].
Можно эти атрибуты заменить переделав переменную свойство?
Т.е. get открытый, а set только для своего класса.

Писать методы get на все переменные уже лень. А по два атрибута тоже много.

я использую internal для такого без атрибутов

Okay 17.02.2013 23:36

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 253019)
Okay, а большой проект? Нужно же время от время пробовать делать билды.

Ну как сказать. Платформа. Модель персонажа. скрипт с анимациями и скрипт с коннектом и управлением. И 4 Point Light. Больше ничего нету =)

WISHMASTER35 18.02.2013 01:02

Ответ: Вопросы от новичка
 
Okay, странно. А другие проекты у тебя работают? Выложи чтоли свой проект, проверим.

Левша09 18.02.2013 17:52

Ответ: Вопросы от новичка
 
Еще вопрос. Я через OnTriggerEnter включаю отображение объекта (GetComponent(MeshRenderer).enabled = true).
А как отключить через N секунд после включения?

pax 18.02.2013 18:04

Ответ: Вопросы от новичка
 
Примерно так:
PHP код:

void DisableRenderer() {
        
GetComponent(MeshRenderer).enabled false;
    }
    
void OnTriggerEnter () {
        
GetComponent(MeshRenderer).enabled true;
        
Invoke("DisableRenderer"2);
    } 


Lestar 18.02.2013 18:43

Ответ: Вопросы от новичка
 
Где то очень сильно туплю, но тем не менее. Имеем сериализуемый класс
Код:

[Serializable]
public class MyClass
{
 public GameObject obj1;
 public GameObject obj2;
}

Создаем экземпляр класса
Код:

public MyClass=new MyClass();
В итоге в инспекторе, на обьекте, на котором висит эта логика видим наш экземпляр с паблик полями. В паблик поле бросаем обьекты и пробуем достучаться до полей
Код:

Debug.Log(myClass.obj1);
В итоге в game mode дэбаг выводит null.

WISHMASTER35 18.02.2013 18:54

Ответ: Вопросы от новичка
 
Lestar, т.е. в инспекторе показывает объект, а в коде получаешь null? Странно, думаю у тебя где-то в другом месте ошибка.
Скажите, есть ли возможность в билде открыть диалог выбора файла и загрузить\сохранить файл? Особенно интересует WebPlayer.

Lestar 18.02.2013 19:09

Ответ: Вопросы от новичка
 
Вэб плееру закрыт доступ к ОС из соображений безопасности.

WISHMASTER35 18.02.2013 19:26

Ответ: Вопросы от новичка
 
Lestar, черт! Я рассчитывал сделать редактирование blockset'ов прямо в игре.
Даже html может открывать диалог выбора файлов.
Может можно как-то обойти это? Для сохранения допустим сделать, чтобы браузер скачивал мой файл, только не с сервера, а с моего приложения.

Кстати, в C# есть библиотеки для работы с ZIP? Только чтобы архивировались\распаковывались в памяти, а не сразу на диск.

Левша09 18.02.2013 21:09

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 253075)
Примерно так:
PHP код:

void DisableRenderer() {
        
GetComponent(MeshRenderer).enabled false;
    }
    
void OnTriggerEnter () {
        
GetComponent(MeshRenderer).enabled true;
        
Invoke("DisableRenderer"2);
    } 


Честно говоря не понял как это работает. На Js еще как-то понимаю, C# вообще темный лес.

WISHMASTER35 18.02.2013 21:48

Ответ: Вопросы от новичка
 
Левша09, три вызова метода. Что не понятного?

Левша09 18.02.2013 22:49

Ответ: Вопросы от новичка
 
Пока ничего вообще.

pax 19.02.2013 07:57

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Lestar (Сообщение 253077)
Создаем экземпляр класса
Код:

public MyClass=new MyClass();

Вопрос зачем инициализировать? Unity сама создает экземпляры. И надеюсь Debug.Log не в конструкторе, а например в Awake... лучше бы весь код не рабочий привел.

Цитата:

Сообщение от Левша09 (Сообщение 253088)
Честно говоря не понял как это работает. На Js еще как-то понимаю, C# вообще темный лес.

Функция Invoke вызывает другую функцию по имени и с указанной задержкой.


Цитата:

Сообщение от WISHMASTER35 (Сообщение 253081)
Кстати, в C# есть библиотеки для работы с ZIP? Только чтобы архивировались\распаковывались в памяти, а не сразу на диск.

есть Gzip и Deflate, но не уверен что будет работать в Unity. http://msdn.microsoft.com/ru-ru/libr...(v=vs.90).aspx

попробуй это http://www.icsharpcode.net/opensource/sharpziplib/

burovalex 19.02.2013 11:25

Ответ: Вопросы от новичка
 
Помогите!
Хотел собрать высоту терраина в точках. Но нифига не робит, выдаёт нули.


Код:

using UnityEngine;
using System.Collections;

public class PlantsUpdate : MonoBehaviour {
        public        int                        gridMaxX, gridMaxZ;
        public        float                        gridHeight;
        public        GameObject[,]        gridEl;
        public        float[,]                gridFloat;
        public        Ray                        gridRay;
        public        int                        temp;
        public  RaycastHit                gridHit;
       
        void Start () {
               
                GameObject cub;
                gridHeight = (float)GetComponent<Terrain>().terrainData.size.y;
                                       
                for (int z=0; z<=10; z++)
                {               
                        for (int x=0; x<=10; x++)
                                {
                                        gridRay.origin = new Vector3(x,gridHeight+10,z);
                                        gridRay.direction = new Vector3(0,-1,0).normalized;
                                        if (Physics.Raycast(gridRay,10000))
                                        {
                                                print(gridHit.point.y);       
                                        }
                                }
                }
                       
        }
}


pax 19.02.2013 11:42

Ответ: Вопросы от новичка
 
PHP код:

if (Physics.Raycast(gridRayout gridHit10000)) 

По террейну есть вот такая функция http://docs.unity3d.com/Documentatio...pleHeight.html

Morganolla 19.02.2013 12:23

Ответ: Вопросы от новичка
 
Где посмотреть, как подключать сторонние библиотеки на С++. Например Бокс2Д и т.п. Это сильно сложно или просто?

burovalex 19.02.2013 12:39

Ответ: Вопросы от новичка
 
Спасибо pax!! Всё робит отлично!

По поводу библиотек, знаю только как поключать *.unitypackage
Assets -> Import Package -> Custom Package..

pax 19.02.2013 13:20

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 253130)
Где посмотреть, как подключать сторонние библиотеки на С++. Например Бокс2Д и т.п. Это сильно сложно или просто?

На С++ можно только с extern "C" интерфейсом. И работать будет только на PC если это dll.

Про плагины тут

burovalex 19.02.2013 13:24

Ответ: Вопросы от новичка
 
pax, подскажи еще плиз, второй вариант чтото не работает
NullReferenceException: Object reference not set to an instance of an object
PlantsUpdate.Start () (at Assets/Scenes/Scrips/PlantsUpdate.cs:30)


Код:

using UnityEngine;
using System.Collections;

public class PlantsUpdate : MonoBehaviour {
        public  Terrain                        thisTerrain;
        public        int                        gridMaxX, gridMaxZ;
        public        float                        gridHeight;
        public        GameObject[,]        gridEl;
        public        float[,]                gridFloat;
        public        Ray                        gridRay;
        public  RaycastHit                gridHit;
       
        void Start () {
                thisTerrain = (Terrain)GetComponent<Terrain>();
                gridMaxX = (int)thisTerrain.terrainData.size.x-1;
                gridMaxZ = (int)thisTerrain.terrainData.size.z-1;
                gridEl = new GameObject[gridMaxX,gridMaxZ];
                Vector3 vector3;
                               
                for (int z=0; z<=10; z++)
                {               
                        for (int x=0; x<=10; x++)
                                {
                                        vector3 = new Vector3(x,0f,z);
                                        gridFloat[x,z] = (float)thisTerrain.SampleHeight(vector3);
                                        gridRay.origin = new Vector3(x,gridHeight+10,z);
                                        gridRay.direction = new Vector3(0,-1,0).normalized;
                                        if (Physics.Raycast(gridRay, out gridHit, 100))
                                        {
                                       
                                        }
                                }
                }
                       
        }
}


pax 19.02.2013 13:28

Ответ: Вопросы от новичка
 
PHP код:

void Start () {
gridFloat = new float[10,10];
gridEl = new GameObject[10,10];
... 

Если конкретнее - объявление массивов создает ссылку на массив но не выделяет под него память (не создает сам массив). Массив создается с помощью оператора new.

Morganolla 19.02.2013 15:13

Ответ: Вопросы от новичка
 
Как можно копировать объекты с их полным содержимым?
Например я создаю новый объект как элемент некого массива:
Stars[i] = new GameObject();
далее я хочу чтобы он был подобен некому прототипу Star, где уже все присвоено (меши, текстуры)...
Stars[i]=Star; ????? - это наверно не будет работать?

RegIon 19.02.2013 15:24

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 253145)
Как можно копировать объекты с их полным содержимым?
Например я создаю новый объект как элемент некого массива:
Stars[i] = new GameObject();
далее я хочу чтобы он был подобен некому прототипу Star, где уже все присвоено (меши, текстуры)...
Stars[i]=Star; ????? - это наверно не будет работать?

Код:

Start[i] = Instantiate(Star,Star.transform.position,Star.transform.rotation) as GameObject;
Только так

Morganolla 19.02.2013 15:32

Ответ: Вопросы от новичка
 
Костян!
Выдает ошибку что то типа не соответствия типов-
error CS0266: Cannot implicitly convert type `UnityEngine.Object' to `UnityEngine.GameObject'. An explicit conversion exists (are you missing a cast?)

Morganolla 19.02.2013 16:29

Ответ: Вопросы от новичка
 
Еще одна странность...
При очередном дублировании объекта для создания нового примитива у него съехали глобальные координаты... Как будто он привязан к некой точке не соответствующей центру координат ( экрана ). В инспекторе не видно куда он еще может быть привязан... Как это проверить и что делать... :)
Можно ли в инспекторе посмотреть привязку к родителю и изменить ее?

pax 19.02.2013 16:41

Ответ: Вопросы от новичка
 
Цитата:

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

поставь (GameObject) перед Instantiate

Цитата:

Сообщение от Morganolla (Сообщение 253150)
Еще одна странность...
При очередном дублировании объекта для создания нового примитива у него съехали глобальные координаты... Как будто он привязан к некой точке не соответствующей центру координат ( экрана ). В инспекторе не видно куда он еще может быть привязан... Как это проверить и что делать... :)
Можно ли в инспекторе посмотреть привязку к родителю и изменить ее?

Я честно ничего не понял, взаимосвязь родитель - потомок ищи в окне Hierarchy

seaman 19.02.2013 16:57

Ответ: Вопросы от новичка
 
Цитата:

Кстати, в C# есть библиотеки для работы с ZIP? Только чтобы архивировались\распаковывались в памяти, а не сразу на диск.
Это работает:
DotNetZip
и на мобилах,которые поддерживают .NET Compact Framework - тоже. Работает с потоками, т.е. можно и с памятью.

burovalex 19.02.2013 18:26

Ответ: Вопросы от новичка
 
Помогите пожалуйста, не могу понять как классы создаются и используются..
Мне нужен только маленький пример.
Задача: создать свой класс 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

RegIon 19.02.2013 19:56

Ответ: Вопросы от новичка
 
Цитата:

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

ну это если на JS писать, на C# никогда не вылетал


Цитата:

Сообщение от burovalex (Сообщение 253164)
Помогите пожалуйста, не могу понять как классы создаются и используются..
Мне нужен только маленький пример.
Задача: создать свой класс 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

Для ясности: не нужно одним скриптом управлять всеми ботами.
Пишешь один, и кидаешь на каждого.
PHP код:

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);  


Ну типо так. Не понял что там написано конечно, ну ладно

burovalex 19.02.2013 21:21

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

PHP код:

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;
}



RegIon 19.02.2013 21:51

Ответ: Вопросы от новичка
 
поправьте меня, так как я :"не компетентен" (MOKA)

нужно же хоть создать объект было.
PHP код:

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;
}
//



burovalex 19.02.2013 22:42

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

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

PHP код:

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>();


И не знаю как справится... :(
Вот если мне с этим помогут, а еще подскажут как брать первый элемент списка и ложить в конец, я вообще буду прыгать от счастья ))

RegIon 19.02.2013 23:44

Ответ: Вопросы от новичка
 
Цитата:

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

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

PHP код:

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

mauNgerS 19.02.2013 23:49

Ответ: Вопросы от новичка
 
burovalex
Замени using System.Collections;
на
using System.Collections.Generic;

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

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

Animate entity[,mode][,speed#][,sequence][,transition#]
transition# (не обязательно) - определяет количество промежуточных кадров. По умолчанию 0.

seaman 20.02.2013 00:25

Ответ: Вопросы от новичка
 
Цитата:

Нашел еще тему, надо использовать namespace
Это пример не юнити. Чисто консольная программа
А чем не понравился пример Pax?

seaman 20.02.2013 00:26

Ответ: Вопросы от новичка
 
Цитата:

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

WISHMASTER35 20.02.2013 01:51

Ответ: Вопросы от новичка
 
seaman, мне не верится, что в net нету библиотек для работы с zip.
Этот DotNetZipLib-DevKit-v1.9 выглядит каким-то сложным. Столько проектов там, не пойму что подключать надо.
А System.IO.Compression разве не для этого?

pax 20.02.2013 09:35

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 253219)
А System.IO.Compression разве не для этого?

Если тебе чисто на C# и ты можешь использовать Net 4+ то да, для этого.

burovalex 20.02.2013 11:21

Ответ: Вопросы от новичка
 
Да не работает так!!
Цитата:

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'


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot