Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
Ninbous | Дата: Воскресенье, 07 Мая 2017, 13:40 | Сообщение # 8321 |
уже был
Сейчас нет на сайте
| Всем привет! Ребята как убрать тень у деревьев? Один и тот же прифаб, но когда я перетаскиваю прифаб просто на сцену то тени у него нет, а когда юзаю в террейне тень появляется, как убрать тень чтобы модно было юзать как кисть в террейне?
|
|
| |
Bo | Дата: Воскресенье, 07 Мая 2017, 21:12 | Сообщение # 8322 |
почетный гость
Сейчас нет на сайте
| Вопрос из разряда очень нубских. Делал проект в 4.6. Доделал, решил перенести его в 5,6 чтобы была возможность выгрузить в WebGL. И тут обнаружились забавные вещи.
раньше в Unity 4.6 можно было написать что-нибудь типа
Код this.rigidbody2D.velocity = ....
но в Unity 5 теперь надо делать так:
Код shipRigidbody = GetComponent<Rigidbody2D>();
и только после этого обращаться к компоненту rigidbody2D
Раньше можно было написать
Код audio.Play rigidbody2D.velocity += tweak
выглядело коротко, читалось легко
Код GetComponent<AudioSource>().Play(); GetComponent<Rigidbody2D>().velocity() += tweak;
Новый вариант выглядит громоздким хотя по сути делает тоже самое
Вопрос: зачем эти изменения нужны (а они ведь явно не просто так сделаны, все таки не дураки писали) Я прочитал пару статей по аксессорам в Unity, но та ки не понял почему для одних компонентов это работало, а для других нет. В общем если кто-то по простому и по русски напишет буду признателен (ну или за линк на материал для чайников)
Сообщение отредактировал Bo - Воскресенье, 07 Мая 2017, 21:12 |
|
| |
seaman | Дата: Понедельник, 08 Мая 2017, 00:58 | Сообщение # 8323 |
старожил
Сейчас нет на сайте
| rigidbody может не быть audio может не быть Если их нет - встроенные переменные быстрого доступа будут null. И это не очевидно. GetComponent предполагает, что Вы понимаете что делаете и проверите - а вернул ли он что-нибудь. Это уменьшает число ошибок. transform оставили потому что он есть всегда
|
|
| |
SEMAK1987 | Дата: Понедельник, 15 Мая 2017, 19:08 | Сообщение # 8324 |
уже был
Сейчас нет на сайте
| Доброго времени суток, помогите со скриптом // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
// Per pixel bumped refraction. // Uses a normal map to distort the image behind, and // an additional texture to tint the color.
Shader "HeatDistort" { Properties { _BumpAmt ("Distortion", range (0,128)) = 10 _MainTex ("Tint Color (RGB)", 2D) = "white" {} _BumpMap ("Normalmap", 2D) = "bump" {} }
CGINCLUDE #pragma fragmentoption ARB_precision_hint_fastest #pragma fragmentoption ARB_fog_exp2 #include "UnityCG.cginc"
sampler2D _GrabTexture : register(s0); float4 _GrabTexture_TexelSize; sampler2D _BumpMap : register(s1); sampler2D _MainTex : register(s2);
struct v2f { float4 vertex : POSITION; float4 uvgrab : TEXCOORD0; float2 uvbump : TEXCOORD1; float2 uvmain : TEXCOORD2; };
uniform float _BumpAmt;
half4 frag( v2f i ) : COLOR { // calculate perturbed coordinates half2 bump = UnpackNormal(tex2D( _BumpMap, i.uvbump )).rg; // we could optimize this by just reading the x & y without reconstructing the Z float2 offset = bump * _BumpAmt * _GrabTexture_TexelSize.xy; i.uvgrab.xy = offset * i.uvgrab.z + i.uvgrab.xy; half4 col = tex2Dproj( _GrabTexture, i.uvgrab.xyw ); half4 tint = tex2D( _MainTex, i.uvmain ); /// <<<<<<< сдесь пишит ошибку return col * tint; } ENDCG
Category {
// We must be transparent, so other objects are drawn before this one. Tags { "Queue"="Transparent+100" "RenderType"="Opaque" }
SubShader {
// This pass grabs the screen behind the object into a texture. // We can access the result in the next pass as _GrabTexture GrabPass { Name "BASE" Tags { "LightMode" = "Always" } } // Main pass: Take the texture grabbed above and use the bumpmap to perturb it // on to the screen Pass { Name "BASE" Tags { "LightMode" = "Always" } CGPROGRAM #pragma vertex vert #pragma fragment frag
struct appdata_t { float4 vertex : POSITION; float2 texcoord: TEXCOORD0; };
v2f vert (appdata_t v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); #if UNITY_UV_STARTS_AT_TOP float scale = -1.0; #else float scale = 1.0; #endif o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y*scale) + o.vertex.w) * 0.5; o.uvgrab.zw = o.vertex.zw; o.uvbump = MultiplyUV( UNITY_MATRIX_TEXTURE1, v.texcoord ); o.uvmain = MultiplyUV( UNITY_MATRIX_TEXTURE2, v.texcoord ); return o; } ENDCG } }
// ------------------------------------------------------------------ // Fallback for older cards and Unity non-Pro SubShader { Blend DstColor Zero Pass { Name "BASE" SetTexture[_MainTex] { combine texture } } } }
}
Добовляю к материалу он становится не прозрачным а розового цвета ,сам скрипт работает только текстура мешает всей отмосфере.
|
|
| |
Qualmer | Дата: Воскресенье, 21 Мая 2017, 07:36 | Сообщение # 8325 |
уже был
Сейчас нет на сайте
| Я делаю 2Д-рогалик с процедурной генерацией подземелий. С помощью скрипта создается двухмерный массив из мелких квадратиков и в нем рандомные комнаты. В случайной комнате спавнится персонаж, а также прикрепленная к нему камера и интерфейс. Всё спавнится как надо, кроме интерфейса, он постоянно появляется в одном и том же месте(координаты 0,0) независимо от расположения камеры или игрока. Реализован интерфейс через канвас с картинками с рендером по камере. Помогите, пожалуйста.
|
|
| |
Бозингар | Дата: Среда, 24 Мая 2017, 11:44 | Сообщение # 8326 |
почетный гость
Сейчас нет на сайте
| Проблема с 2d анимацией. Rotation объекта по умолчанию - 0, 0, 0. Через ключевую анимацию (окно Animation) пытаюсь повернуть на -2 градуса (перемещаю полоску кадра в окне Animation, поворачиваю объект на -2 градуса). Вместо этого он кувыркается в обратную сторону на 358 градусов. С пивотами всё нормально, скриптов нет, других видимых причин тоже не замечаю. Первый раз такой хрен.
#Хийвэл бүү ай, айвал бүү хий.
|
|
| |
EchoIT | Дата: Среда, 24 Мая 2017, 14:24 | Сообщение # 8327 |
старожил
Сейчас нет на сайте
| Бозингар, 358 градусов это то же самое, что -2 градуса.
Долгожданный анонсик: State of War
|
|
| |
Бозингар | Дата: Среда, 24 Мая 2017, 15:56 | Сообщение # 8328 |
почетный гость
Сейчас нет на сайте
| Цитата offtop () Цитата EchoIT ( ) 358 градусов это то же самое, что -2 градуса. Бесспорно. Но когда мне нужно было освежить знания по геометрии - я пошёл на ресурсы, посвящённые этой тематике. Сюда же пришёл узнать конкретное решение конкретной проблемы, а не выяснять основы тригонометрии. Повторю то, что уже писал многократно на этом форуме: не знаете ответа на вопрос - игнорируйте его. А для блистания остроумием есть пикабу, фишки и куча иных сайтов.
#Хийвэл бүү ай, айвал бүү хий.
|
|
| |
EchoIT | Дата: Среда, 24 Мая 2017, 16:15 | Сообщение # 8329 |
старожил
Сейчас нет на сайте
| Бозингар, это и есть ответ на твой вопрос. Пища, так сказать, для размышления. А коли ты не хочешь размышлять, а лишь хочешь ответы на все вопросы, то в геймдеве тебе делать нечего. Если тебе что-то не нравится, игнорируй сам. Здесь тебе никто ничем не обязан.
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Среда, 24 Мая 2017, 16:16 |
|
| |
DisCr | Дата: Понедельник, 29 Мая 2017, 13:10 | Сообщение # 8330 |
был не раз
Сейчас нет на сайте
| Здраствуйте, как в самом редакторе Unity можно поставить предмет точно рядом с другим, чтобы они были рядом и милиметра между ними не оставалось? Есть ли в нём какая нибудь привязка к вершинам/рёбрам, как в 3d редакторах?
|
|
| |
AndrewNovak | Дата: Понедельник, 29 Мая 2017, 16:13 | Сообщение # 8331 |
почетный гость
Сейчас нет на сайте
| Цитата DisCr ( ) Есть ли в нём какая нибудь привязка к вершинам/рёбрам, как в 3d редакторах? Выделяешь объект - переходишь в перемещение - зажимаешь кнопку V и тяшешь за вертексы к вертексам другого объекта Также есть опция в Edit -> Snap Settings
COLD DEPTH Steam PUSS! COLD DEPTH
Сообщение отредактировал AndrewNovak - Понедельник, 29 Мая 2017, 16:14 |
|
| |
allods | Дата: Понедельник, 12 Июня 2017, 18:06 | Сообщение # 8332 |
почти ветеран
Сейчас нет на сайте
| Ребят нужен ответ на вопрос Можно ли использовать корутины в таких целях типо таймера ? Как скажется на производительность? Пример
Код IEnumerator randStand(){ while(true){ randAnim = Random.Range (0,3); yield return new WaitForSeconds (3); } yield break; }
И других по типу востановления ХП у юнитов каждую секнду +н количество? Или лучше в Update засунуть с таймером ?
|
|
| |
beril | Дата: Понедельник, 12 Июня 2017, 19:20 | Сообщение # 8333 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Цитата allods ( ) И других по типу востановления ХП у юнитов каждую секнду +н количество? Или лучше в Update засунуть с таймером ? Не лутчше, короутином часто заменяют Update и используют его как игровой цикл
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
allods | Дата: Понедельник, 12 Июня 2017, 20:16 | Сообщение # 8334 |
почти ветеран
Сейчас нет на сайте
| Цитата beril ( ) Не лутчше, короутином часто заменяют Update и используют его как игровой цикл Но если я использую Update для других дел, можно попутно еще корутин так 5 зафигачить? Допустим что таких скриптов будет от 20 до 100 и в каждом по Update и по 5 корутин что я показал выше. Просто хочу знать, как сильно влияет на производительность корутины или не стоит с эти париться . Все эти корутины работаю с самого Старта .
И да все это для мобилок
Сообщение отредактировал allods - Понедельник, 12 Июня 2017, 20:17 |
|
| |
beril | Дата: Понедельник, 12 Июня 2017, 23:10 | Сообщение # 8335 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Цитата allods ( ) Но если я использую Update для других дел, можно попутно еще корутин так 5 зафигачить? Допустим что таких скриптов будет от 20 до 100 и в каждом по Update и по 5 корутин что я показал выше. Просто хочу знать, как сильно влияет на производительность корутины или не стоит с эти париться . Все эти корутины работаю с самого Старта .
И да все это для мобилок в одном скрипте 5 бесконечных циклов на куче обьектов это много. Короутины более прожорлевые и в большом количестве их не стоит использовать. Насколько помню по статье: использование одновременно до 1000 короутинов практически не влияет на производитедьность, это касается вызова в одном фрейме. Если есть задержка WaitForSeconds и подобные им, по идеи даже большое количество короутинов не повлияет на производительность. Но надо тестить все И да все это писичная оптимизация, я бы на твоем месте не об оптимизации Update и короутинов думал, а об Random.Range и того, что будет находится внутри короутины Лично я за короутины, никогда не сталкивался с падением производительности из за них, ну опять же такую конструкция лучше не использовать в большом количестве.
Код while (true) { yield return null; }
В твоем случае, для востановления хп и прочего лучше короутины юзать, Update нужен для действий, которые необходимо выполнять каждый фрейм. Короутины не замена Update , но в некоторых случаях лучше использовать короутины
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
EchoIT | Дата: Понедельник, 12 Июня 2017, 23:21 | Сообщение # 8336 |
старожил
Сейчас нет на сайте
| Цитата ожно ли использовать корутины в таких целях типо таймера ? Можно. Нужно ли? Нет. Говно без задач.
Долгожданный анонсик: State of War
|
|
| |
|
roma3fon | Дата: Среда, 12 Июля 2017, 04:47 | Сообщение # 8338 |
участник
Сейчас нет на сайте
| ProsstoBRO, ну самый простой способ написать шейдер смещения слоев по осям в зависимости от расположения камеры.
|
|
| |
EchoIT | Дата: Среда, 12 Июля 2017, 11:38 | Сообщение # 8339 |
старожил
Сейчас нет на сайте
| Цитата ProsstoBRO, ну самый простой способ написать шейдер смещения слоев по осям в зависимости от расположения камеры. Ваще не самое простое. Далеко не все умеют писать шейдеры.
Долгожданный анонсик: State of War
|
|
| |
ProsstoBRO | Дата: Среда, 12 Июля 2017, 13:52 | Сообщение # 8340 |
был не раз
Сейчас нет на сайте
| Блин, просто хочется игрушку на android сделать, в гейм мейкере производительность не очень, в unity получше будет, но не хочется использовать 3D
|
|
| |