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)

pax 15.06.2013 21:51

Ответ: Вопросы от новичка
 
Ну в общем не знаю чем помочь, если ты инициализировал апи и ничего не работает то хз. Я свое апи в Unity писал сам.

WISHMASTER35 16.06.2013 14:36

Ответ: Вопросы от новичка
 
Помогите разобраться с IEnumerable<T>. Делаю свой список, в котором есть массив.
Сейчас пишу так:
Код:

    Enumerator IEnumerable.GetEnumerator() {
        return GetEnumerator();
    }
       
        public IEnumerator<AbstractBlock> GetEnumerator() {
                for(int i=0; i<blockSet.Length; i++) {
                        yield return blockSet[i];
                }
    }

Но не пойму для чего нужно два метода. И что значит IEnumerable. в названии первого.
И можно это как-то упростить, ведь массив имеет метод GetEnumerator().

pax 16.06.2013 14:47

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

Сообщение от WISHMASTER35 (Сообщение 261486)
И что значит IEnumerable. в названии первого.

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

http://msdn.microsoft.com/ru-ru/library/87d83y5b.aspx
Цитата:

Класс, реализующий интерфейс, может явным образом реализовывать члены этого интерфейса. Явно реализованный член можно вызвать только через экземпляр интерфейса, но не через экземпляр класса.
По поводу остального хз, не пользуюсь энумераторами в явном виде.

Nuprahtor 16.06.2013 14:53

Ответ: Вопросы от новичка
 
А как-то можно бороться с не очень правильной сортировкой плейнов?

Издалека нормально


Подойти поближе - объект сзади становится виден спереди

pax 16.06.2013 16:19

Ответ: Вопросы от новичка
 
Использовать Transparent/Cutout материалы

Nuprahtor 16.06.2013 16:28

Ответ: Вопросы от новичка
 
Ух ты! Пакс, спасибо, снова выручил! Использовал обычный транспарент все время, думал что с кутаутом то же самое будет, ан нет!

WISHMASTER35 16.06.2013 21:56

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

Сообщение от Nuprahtor (Сообщение 261489)
А как-то можно бороться с не очень правильной сортировкой плейнов?

Или полигоны меньше делать.

pax, первый метод понятно от интерфейса IEnumerable. А вот от чего второй метод с таким же названием не пойму.

pax 17.06.2013 06:43

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

Сообщение от WISHMASTER35 (Сообщение 261523)
Или полигоны меньше делать.

pax, первый метод понятно от интерфейса IEnumerable. А вот от чего второй метод с таким же названием не пойму.

IEnumerable.GetEnumerator() - метод интерфейса, GetEnumerator() - метод класса. Первый метод не доступен у класса, у класса доступен второй, а у интерфейса наоборот. Зачем так хз, ни разу не применял.

Morganolla 21.06.2013 00:21

Ответ: Вопросы от новичка
 
Не работает сохранение игры под андроидом... Почему не сохраняет файл сохранения? Файл записываю средствами C#.
А PlayerPrefs - можно использовать для сохранения игры?

pax 21.06.2013 02:07

Ответ: Вопросы от новичка
 
Вопрос куда ты сохраняешь файл? http://docs.unity3d.com/Documentatio...tDataPath.html сюда пробовал?

Morganolla 21.06.2013 11:27

Ответ: Вопросы от новичка
 
Разве это имеет значение куда? В винде по умолчанию в папку приложения. В андроиде вообще похоже все вешается при попытке записи в файл, перестают работать кнопки перехода на другую сцену.
Но все равно спасибо, попробую.

pax 21.06.2013 11:29

Ответ: Вопросы от новичка
 
Имеет, это же "линукс"

seaman 21.06.2013 17:24

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

В винде по умолчанию в папку приложения.
Далеко не везде можно писать в папку приложения.

WISHMASTER35 21.06.2013 19:18

Ответ: Вопросы от новичка
 
Unity многомерные массивы не сериализует или их надо объявлять как-то по другому? Сейчас всегда так пишу int[,,];

RegIon 21.06.2013 21:45

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

Сообщение от WISHMASTER35 (Сообщение 261797)
Unity многомерные массивы не сериализует или их надо объявлять как-то по другому? Сейчас всегда так пишу int[,,];

Нет, да и как ты себе это представляешь?
Сделай класс, сделай в нем массив.
Потом объяви массив классов. Я так делал, вроде получилось.

WISHMASTER35 21.06.2013 22:03

Ответ: Вопросы от новичка
 
Тогда не подскажите как по 3д индексу работать с одномерным массивом?
Т.е. xyz нужно перевести просто в index.
Для 2д все просто: index = y*sizeX + x.

RegIon 21.06.2013 22:08

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

Сообщение от WISHMASTER35 (Сообщение 261806)
Тогда не подскажите как по 3д индексу работать с одномерным массивом?
Т.е. xyz нужно перевести просто в index.
Для 2д все просто: index = y*sizeX + x.

index=z*sizeX*SizeY+y*sizeX+x

WISHMASTER35 21.06.2013 22:23

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

Сообщение от RegIon (Сообщение 261807)
index=z*sizeX*SizeY+y*sizeX+x

Вот так работает x + sizeY * (y + sizeZ * z)
От сюда http://stackoverflow.com/questions/7...ay-in-1d-array

RegIon 21.06.2013 22:31

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

Сообщение от WISHMASTER35 (Сообщение 261808)
Вот так работает x + sizeY * (y + sizeZ * z)
От сюда http://stackoverflow.com/questions/7...ay-in-1d-array

раскрой скобки - тоже самое, у них чуток другая система координат.

Смотри, чтобы получить высоту (в моем это Z), то нужно сместиться на SizeX*SizeY*z позиций.( площадь площадки на высоту)
Затем нам нужно сместиться по Y(в юнити это Z), т.е y*SizeX.
А потом уже по x.
Т.е SizeX*SizeY*z+SizeX*y+x.

Для юнити это:
SizeX*SizeZ*y+SizeX*z+x.

По ссылке другая система координат, без лагов работать будет только на кубах

WISHMASTER35 22.06.2013 00:58

Ответ: Вопросы от новичка
 
RegIon, у меня при твоей формуле выдавало выход за границы массива.
И почему работать будет только на кубах? Размер последнего измерения в формуле действительно не нужен, как и здесь y*sizeX + x.
А хотя, похоже, твоя формула правильнее моей. Черт знает почему сначала с ней ошибка вылетала.

Morganolla 28.06.2013 20:38

Ответ: Вопросы от новичка
 
Как при размещении игры на гугл-плей преобразовать Лицензионный ключ для этого приложения в кейсторе для юнити?
Или можно просто сделать новый кейсторе в Юнити и не парится?

pax 01.07.2013 00:23

Ответ: Вопросы от новичка
 
Надо сделать новый кейстор в Unity и хранить его. В гугл плей заливаются самоподписанные apk. А вот ключик вроде используется не так...

WISHMASTER35 02.07.2013 00:23

Ответ: Вопросы от новичка
 
Вызываю в OnSceneGUI функцию OnSceneGUI, но тест глубины не работает. Можно как-то рисовать с тестом глубины?
Видимо только создать свой материал и рисовать через GL, перед этим задавая материалу SetPass(0).
Вот только написать бы теперь еще свой шейдер правильно. Где в юнити лежат стандартные ресурсы? Например "SceneView/HandleLines.mat". Как-то их скрыли(

Okay 06.07.2013 15:20

Ответ: Вопросы от новичка
 
Юзаю playerio. Отправляю сообщение серверу "ready", то есть готов. Этим сообщением нужно сообщить игрокам, что я готов, и у других игроков я должен зареспавниться(то есть создаться объект моего персонажа), но я не знаю как сделать, чтобы это сообщение не отправлялось ко мне, иначе просто идет цикл появления объектов и как вы понимаете - все начинает виснуть.

Nex 06.07.2013 15:49

Ответ: Вопросы от новичка
 
перед отправлением сделать проверку на имена или id игроков.

Okay 06.07.2013 16:19

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

Сообщение от Nex (Сообщение 262768)
перед отправлением сделать проверку на имена или id игроков.

Ну там как бы сообщение отправляется сначала серверу. А вот в серверной части понятия не имею как отправлять сообщения всем игрокам, чтобы отправитель его не получал

RBK 06.07.2013 19:21

Ответ: Вопросы от новичка
 
Если используешь сервер из примера, то там, насколько я помню, простой перебор по списку. Ставишь условие и исключаешь нужный.

Цитата:

... иначе просто идет цикл появления объектов и как вы понимаете - все начинает виснуть.
немного неправильно организовал взаимодействие:

1)Клиент серверу: ID READY. Больше ничего не делает.
2)Сервер всем клиентам: ID CREATE
3)Все клиенты создают игрока(включая того, из пункта 1)

Okay 08.07.2013 02:49

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

Сообщение от RBK (Сообщение 262777)
Если используешь сервер из примера, то там, насколько я помню, простой перебор по списку. Ставишь условие и исключаешь нужный.



немного неправильно организовал взаимодействие:

1)Клиент серверу: ID READY. Больше ничего не делает.
2)Сервер всем клиентам: ID CREATE
3)Все клиенты создают игрока(включая того, из пункта 1)

Прикол в том, что создается "префаб". в префабе именно персонаж с тем же скриптом. Когда он создается, то опять же отправляет всем, что подключился и вся эта борода длится бесконечно. Вот я не знаю как это сделать "по умному"

Andvrok 10.07.2013 03:24

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

Сообщение от Okay (Сообщение 262887)
Прикол в том, что создается "префаб". в префабе именно персонаж с тем же скриптом. Когда он создается, то опять же отправляет всем, что подключился и вся эта борода длится бесконечно. Вот я не знаю как это сделать "по умному"

Попробуй вынести этот скрипт наружу, в экран выбора персонажа, или что там у тебя. Хотя я бы сделал просто рассылку не броадкастом, а через перебор всех игроков.

Okay 10.07.2013 13:39

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

Сообщение от Andvrok (Сообщение 263100)
Попробуй вынести этот скрипт наружу, в экран выбора персонажа, или что там у тебя. Хотя я бы сделал просто рассылку не броадкастом, а через перебор всех игроков.

Так я же хочу так сделать. Только не знаю как в отправке исключить того игрока.

Andvrok 10.07.2013 15:43

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

Сообщение от Okay (Сообщение 263125)
Так я же хочу так сделать. Только не знаю как в отправке исключить того игрока.

Отправляй вместе с "ready" идентификатор игрока.

Nex 11.07.2013 06:31

Ответ: Вопросы от новичка
 
Объясните мне что такое Quaternion.
Я не много пораскуривал и понял что это вроде нужно для поворота объекта без затупов?
Если делать физику самолета допустим на блитзе, то при маневрах в определенных углах поворота возникает как бы замок и самолет пока по одной оси не довернет, то по какой нибудь другой оси будет замирать. Quaternion нужен для устранения этих затупов или это не то? :)

pax 11.07.2013 07:33

Ответ: Вопросы от новичка
 
Почитай, если не читал

WISHMASTER35 11.07.2013 19:10

Ответ: Вопросы от новичка
 
В чем AntialiasingAsPostEffect лучше обычного Antialiasing, который включается в настройках качества графики? Или их вместе нужно использовать?

pax 11.07.2013 19:52

Ответ: Вопросы от новичка
 
когда MRT включен - не работает антиалиасинг хардварный, помогает сгладить изобращение только через пост эффекты. MRT используетсяа Deffered Lighting

Nex 12.07.2013 05:22

Ответ: Вопросы от новичка
 
Как менять цвет объекта и можно ли обойтись одним материалом?
Как создать n объектов и рандомно их расставить?

pax 12.07.2013 07:26

Ответ: Вопросы от новичка
 
Для цвета объекта у, например, Diffuse материала есть параметр "renderer.material.color". Если назначить цвет всем объектам через это свойство, то обращение к renderer.material сделает индивидуальную копию материала на объекте и задаст для него свой цвет. Если делать одним материалом, то надо шейдер, который поддерживает цвета вершин и для каждого объекта для меша создать массив colors с нужным цветом. это скопирует меши объектов, а не материалы.

WISHMASTER35 14.07.2013 16:27

Ответ: Вопросы от новичка
 
Как устроен террейн? Я так понимаю он использует шейдре, который принимает 4 текстуры и смешивает их в соответствии с данными из специальной текстуры?
Но тогда максимальное кол-во текстур на террейне должно быть 4, но я не замечал таких ограничений.

Когда-то видел такой шейдер, но не могу сейчас найти. Никто не знает где можно глянуть такое?

pax 14.07.2013 18:00

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

WISHMASTER35 14.07.2013 20:42

Ответ: Вопросы от новичка
 
pax, а поподробнее можешь как оно там работает?
И для хранения информации о смешивании используется же RGBA текстура? Я так понимаю по каналу на текстуру? Тогда опять же не ясно как больше 4х текстур использовать.

pax 15.07.2013 00:55

Ответ: Вопросы от новичка
 
Скачай Built-in shaders http://unity3d.com/unity/download/archive там найдешь DefaultResources\TerrainShaders\Splats\

Nuprahtor 16.07.2013 16:50

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

Вот такая проблема - слева Transparent Diffuse Cutout с некрасивой белой обводкой по краям и без прозрачности на изображении.
Справа - Transparent Diffuse, без проблем с отображением.
Но у обычного Transparent Diffuse есть большие проблемы с сортировкой, чего не наблюдается у Cutout.
Посмотрел в исходниках шейдеров:

Transparent Diffuse
Shader "Transparent/Diffuse" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}

SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 200

CGPROGRAM
#pragma surface surf Lambert alpha

sampler2D _MainTex;
fixed4 _Color;

struct Input {
float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}

Fallback "Transparent/VertexLit"
}


Transparent Diffuse Cutout
Shader "Transparent/Cutout/Diffuse" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
}

SubShader {
Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
LOD 200

CGPROGRAM
#pragma surface surf Lambert alphatest:_Cutoff

sampler2D _MainTex;
fixed4 _Color;

struct Input {
float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}

Fallback "Transparent/Cutout/VertexLit"
}


Можно ли каким-нибудь образом сделать так, чтобы обычный материал отображался как нужно, но при этом не имел проблем с сортировкой? Что именно влияет на сортировку?

pax 16.07.2013 19:19

Ответ: Вопросы от новичка
 
Cutout пишет в буфер глубины и является как бы твердым объектом. В результате объекты за ним не рисуются и нет необходимости сортировать непрозрачную геометрию. Для прозрачной геометрии все сложнее.... чтобы она лучше работала объект можно разделить на более мелкие части. Например огонь или что там из него выходит сделать отдельным объектом с прозрачностью, а остальную часть модели оставить Cutout

У камеры вроде было два режима сортировки, пробовал оба? http://docs.unity3d.com/Documentatio...ySortMode.html

seaman 17.07.2013 00:36

Ответ: Вопросы от новичка
 
Насчет белой обводки. Может это поможет?-
http://devuni.tk/tutor/2d-content-cr...lphfmask-tutor
http://docs.unity3d.com/Documentatio...alphamaps.html

WISHMASTER35 18.07.2013 00:48

Ответ: Вопросы от новичка
 
Nuprahtor, а как эти cutout работает? Я знаю, что там вызывается clip, чтобы отключить запись в буфер глубины для пикселя. Но для каких значений альфы clip вызывается?
Я так понимаю, чтобы не было проблем, надо вызывать clip даже на мало прозрачных пикселях, чтобы они нормально блендились с другими объектами.

Как перевести Rect из системы координат GUI в систему для GL.Viewport?

pax 18.07.2013 08:48

Ответ: Вопросы от новичка
 
Cutout не использует блендинг, отсечение использует не clip, а alpha test. У каждого Cutout шейдера есть параметр Alpha Cutoff (0..1) для контроля.

WISHMASTER35 18.07.2013 12:41

Ответ: Вопросы от новичка
 
pax, а добавить блендинг в cutout шейдер разве нельзя?
Цитата:

отсечение использует не clip, а alpha test
Что-то не понял это.

pax 18.07.2013 16:44

Ответ: Вопросы от новичка
 
Зачем блендинг в Cutout шейдере, если за ним ничего не нарисуется или нарисуется только часть? Cutout пишет в буфер глубины и Depth Test не даст нарисовать за ним геометрию. По поводу альфатеста: http://docs.unity3d.com/Documentatio...AlphaTest.html
Кстати попробуйте использовать последний пример шейдера по ссылке выше.

WISHMASTER35 22.07.2013 03:08

Ответ: Вопросы от новичка
 
Кто-нибудь менял logo в web плеере?
Вроде пишу все как надо http://docs.unity3d.com/Documentatio...ingscreen.html
Код:

var config = {
width: 960,
height: 600,
params: {
logoimage: "http://cs403122.vk.me/v403122378/6f6d/pP29qZtLfbo.jpg",
enableDebugging:"0",
disableContextMenu: true,
}
                               
};
var u = new UnityObject2(config);

Но ничерта не меняется, хотя цвет фона меняется легко.
Юнити крякнутая, может из-за этого. Но можете проверить мой код?

pax 23.07.2013 11:02

Ответ: Вопросы от новичка
 
Стиль тэга, в который ты добавляешь Unity плеер имеет другой размер?

seaman 23.07.2013 12:17

Ответ: Вопросы от новичка
 
Хм, у меня все работает. Более того, если отключите вебплейер в браузере - увидите и не стандартную картинку загрузки вебплейера.
Посмотрите мой html код - может поможет.
Пример

WISHMASTER35 25.07.2013 00:53

Ответ: Вопросы от новичка
 
seaman, похоже юнити просто jpg не хотел грузить.

jfkkk 26.07.2013 16:59

Ответ: Вопросы от новичка
 
Лайтмапа накладывается на 1uv канал, как исправить ? Экспортирую из Max9 в FBX с настроенным первым каналом для диффузной текстуры, вторым для лайтмапы.

pax 27.07.2013 09:04

Ответ: Вопросы от новичка
 
А что используешь для наложения лайтмэпы?

jfkkk 27.07.2013 13:41

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

Сообщение от pax (Сообщение 264281)
А что используешь для наложения лайтмэпы?

В Максе настраиваю два модификатора Unwarp на два канала, экспортирую в FBX. Импортируется некорректно, а именно текстура, наложенная на второй канал, в Unity кладётся по первому. Назначаю объекту Legacy lightmapped shaders, но результат тот же.

RegIon 28.07.2013 11:29

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

Поля прыгают, задрала уже такая хрень, только рестарт Unity помогает.
У кого-нибудь такое есть?

WISHMASTER35 30.07.2013 20:50

Ответ: Вопросы от новичка
 
Reglon, у меня что-то такое было, но мне даже рестарт не помогал и было только в моем Editor'е.
Я тему создавал http://answers.unity3d.com/questions...ived-anot.html и видео снял, но всем пофиг.

pax 01.08.2013 15:22

Ответ: Вопросы от новичка
 
Переместил сообщения про фотон и сеть Unity в отдельную тему

WISHMASTER35 01.08.2013 17:56

Ответ: Вопросы от новичка
 
Вложений: 2
Как создать в редакторе таблицу с красивой шапкой?

Пишу так и все нормально
Код:

EditorGUILayout.Toggle(false, GUI.skin.box);       
EditorGUILayout.TextField("-X");
EditorGUILayout.TextField("+X");
EditorGUILayout.TextField("-Z");
EditorGUILayout.TextField("+Z");

Но если пишу так, то поля съезжают к правому краю.
Код:

...
GUILayout.TextField("-X", GUILayout.ExpandWidth(true));
GUILayout.TextField("+X", GUILayout.ExpandWidth(true));
GUILayout.TextField("-Z", GUILayout.ExpandWidth(true));
GUILayout.TextField("+Z", GUILayout.ExpandWidth(true));

Хотя мне вообще надо Box'ы использовать, чтобы было красиво, но они так же съезжают.

pax 01.08.2013 18:07

Ответ: Вопросы от новичка
 
GUILayout.Label("-X", GUI.skin.box, GUILayout.Width(100));

WISHMASTER35 01.08.2013 18:19

Ответ: Вопросы от новичка
 
Вручную задавать ширину дело не гиблое.
Лучше бы знать какого черта в моем случае GUILayout.ExpandWidth(true) ни черта не работает.

RegIon 01.08.2013 18:53

Ответ: Вопросы от новичка
 
Guiskin зачем придуман? Там есть размеры, настраиваешь и оляля - все норм, что бы случайно программно не сбить - флажок зафиксировать.
*/кто-нибудь кроме меня его юзает?

WISHMASTER35 01.08.2013 20:17

Ответ: Вопросы от новичка
 
RegIon, как раз задавать фиксированные размеры я не хочу. Да и GUISkin для редактора из-за одного поля делать не хочется.

pax 02.08.2013 00:09

Ответ: Вопросы от новичка
 
Задай фиксированный размер первой колонке и не парься


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

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