| Вопрос-[ответ] по 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.Playrigidbody2D.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 
 
   |  |  |  |  |