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)

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


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

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