Этого треда уже нет.
Это копия, сохраненная 25 июля 2018 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
unity.jpg59 Кб, 750x422
Unity Thread 427717 В конец треда | Веб
Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности!

Прошлый тред: https://2ch.hk/gd/res/401747.html (М)

Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page

На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.

FAQ

- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.

- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.

- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.

- Для каких жанров подходит Unity?
- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.

- На каких платформах работают созданные с помощью Unity игры?
- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.

- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.

- Что такое стартер киты?
- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.

- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).

- Бесплатен ли Unity?
- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.

Обучение

- Язык
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
или в текстовом туториале здесь:
https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Для изучения основ UnityScript выучи вначале основы JavaScript:
https://learn.javascript.ru/
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.

- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
http://www.ozon.ru/context/detail/id/34792570/
Также посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.

Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.

Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
2 427739
Всем привет от Серёги!
3 427791
Тут что так мертво или юнити девелоперы вымерли?
4 427792
Реквестирую подробные, и чем подробнее тем лучше, манулы по сишарп скриптам по тематике трансформ, методы подметоды итд. Кватерионы, тригонометрия, интересности
5 427797
>>427422
Кстати, я об этом не подумал, придётся таки рейкастами делать, похоже. Спасибо, анон.
6 427800
>>27797

> придётся таки рейкастами делать, похоже


Там и делать нефиг.

GameObject[] objects;
public GameObject closestObject;

void Start () {
objects = GameObject.FindGameObjectsWithTag ("Object");
}

void Update () {
RaysMode (objects);
}

void RaysMode (GameObject[] objs) {
closestObject = null;
float minDist = Mathf.Infinity;
foreach (GameObject obj in objs) {
RaycastHit hit;
Ray ray = new Ray (transform.position, obj.transform.position - transform.position);
if (Physics.Raycast (ray, out hit))
if (hit.transform.tag == "Object" && hit.distance < minDist) {
closestObject = obj;
minDist = hit.distance;
}
}
}
6 427800
>>27797

> придётся таки рейкастами делать, похоже


Там и делать нефиг.

GameObject[] objects;
public GameObject closestObject;

void Start () {
objects = GameObject.FindGameObjectsWithTag ("Object");
}

void Update () {
RaysMode (objects);
}

void RaysMode (GameObject[] objs) {
closestObject = null;
float minDist = Mathf.Infinity;
foreach (GameObject obj in objs) {
RaycastHit hit;
Ray ray = new Ray (transform.position, obj.transform.position - transform.position);
if (Physics.Raycast (ray, out hit))
if (hit.transform.tag == "Object" && hit.distance < minDist) {
closestObject = obj;
minDist = hit.distance;
}
}
}
2beaverCastorcanadensis.jpg129 Кб, 640x478
7 427806
Насколько разумно создавать гейм менеджер и другие подобные вещи, как синглтоны, вызывая конструктор в get {}? Он не будет сидеть на пустом объекте (в мире), а просто как скрипт. Можно будет гарантировать порядок создания критически важных объектов.

Как в таком случае удобнее загрузить в него префабы, через Resources.Load?
8 427808
Искусственный интелект с пакетом RAIN

Годнiта чi нi?
9 427811
>>27792
Что тебе там не понятно?
10 427813
>>27791
Это тебе не засмеялся-обосрался тред, чтоб по 20 постов в минуту набивать.
11 427814
Анончи,есть одна анимация котика.Как её запустить ровно после пяти секунд после начала сцены?
12 427815
Анончи,есть одна анимация котика.Как её запустить ровно после пяти секунд после начала сцены?
13 427817
>>27815
Coroutine с yield return WaitForSeconds
После чего там же запускаешь анимацию

Или Invoke("zapuskaemKotika", 5)
15 427823
>>27800
А почему такие операции обычно записывают в отдельные функции, а не просто кидают в Update?
16 427824
>>27823
Можешь и просто в апдейт. Просто мне так привычнее, не люблю когда в апдейте насрано (а в больших скриптах обычно так и получается), так что я методы инкапсулирую, по итогу в апдейте строк 5-8 и все они по разным методам лежат.
Короче, мне так чисто для восприятия легче.
Если хочешь — пихай в апдейт, суть не поменяется.
Girls.png490 Кб, 449x401
17 427833
>>27824

> методы инкапсулирую

18 427834
>>27833
Пардон, какой в шараге сленг был, такой в памяти и остался. Мы академиев не кончали.
19 427838
>>27817
Анончик,слушай,я вообще не прогромист.Может ты напишешь этот скриптик для меня,плиз?
20 427839
>>27838
Если ты не погромист и даже это не понимаешь, то нахера тебе это вообще нужно? Только чтобы анимация котика была?
21 427842
>>27839
Именно,только чтобы анимация была.Так ты поможешь?
22 427844
>>27842
Тут одним кодом не поможешь. Тут надо пояснить как аниматор создать, как на объект перенести, как в него анимацию передать (если она вообще есть), как туда передать состояние и т.д.
Короче, волшебного кода, который можно просто скопипастить, не получится.
23 427847
>>27844

>Тут надо пояснить как аниматор создать, как на объект перенести, как в него анимацию передать (если она вообще есть), как туда передать состояние и т.д.


Вообще то,уже это знаю и всё готово.Говорю же,нужно сделать сделать запуск после 5 секунд после начала сцены.
24 427848
>>27847
Окей. И как называется переменная для перехода из состояния "котяра статичен" в состояние "котяра анимирован"?
25 427850
>>27848
Я,конечно,не погромист,но переменные вроде как угодно можно называть.Так что пусть будит "KotikObormotik".
26 427851
>>27850

> но переменные вроде как угодно можно называть


Можно, ага. Только они должны совпадать с теми, что в аниматоре.
Безымянный.jpg19 Кб, 663x465
27 427853
Суп, анон. Щитаю, что нахожусь в скилл-брекете между аппер-интермедиэйт и адвансед, но к сожалению совсем не знаю шейдоры. Чтобы исправить это досадное положение, а поставил себе цель запилить редактор шейдеров не уступающий в качестве знаменитому ShaderForge за 2 недели. И сделать его опенсурсным, конечно. Чтобы взорвать пуканы авторов этого ассета. И разработчиков юнити, конечно. Отношение которых к добавлению важных новых функций в движок характеризуется фразой "пчелы против меда": зачем добавлять бесплатную функцию, если можно получать стабильно шекели из ассет стора? Давайте лучше переделаем пост-эффекты и сделаем новое окошко, в котором можно редактировать анимации! ynuti 2017! революция!

На скрине прогресс за сегодня
blob10 Кб, 271x108
28 427854
>>27851
Ты про эти?
29 427855
>>27854
Не совсем. По Cat_contrl дважды кликни и покажи что откроется.
31 427859
>>27857
Уже лучше. Если просто запускаешь сцену - котяра анимируется? К нему вообще хоть какой-то скрипт привязан?
32 427860
>>27859
Анимируется,один раз проходит анимация сразу после запуска сцены.Никаких скриптов.
33 427862
>>27860

> один раз проходит анимация


А надо чтоб было постоянно?
Если да, то жмаки по файлу анимации и в инспекторе поставь галочку на Loop Time. А потом уже и скрипт добавишь.
34 427863
>>27862
Нинад чтобы постоянно.Только разок после 5 секунд после запуска сцены.
15017009964580.png8 Кб, 271x108
35 427868
>>27863
Лезть в переменные аниматора будет явно надолго, так что давай велосипедить.
1. Если сцена запущена — останови.
2. Сними галочку с аниматора (ту что на пикрилейтеде).
3. Создай C# скрипт, назови его CatAnimation.
4. Открой его в редакторе, удали там вообще всё, до последнего символа. И копипасти туда вот это

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CatAnimation : MonoBehaviour {

Animator animator;

void Start () {
animator = GetComponent<Animator> ();
Invoke ("Animate", 5f);
}

void Animate () {
animator.enabled = true;
}
}

5. Перетяни этот скрипт в инспекторе на тот объект, на котором висит аниматор (скорее всего это и есть твой кошак).

Если всё сделаешь правильно, то заработает.
15017009964580.png8 Кб, 271x108
35 427868
>>27863
Лезть в переменные аниматора будет явно надолго, так что давай велосипедить.
1. Если сцена запущена — останови.
2. Сними галочку с аниматора (ту что на пикрилейтеде).
3. Создай C# скрипт, назови его CatAnimation.
4. Открой его в редакторе, удали там вообще всё, до последнего символа. И копипасти туда вот это

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CatAnimation : MonoBehaviour {

Animator animator;

void Start () {
animator = GetComponent<Animator> ();
Invoke ("Animate", 5f);
}

void Animate () {
animator.enabled = true;
}
}

5. Перетяни этот скрипт в инспекторе на тот объект, на котором висит аниматор (скорее всего это и есть твой кошак).

Если всё сделаешь правильно, то заработает.
image.jpg114 Кб, 433x427
36 427878
Закатился в тред начинающий, но уже имеющий один проект, разработчик. Собрал значит я свою казуальную кликалку на андроид и встал вопрос о компиляции под гейфоны. Уже несколько месяцев пытаюсь накатить виртуалки, хакинтоши, найти способы компиляции под шиндовс, но пока нашёл только один ассет по цене в 100 Бачей. Подскажите может кто находил хороший способ сборки под эпл без мака. Алсо игра висит в гугл плее, но поиграть я в неё могу только с телефона друзей, а хочется на своём родном айфоне позалипать, ибо писал под себя.
37 427891
GOAP анон, ты всё ещё здесь?
Как ты с подобной реализацией навигации для действий реализуешь прохождение через двери требующие открывания?
14650205754350.jpg45 Кб, 600x570
38 427895
Сука блять, какого хуя билд абсолютно пустой сцены весит 35 метров? Это, блять, дефолтный сплэшскрин столько жрёт что ли?
bandicam-2017-08-02-22-46-40-093.gif440 Кб, 1264x532
39 427896
>>27868
Спасибо,анончик.Всё работает как надо.Люблю тебя:3
40 427897
>>27896
Да на здоровье.
А вообще ты какой-то странный. Накатывать юньку только чтобы заанимировать котика — это даже не микроскопом гвозди забивать, это уровнем повыше.
41 427899
>>27897
Мне просто нравиться сцены из ассетиков собирать.А котика я в блендере анимировал.
42 427900
>>27891
GOAP неприменим к играм. Не трать время на ерунду и используй behavior tree
43 427903
>>27824
Спасибо за разъяснения все.
44 427952
>>27800
Это у мобов такое? От этого пекарня не сгорит случайно? Я бы в coroutine, а не в апдейт запихал, на крайняк.
45 427953
>>27952

>От этого пекарня не сгорит случайно?


Как там в 97м?
46 428008
>>27952
Поехал что ли? Там нагрузки хуй да нихуя.
47 428024
>>28008
А на мобилках тоже лагать не будет?
48 428061
>>28024
Ну если у тебя там будет под две сотни мобов на одной сцене, то может и будет.
49 428105
Почему Character Controller с Rigidbody с гравитацией может проваливаться сквозь пол? Пол - платформа с коллайдером, без Rigidbody. Второго коллайдера на плеере нет.
50 428211
>>27800
Как сделать это в 2D?
51 428221
>>28211
Сам догадался уже. Но вот возник более жоский вопрос. Всю ночь гуглил, не смог сделать нормально, рофл.
Как замутить передвижение персонажа в 2D игре с видом сверху, не используя rb?
Пробовал разные варианты через RigidBody2D, но все они очень сильно сказываются на производительности, хотя я мей би ошибку делаю, на всякий случай вот код с использованием rb, если его можно оптимизировать до нужного уровня, то и так сойдет:

using System.Collections;

using UnityEngine;

public class CharacterController2D : MonoBehaviour {
public float speed = 7f;
private Rigidbody2D rb;

void Start () {

rb = GetComponent<Rigidbody2D>();
}

void Update () {

float deltaX = Input.GetAxis("Horizontal");
float deltaY = Input.GetAxis("Vertical");

Vector2 movementXY = new Vector2 (deltaX, deltaY);
movementXY = Vector2.ClampMagnitude(movementXY, speed);
movementXY = speed;
movementXY
= Time.deltaTime;
rb.MovePosition (rb.position + movementXY);

}
}

51 428221
>>28211
Сам догадался уже. Но вот возник более жоский вопрос. Всю ночь гуглил, не смог сделать нормально, рофл.
Как замутить передвижение персонажа в 2D игре с видом сверху, не используя rb?
Пробовал разные варианты через RigidBody2D, но все они очень сильно сказываются на производительности, хотя я мей би ошибку делаю, на всякий случай вот код с использованием rb, если его можно оптимизировать до нужного уровня, то и так сойдет:

using System.Collections;

using UnityEngine;

public class CharacterController2D : MonoBehaviour {
public float speed = 7f;
private Rigidbody2D rb;

void Start () {

rb = GetComponent<Rigidbody2D>();
}

void Update () {

float deltaX = Input.GetAxis("Horizontal");
float deltaY = Input.GetAxis("Vertical");

Vector2 movementXY = new Vector2 (deltaX, deltaY);
movementXY = Vector2.ClampMagnitude(movementXY, speed);
movementXY = speed;
movementXY
= Time.deltaTime;
rb.MovePosition (rb.position + movementXY);

}
}

52 428222
>>28221

>\t


)))))

using System.Collections;
using UnityEngine;

public class CharacterController2D : MonoBehaviour {
public float speed = 7f;
private Rigidbody2D rb;

void Start () {

rb = GetComponent<Rigidbody2D>();

}

void Update () {

float deltaX = Input.GetAxis("Horizontal");
float deltaY = Input.GetAxis("Vertical");

Vector2 movementXY = new Vector2 (deltaX, deltaY);
movementXY = Vector2.ClampMagnitude(movementXY, speed);
movementXY = speed;
tmovementXY = Time.deltaTime;
rb.MovePosition (rb.position + movementXY);
}
}

52 428222
>>28221

>\t


)))))

using System.Collections;
using UnityEngine;

public class CharacterController2D : MonoBehaviour {
public float speed = 7f;
private Rigidbody2D rb;

void Start () {

rb = GetComponent<Rigidbody2D>();

}

void Update () {

float deltaX = Input.GetAxis("Horizontal");
float deltaY = Input.GetAxis("Vertical");

Vector2 movementXY = new Vector2 (deltaX, deltaY);
movementXY = Vector2.ClampMagnitude(movementXY, speed);
movementXY = speed;
tmovementXY = Time.deltaTime;
rb.MovePosition (rb.position + movementXY);
}
}

AlDLaKV2Wik - копия.jpg69 Кб, 1132x353
53 428223
>>28222
да ёбаный в рот, ебучая разметка
Надо было сразу так сделать.
54 428229
>>427710

>Теперь понял, это примерно как мой второй вариант. Меня в этом варианте смущает сложность контроля за перемещением, ведь после начала движения уже никакое действие не контролирует процесс, прерывания и достижение результата это опосредовано делается в прекондишене занятия ковра


как ты делаешь то. у тебя чтоли каждый тик ИИ не пытается выполнить текущее действие? только выполняет готовый план? на каждом тике при попытке исполнить действие же можно в разные ифы лезть.

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


у тебя же только один текущий экшон. если экшон вообще требует перемещения то он и рулит. если ему рулить ненадо то ИИ делает что-то глобальное.

>>27808
да так себе он. хороший бихейвор три редактор, но плохая навигация.

>>27853
в одно рыло это не выглядит реальным и за 3-4 месяца. как сделать то планируешь?

>>27891
укатывался. я то часто в тред заглядываю, но реагируютолько если показывают что-то интересное.

>Как ты с подобной реализацией навигации для действий реализуешь прохождение через двери требующие открывания?


ну это ты загнул. пока никак. в моем навмеше пока что поломана сериализация для зон которые бы ссылались на конкретные объекты, как починю можно было бы и такое сделать. чтобы была возможность иметь зоны, на которые ссылался бы компонент, который бы переключал их доступность.
но тут это можно разве что если "попасть куда-то" является самим действием. например было бы действие "попасть в склад номер пять", у него было бы прекондицией открытие двери, тогда кнопка открывающая дверь бы генерировала внешнее действие открывающее путь только на этот склад. но если делать хитрожопое что-то например "сломать стену чтобы схватить за задницу сзади", то тут мне придется сильно глубоко лезть в навигацию чтобы такое сделать.
55 428233
>>27853
вообще, вот интересное что-то пилишь. правда шейдеры лучше всетаки изучи хоть как-то. там столько мистической тайной хуйни что две недели можно их просто крутить туда-сюда чтобы хоть как-то разобраться.

я вот тоже что-то покажу из этой категории. делаю по человечески свой простенький генератор террейна, но чтобы у него был нодовый редактор который бы работал внутри маски биома.
интересно когда уже в юнити сделают сериализацию абстрактных коллекций. сериализовать ссылки на ресурсы юнити в нодах даже не знаю как.
56 428234
>>28233
скриншоты забыл
57 428237
>>28105

> Character Controller


> с Rigidbody


Ты либо крестик сними, либо трусы надень.
Что-то одно выбери, короче.
58 428261
>>28229

>как ты делаешь то


Я использую reGOAP с парой мелких допилов.

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

>на каждом тике при попытке исполнить действие же можно в разные ифы лезть


И в каждом действии контролировать перемещение? Со временем охуеешь.

>ну это ты загнул


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

В общем подумаю ещё между выносом навигации и реактивным планером внутри действийвсё равно наверное буду пилить макропланер для сквадов
59 428268
>>28221

> Как замутить передвижение персонажа в 2D игре с видом сверху, не используя rb?


Через трансформ, ебать.
60 428294
>>28268
Через трансформ эффект хуёвый, если на препятствие пойти. Он каг бы не останавливается, а идёт туда и отбрасывается назад из-за коллайдера.
61 428296
>>28294
Лэйтапдейт используй.
62 428301
>>28237
Спасибо, уберу контроллер.

Алсо, я тут думаю сделать дамаги и прочие взаимодействия через интерфейсы и GetComponent. Например, интерфейс IDamageable {void TakeDamage(int amount)}, IPickable и т.п. Это кажется более гибким, чем наследовать все классы, которые делают какое-то взаимодействие, от одного.

ОнТриггер/ОнЧегоНибудь()
{
var health = (Idamageable)GetComponent(typeof(IDamageable));
if(health != null)
health.TakeDamage(amount);
}

Норм способ, или раковая задумка, и существуют более правоверные способы?
63 428305
>>28301

> Спасибо, уберу контроллер.


Я бы убрал риджидбади, если тебе только и надо что ходить и взаимодействовать без особого физона, но то уже сам смотри.
64 428419
>>28301

> и существуют более правоверные способы?


Других способов нет. Либо ты делаешь общий родительский класс под все, у чего есть здоровье, либо интерфейс. О, точно, мне же надо как-то ломать всякую мебель и прочее говно. Пойду прикручу к своей йобе.
65 428430
>>28419

> Других способов нет. Либо ты делаешь общий родительский класс под все, у чего есть здоровье, либо интерфейс.


Ты сильно недооцениваешь местных повелителей костылей.
66 428517
>>28430
Ну хуй знает, что еще. Проверять тег геймобджекта, и в функции на атакующем персонаже в List<> хранить значение здоровья?
67 428527
>>28301
Правильно, но проще так: damagable = GetComponent<IDamagable>();
68 428531
>>28305
Rigidbody надо чтобы физика была в курсе что эти коллайдеры динамические.
69 428590
>>28301
ECS
C
S
70 428729
У Юнити есть стандартизированные даты обновлений? Когда они будут выпускать 6.0?
71 428733
>>28729
6.0 не будет. Вместо него 2017, который уже выпустили.
72 428740
>>28733
А до этого была одна версия каждый год?
73 428753
>>28740
Да, предыдущая 5-ая версия была собрана в 5-ом году от рождества Христова.
Безымянный.png49 Кб, 793x473
74 428774
>>28233
Да я помню твои посты лол. Помню охуевал от твоих скиллов.
Теперь вот тоже хочу сделать что-нибудь эдакое. Ну про уровень shader forge я конечно-же пошутил. Это просто так, великая цель для мотивации.
Апдейт. Как оказалось, в юнити уже есть свой фреймворк для создания графов. И именно на нем сделан и редактор анимаций. Если кому интересно, то интро можно найти тут http://unity3de.blogspot.ru/2015/08/reveal-unknown-graph-and-graphgui-class.html. Остальное в дизассеблированных исходниках. Там ничего особенно, но можно сократить время на несколько дней.

Теперь в принципе осталось-только придумать как сгенерировать шейдоры из графа спиздить из shader forge. Пока думаю о чем-то вроде темплейтов
75 428810
Сап, аноны.
Есть пустой gameObject, к которому прицеплен скрипт, вращающий этот самый gameObject с помощью gameObject.transform.Rotate().
У этого пустого объекта есть два child: сфера и text mesh.
Когда я вращаю родительский объект, то текст слегка убегает от сферы, примерно на пару градусов. Когда вращение останавливается, сфера снова догоняет текст.
Пробовал то же самое с кубом вместо текста, ведет себя точно так же.
Чому так?
76 428823
>>28810

> Когда я вращаю родительский объект


Как вращаешь? Ручками на сцене? Через скрипт?
Ты давай подробнее, по твоему посту хер что поймёшь.
77 428824
>>28823

>вращающий этот самый gameObject с помощью gameObject.transform.Rotate()

78 428827
>>28824
А, да, пардон, только проснулся.
Всё равно тут надо знать в каких координатах текст и сфера находятся относительно пустого объекта, что там у тебя в ротейте и т.д.
Давай со скринами и/или видосом.
79 428838
>>28827
В общем я неправильно описал проблему.
На сфере с помощью Vectrocity нарисована разметка трехмерными линиями. И эта разметка отстает при вращении сферы, дочерние объекты не при чем.
2017-08-0319-35-57.mp42,2 Мб, mp4,
1280x720, 0:04
80 428839
>>28810

>примерно на пару градусов



Запили шебм, мне даже интересно стало. Может это из-за Rigidbody?
81 428841
>>28839
>>28838
Ошибся я, сорян. Это Vector Lines как-то с лагом рендерятся.
82 428861
На собеседовании дали задание - создать UI на юнити.
Структура - главное меню, страница просмотра изображения, страница воспроизведения видео, etc.
Поясните, что они подразумевают под страницей?
Шарп хорошо знаю, но вот юнити пока не очень, UI пилил, но вот что за страницы, так и не понял.
83 428867
>>28861

> Поясните, что они подразумевают под страницей?


Ну это тебе лучше знать, хрустальный шар тут у всех давно сломался.
А вообще весь UI в юньке есть изначально.
84 428872
>>28867
Страница просмотра видео же, так у меня написано в задании, но вот что это за страница, и как она должна выглядить, я так и не понял.
85 428873
>>28872
Ну, видимо, весь канвас, либо его часть. Юнька вполне способна напрямую хавать и рендерить видео.
86 428875
>>28873
Т.е. это должен быть объект в пространстве, который будет воспроизводить видео?
Спасибо за помощь, анон.
Unity 2016-12-25 16-11-11-52.png220 Кб, 1144x818
87 428876
покажу старое но клевое. кстати есть ли у кого какие клевые идеи как сделать прыжки на навмеше? у меня есть сорт оф споты для прыжков на подобии старых прыжков юнити, но это имеет свои минусы.

>>28261

>Я использую reGOAP с парой мелких допилов.


а я кстати его не читал ещё. я свой гоап то с нуля написал. как там организовали хранение стейтов мира?

>И в каждом действии контролировать перемещение? Со временем охуеешь.


так не во всех. у меня например исполнение действий организовано с некоторой иерархией с ГОАП и контролером. у ГОАП в экшоне есть булл будет ли это действие контролировать перемещение, этот бул доступен через менеджер-прослойку контролеру, контролер ещё внутри свой небольшой менеджер стейтов имеет, какая анимация чего делает, чтобы знать когда анимация прерывается. например текущий экшон "поднять предмет", в действии описано "топи туда, если ты уже там то подбирай предмет", в итоге на каждом тике ИИ он топит куда сказали, а когда доходит то предмета идет в менеджер-прослойку и говорит что хочет поднять вот это. тогда уже контролер в своем менеджере анимаций переключает флаг что его активное действие это поднятие предмета и это действие и верхнюю и нижнюю половину тела для этого требует. а ГОАП тем временем через менеджер ждет когда это действие из активного либо провалится, либо завершится. когда анимация завершается в конце триггер что хопа действие завершено которое переключает статус в менеджере анимаций. а потом уже и ГОАП на следующем апдейте видит что флажок переключен на нужный, завершает через менеджер анимацию целиком ставя её на не активную и говорит что действие выполнено(или провалено). проверять кондиции вроде "есть ли предмет", кстати, было довольно плохой идеей, потому что он появляется в инвентаре в момент когда ИИ рукой его хватает, но ему ещё надо распрямится. отсюда и наличие менеджера анимаций, который все упрощает.
а действия вроде "перезарядка" никаких перемещений не требует, но занимает верхнюю половину тела. в итоге пока действие делается, менеджер следует своей активной задаче и управляет перемещением контролера. в итоге контролер и перезаряжается и бегает по укрытиям сразу, а в действии ГОАП описано только то что надо сделать. начать перезаряжатся, ждать когда завершится анимация в конце которой в случае успеха анимации отнять из инвентаря одну обойму.
на время выполнения действий отключаю обновление планирования, чтобы ИИ не подумал что "ооо да у меня же предмет нужный в руке надо бы его использовать" пока он ещё не распрямился после его поднятия, чтобы текущее активное действие было залочено. прерывание действий пока не сделал, но это будет не так и сложно.
пока что лучше не придумал как сделать подобную иерархию, вроде решает все проблемы.

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


А я бы так не делал. а вдруг дверь будет требовать ключ? вообще технически можно глобальную навигацию сделать через ГОАП. вот у тебя есть набор комнат, некоторые комнаты требуют предмет. при перемещении из комнаты А в Б проверяем через ГОАП весь путь, если путь чист то строим путь через навмеш и идем. если надо ключ то проверяем путь черезе ГОАП уже до комнаты с ключем. один хуй поиск пути на навмеше слабо отличается от поиска пути по нодам ГОАП.

>>28774
Лол, надо же, меня помнят и читают.

>Как оказалось, в юнити уже есть свой фреймворк для создания графов.


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

>Теперь в принципе осталось-только придумать как сгенерировать шейдоры из графа


Я кстати читал пару имплементаций таких редакторов. он в итоге был чем-то вроде визуального текстового редактора. когда тыкал кнопку "получить шейдор" то оно там задавало целевым переменным имена, подставляло их на текстовые заготовки, соединяло все заготовки в выбранном порядке и хопа шейдор готов. создание такого выглядит каким-то особым сортом пердолинга, но выглядит достижимым.
Unity 2016-12-25 16-11-11-52.png220 Кб, 1144x818
87 428876
покажу старое но клевое. кстати есть ли у кого какие клевые идеи как сделать прыжки на навмеше? у меня есть сорт оф споты для прыжков на подобии старых прыжков юнити, но это имеет свои минусы.

>>28261

>Я использую reGOAP с парой мелких допилов.


а я кстати его не читал ещё. я свой гоап то с нуля написал. как там организовали хранение стейтов мира?

>И в каждом действии контролировать перемещение? Со временем охуеешь.


так не во всех. у меня например исполнение действий организовано с некоторой иерархией с ГОАП и контролером. у ГОАП в экшоне есть булл будет ли это действие контролировать перемещение, этот бул доступен через менеджер-прослойку контролеру, контролер ещё внутри свой небольшой менеджер стейтов имеет, какая анимация чего делает, чтобы знать когда анимация прерывается. например текущий экшон "поднять предмет", в действии описано "топи туда, если ты уже там то подбирай предмет", в итоге на каждом тике ИИ он топит куда сказали, а когда доходит то предмета идет в менеджер-прослойку и говорит что хочет поднять вот это. тогда уже контролер в своем менеджере анимаций переключает флаг что его активное действие это поднятие предмета и это действие и верхнюю и нижнюю половину тела для этого требует. а ГОАП тем временем через менеджер ждет когда это действие из активного либо провалится, либо завершится. когда анимация завершается в конце триггер что хопа действие завершено которое переключает статус в менеджере анимаций. а потом уже и ГОАП на следующем апдейте видит что флажок переключен на нужный, завершает через менеджер анимацию целиком ставя её на не активную и говорит что действие выполнено(или провалено). проверять кондиции вроде "есть ли предмет", кстати, было довольно плохой идеей, потому что он появляется в инвентаре в момент когда ИИ рукой его хватает, но ему ещё надо распрямится. отсюда и наличие менеджера анимаций, который все упрощает.
а действия вроде "перезарядка" никаких перемещений не требует, но занимает верхнюю половину тела. в итоге пока действие делается, менеджер следует своей активной задаче и управляет перемещением контролера. в итоге контролер и перезаряжается и бегает по укрытиям сразу, а в действии ГОАП описано только то что надо сделать. начать перезаряжатся, ждать когда завершится анимация в конце которой в случае успеха анимации отнять из инвентаря одну обойму.
на время выполнения действий отключаю обновление планирования, чтобы ИИ не подумал что "ооо да у меня же предмет нужный в руке надо бы его использовать" пока он ещё не распрямился после его поднятия, чтобы текущее активное действие было залочено. прерывание действий пока не сделал, но это будет не так и сложно.
пока что лучше не придумал как сделать подобную иерархию, вроде решает все проблемы.

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


А я бы так не делал. а вдруг дверь будет требовать ключ? вообще технически можно глобальную навигацию сделать через ГОАП. вот у тебя есть набор комнат, некоторые комнаты требуют предмет. при перемещении из комнаты А в Б проверяем через ГОАП весь путь, если путь чист то строим путь через навмеш и идем. если надо ключ то проверяем путь черезе ГОАП уже до комнаты с ключем. один хуй поиск пути на навмеше слабо отличается от поиска пути по нодам ГОАП.

>>28774
Лол, надо же, меня помнят и читают.

>Как оказалось, в юнити уже есть свой фреймворк для создания графов.


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

>Теперь в принципе осталось-только придумать как сгенерировать шейдоры из графа


Я кстати читал пару имплементаций таких редакторов. он в итоге был чем-то вроде визуального текстового редактора. когда тыкал кнопку "получить шейдор" то оно там задавало целевым переменным имена, подставляло их на текстовые заготовки, соединяло все заготовки в выбранном порядке и хопа шейдор готов. создание такого выглядит каким-то особым сортом пердолинга, но выглядит достижимым.
88 428877
>>28875

> Т.е. это должен быть объект в пространстве, который будет воспроизводить видео?


Ну блин, я ТЗ полностью не видел, но "UI с воспроизведением видео" звучит так, что надо тупо рендерить видео.
90 428880
>>28879
Нууу, и что не ясно? Вот меню с кнопочками: "посмотреть картинку", "посмотреть видосик", "покрутить ползунки".
Как хуйнуть картинку (видосик делается почти так же) на панель — думаю, знаешь, раз на такую работу метишь. Про ползунки вообще молчу.
91 428881
>>28880
Не ясно было, что подразумевают под страницей. Как это делается, знаю. Спасибо, что пояснил.
!gOlrx2AM8I 92 428955
>>28861 >>28867 >>28872
>>28877 >>28879 >>28880
это классика, это знать надо
однажды подают мне значит такое вот же ТЗ
типа, шарики в хуюнити отрисовывай, мы тебе 20к заплатим, тыж спец по графену вроде
а кроме меня там в команде еще погромист и руководитель группы, и тот погромист то вообще нахуй студент.
ну делаю ТЗ, прихожу к погромисту, говорю: вот тебе кнопочки, чо там с прогой, давай на листенеры навешивай функции, а он, пацаны, достаёт значит свой нетбук и показывает скрипт на js под веб, типа, ЯЗДЕЛЯЛЬ.
пиздос, там дедлайны приближаются, я начинаю ему объяснять что в юнети значит component-entity-system, понимаю что он нихуя не понимает, сажусь писать сам
И ТУТ ХУЯК, ОКАЗЫВАЕТСЯ наша контора-заказчик ПРИНЦИПИАЛЬНО, блять, не использует продукты от майкрософт, их всех в детстве билл гейтс покусал похоже, причем сука не просто всюду линуксов понаставили, но даже У НИХ ПРИНЦИП ПРОТИВ СИ и его вариаций, ГОСПОДЬ ВСЕМОГУЩИЙ ЭТАЖИ ПРОДУКТ МАЙКРОСОФТ ТЫ ЩО ДЕЛАЕШ ОКАЯННЫЙ.
а в js я знаю примерно столько чтобы было достаточно div'ы на сайтике скрывать/показывать. var, блять, хуяр! что за нетипизированное говнище. кое-как заговнокодил всё это дерьмо, ну тут классическое У НАС ИЗМЕНИЛАСЬ КОНЦЕПЦИЯ (х2).
доебало пиздец короче. сейчас вообще реквесты потипу пикрелейтед идут.
до сих пор не заплатили.
самарец не человек
93 428970
>>28955

>var, блять, хуяр! что за нетипизированное говнище.


В книге читал, что в юнити запили типизацию под js, энивей, автор рекомендовал юзать шарп.
94 428987
>>28970

> запили типизацию под js


она в яваскрипте как тема в ТВГ. она есть и можно делать по теме, а можно и не по теме. приписывать var raspidor : GameObject по острому желанию можно.

> энивей, автор рекомендовал юзать шарп


а в монодевелопе js-ников вообще публично унизили, сломав им всплывающие подсказки для автонабора строк.
95 429019
>>28774
даа, это они там накрутили. почитал немного. так правда и не нашел пока как в контекстное меню что-то добавлять свое даже после того как в ILSpy расковырял. надо будет потом внимательно прочитать, я даже не знал что есть такая хуйня как EditorUtility.DisplayCustomMenu например. а то я свое контекстное меню уже навелосипедил.
96 429021
>>28955

>без Шарипов


Валяюсь.
97 429049
>>29019

>так правда и не нашел пока как в контекстное меню что-то добавлять свое


Никак. меню захардкожено в protected ShowContextMenu() в OnGraphGUI() в классе GraphGUI. Единственный вариант, это перегрузить OnGraphGUI() и копировать туда весь код из оригинала, кроме меню
Ну это явно не для публичного использования делалось
98 429091
>>28987
Монодевалоп и меня унижает. Регулярно крашится, ломается копи-паст, и еще кое-чего.
99 429155
>>29091
Специальная бесплатная редакция студии для кириллов поставляется прямо с юнити. Нет, хочу опенсорс какашку кушать. И это разработчики, блядь!
Хотя лично у меня крашится сам юнити во время дебага, студия живее всех живых.
100 429157
>>28876
Мда, охуительная история.
Вспомнил случай, когда парень откликнулся на вакансию юнитиёба, ему дали тестовое задание — сделать прототип тауэр дэфэнс на юнити.
Он сделал, выслал, а ему ответили, мол, всё хуйня, вы не сделали игру, вы поработали с движком, а уже движок сделал игру. Он отвечает "ну что просили, то и сделал, давайте скорректируем ТЗ и доработаем, если что-то не так", на что получил ответ "нам нужна игра на юнити, но сделанная самостоятельно, а не движком. а вы этого не сделали, вы сделали на юнити".
Можно погуглить, это вроде на юнити3д.ру было.
101 429159
Это >>29157 сюда >>28955
102 429165
>>28876

>как там организовали хранение стейтов мира?


Словарь<,>

>"поднять предмет", в действии описано "топи туда, если ты уже там то подбирай предмет", в итоге на каждом тике ИИ он топит куда сказали, а когда доходит то предмета идет в менеджер-прослойку и говорит что хочет поднять вот это



Не совсем уловил этот момент. У тебя действие поднятия остаётся активным, пока ты топишь? Завершается по инициализации движения и ставит в очередь действие поднятия?

В классическом ГОАП они выполняются чётко по порядку, следуя установленному плану. Ни одно действие особо не волнует что будут делать другие, оно просто даёт какой то результат и имеет пререквизиты.

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

>а вдруг дверь будет требовать ключ?


Так я написал же, что отдельное действие необходимо если есть различные способы преодоления двери. Например, АИ может всё так же проходить через дверь, если у него есть ключ, и искать другие пути, если нет.
Если вариантов ещё больше, то стоит сделать отдельный стейт (DoorOpen, true), действия ведущие к нему, и строить навигацию как последовательность дверей и участков пути между ними.

>прерывание действий пока не сделал, но это будет не так и сложно.


Я при старте действия делаю динамический список стейтов мира - прерывателей с учётом стейта цели. Пока работает хорошо.
103 429171
>>29165

>Не совсем уловил этот момент. У тебя действие поднятия остаётся активным, пока ты топишь? Завершается по инициализации движения и ставит в очередь действие поднятия?


действие поднятия предмета остается активным пока ИИ топит к предмету. оно отвечает и за перемещение к предмету и за его поднятие. на мой взгляд мало смысла вообще разделять перемещение к предмету и поднятие предмета. действия которые стопроцентно будут идти одно за другим не должны разделятся. вообще я кстати пробовал разделять. у меня была концепция "кучка предметов", и на каждую кучку было процедурное действие "подбежать к кучке номер такой" и каждая кучка ещё действия возвращала связанные с тем какие предметы в ней и у каждого поднятия был рекваермент "быть у кучки такой-то". потом репу почесал и задумался нахуй такая конструкциям нужна.

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


да, вероятно могут. но вообще я пока слабо могу представить какие проблемы не могут быть решены через это. пока есть прослойка которая сообщает ГОАП о статусе действия и эта-же прослойка лимитирует паралельные действия за пределами ГОАП. может быть если буду делать возможность использования техники для ИИ что-то пойдет не так, или когда появятся действия не связанные с ГОАП требующие много времени(лазанье по лестнице например). но в любом случае все это выглядит решаемо.
по моему этот вариант куда лучше чем эта боль с попыткой совместить перемещение и действие. этак на каждый пердеж будет пара вариантов. вроде "перезарядка", "перезарядка на бегу", "перезарядка бегая за укрытие" и прочее. ГОАП конечно здорово, но забивать им гвозди тоже не стоит.
104 429188
>>29171

>на мой взгляд мало смысла вообще разделять перемещение к предмету и поднятие предмета


Главное преимущество в том, что можно сделать женерик действие перемещения и разгрузить остальные действия.

>по моему этот вариант куда лучше чем эта боль с попыткой совместить перемещение и действие. этак на каждый пердеж будет пара вариантов. вроде "перезарядка", "перезарядка на бегу", "перезарядка бегая за укрытие" и прочее.


Да, разбираться в этой куче добра со временем станет очень не весело.
Но я пожалуй откажусь от параллельного планирования: буду просто инициировать движение действием и тут же запускать реплан с учётом того что (isOnMove, true). И при завершении движения вызвать коллбек, прерывающий текущий план и пытающийся прервать действие.
Останется только подумать как лучше запилить перывание движения отдельными действиями. Наверное просто для всех действий, требующих остановки, добавлю процедурный прекондишн, сравнивающий приоритет цели, вызвавшей движение и приоритет прерывателя.
105 429205
>>29188

>Главное преимущество в том, что можно сделать женерик действие перемещения и разгрузить остальные действия.


да как-то оно не выглядит преймуществом. перемещение до нужной точки один хуй отдается на откуп прослойке между ГОАП и контролером, в имплементации действия движение в итоге задается парой строчек. там же получается в итоге куча вариаций "иди в точку 1", "иди в точку 2", "иди в точку дохуилион". в реГОАП написано что есть обратный поиск, так что разумеется количество вариантов почти похуй, но тут можно и напортачить с флагами в пререкваерментах действий требующих нахождение рядом с нужной позицией. какая-то излишняя комплексность для передачи одного булеана. впрочем работать будет, да.

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


я бы так стал делать разве что заранее известны все варианты перемещения ИИ и их немного. если он в начале просто бегает туда-сюда то это ещё выглядит разумным, но если ИИ начнет прыгать на джетпаке, скакать по стенам, делать сальто и прочее то это уже не кажется таким уж разумным вариантом. ещё хуже эта схема выглядит если ИИ может менять мобильность. например ногу оторвало роботу, лежит на земле, но стреляет. что, подчищать у него варианты действий чтоли?
Аноним 106 429218
Скрины старые. Маты нормально не настроены.
Ммм... mesh-ы потерпели изменения, но я буду дорабатывать их. Ну там... интерьер добавлю и тд.
sage 107 429223
>>28955
Хипстер-контора какая то. Принцип против микрософт и жабоскрипт везде.
108 429240
>>29205
ГОАП обычно подразумевает обратный поиск, поэтому необходимая точка берётся из следующего действия.
Ещё одно преимущество вынесения действия перемещения - возможность добавления различных вариантов перемещения. Например, АИ может идти/бежать/ползти, что будет делать тремя разными действиями со своими прекондишенами. В твоём варианте надо будет в каждом экшене, требующем перемещения делать ифы, выбирающие один из способов перемещения.

>например ногу оторвало роботу, лежит на земле, но стреляет. что, подчищать у него варианты действий чтоли?


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

Например, за АИ-лесорубом гонится лесной нёх, планер берёт цель спасения, которую реализует укрытим в убежище, для чего необходимо оказаться в убежище -> инициируется перемещение, действие завершается. Планер в это время строит новый план, учитывая, что АИ перемещается и конечная цель обладет приоритетом Х.
Но во время бега у него повышается уровень жажды и становится доступной цель удовлетворения биопроблем с приоритетом У, удовлетворить которую он может выпив из фляги в инвентаре, остановившись на месте.
Действие питья требует прерывания активного движения, поэтому в его процедурном прекондишене мы сравнивает приоритеты Х и У, и либо выполняем текущий план, либо инвалидируем и продолжаем движение.
При этом вообще не важно идёт/бежит/летит/телепортируется лесоруб - навигацией занимается другой блок, от которого требуется только посылать коллбек о завершении движения и обрабатывать прерывание.

Робот из примера выше просто будет иметь стейт (CanMove, false), который будет учитываться планером.
109 429251
>>29240

>В твоём варианте надо будет в каждом экшене, требующем перемещения делать ифы, выбирающие один из способов перемещения.


зачем? метод перемещения диктуется глобально. то есть если мы крадемся то вообще всё перемещение будет украдкой. а если мы бегаем то все перемещение будет бегом. какие-то сложные варианты вроде "мы быстро подбегаем к медведю но остаток проходим тихо-тихо" легко описывается глобальным "стелс". где если мы не в радиусе обнаружения врагов то бежим, если в радиусе то ползем. какая вообще ситуация возможна когда ГОАП должен руководить методом перемещения?

>Не пойму суть проблемы? То что он лежит на земле никак не должно мешать стрелять.


>Робот из примера выше просто будет иметь стейт (CanMove, false), который будет учитываться планером.


ошибся. не действий. целей. часть целей перестает вообще быть валидными же. иметь много наборов целей под каждое состояние мобильности?

я уже начинаю представлять слабо твой вариант имплементации. начало движения это сразу успешное выполнение движения чтобы пока оно шло делалось сразу следующее действие? а как тогда будешь менять цель движения, если требуется поменять маршрут, но не действие? например действие "сесть в укрытие", но пока идешь до укрытия оно перестает быть валидным.
110 429253
>>29157
Нашёл, если кому интересно.
http://unity3d.ru/distribution/viewtopic.php?f=111&t=18479
111 429283
>>29251

>метод перемещения диктуется глобально


Но планировщик должен решать как именно мы перемещаемся.

>часть целей перестает вообще быть валидными же


Да, и отметутся планером. У робота без ног останется цель заниматься патрулём, просто она никогда не активируется.

>начало движения это сразу успешное выполнение движения чтобы пока оно шло делалось сразу следующее действие?


Не следующее действие, а вообще другой план. Так что это будет ближе к провалу действия. Здесь нужно расширение терминологии.

>а как тогда будешь менять цель движения, если требуется поменять маршрут, но не действие?


Прокладкой маршрута занимается навмеш же. Если ты имел в виду другие действия, требующие перемещения, то для них нужна такая же проверка как для действий с остановкой: побеждает наивысший приоритет.

>например действие "сесть в укрытие", но пока идешь до укрытия оно перестает быть валидным.


Этот вариант я упустил. Для этого можно сделать цель трансформом, а не точкой и периодически менять точку назначения навмеш агента. Если трансформ вдруг стал нуллом(сенсор укрытий инвалидировал укрытие например) - остановка и реплан.

Если собрать всё вмнесте, то схема примерно такая:
- инициируем движение и отметаем этот план(но без занесения в блеклист, если мы занимаемся подобным)
- пока движение активно, выполняем менее приоритетные действия, не взаимодействующие с перемещением
- если в плане появляется новое действие требующее перемещения, сравниваем приоритеты целей и либо принимаем новый план с новым перемещением, либо отметаем его(желательно занося в блеклист на какое то время)
- при окончании движения прерываем текущий план, если его цель имеет меньший приоритет, чем цель движения, и пытаемся прервать действие. В случае прерывания после реплана мы по идее:3 вернёмся к плану, инициировавшему изначальное движение
112 429323
Впорос к продвинутым или тем кто таковыми себя считают
Как много сложной математики вы использовали в разработке игр? Было ли что-то не из школьных векторов? Матрицы, теория графов? Пригождалось за знание кватернионов? Вообще, какие разделы математики приходится использовать, не считая те что в школе проходят?
113 429324
>>29323
Смотря что делаешь. Если какую-нибудь мобильную тыкалку а-ля "три в ряд", то там математики считай что нет. В шутанах от первого лица - тоже.
А начнёшь писать свой физон, например, вот там уже начинается.
114 429350
>>29324
А для шейдеров?
115 429357
>>29350
Там вектора, градусы, косинусы-хуёсинусы, матрицы. Ничего особо сложного. Хотя при желании можно и в дебри залезть.
code.jpg210 Кб, 1481x775
116 429393
>>29323
Матрицы, немного тригонометрии. О теории графов знаю только из детских книжек про минимальное количество цветов на карте и обход графа одним росчерком.
Но я кодил узкоспециализированные функции, где все это нужно и ИРЛ, в обычном коде, манипулирующем gameObject'ами, только векторная алгебра, которую надо представлять очень хорошо, иначе заебешься.
Что такое кватернионы в курсе (вчера погуглил), как конкретно они используются в юньке - хз, только в общих чертах знаю. Хотя хватает.
117 429411
Ребят, помогите плиз найти ошибку в коде.
118 429425
>>29411
Ты дурак что ли, э?
119 429431
>>29425
Ну да, а что?
120 429434
>>29431
Да ничего.
121 429461
>>29393
Слушай, а если в твоём коде везде дабл заменить на флоат — всё к хуям сломается? Я просто в юньке дабл никогда не юзал.
122 429465
>>29240

>Например, за АИ-лесорубом гонится лесной нёх, планер берёт цель спасения


Вот тут-то и проблема. Планер не должен "брать" никаких целей. Планер должен спланировать последовательность действий, которая приводит к заданному конечному состоянию. Суть планера в том, что эта последовательность теоретически очень большая, и суть планера в переборе и нахождении наиболее оптимальной (короткого) цепочки действий.
А ГОАП это внебрачный сын простой utility-системы и каких-нибудь state machine. Планер ему там нахуй не всрался по большому счету. Только лишний балласт
123 429488
>>29461
Дабл для точности. Не должно сломаться, наверное, просто решил с запасом взять, у меня там расстояния в солнечной системе в метрах фигурируют.
124 429493
>>29465

>Планер не должен "брать" никаких целей.


Схуяли? Цель - желаемое состояние мира, планер подбирает последовательность действий, которые переведут текущее состояние мира в целевое.
Планер должен брать самую приоритетную цель.
ФСМ вообще далеко, потому что для каждого действия нет чётко определённых переходов.
Может ты что то путаешь?
125 429506
>>29493
Хуй знает о чем вы спорите, но с точки зрения здорового программирования выбором цели и проложением маршрута должны заниматься две разные сущности.
126 429513
Народ объясните в двух словах. Нейросети это, как я понимаю, куча одинаковых объектов, с универсальными классами, способные взаимодействовать, классифицированные по типам: база данных, оператор, какая то хуйня. Верно ли я понимаю концепцию нейросетей или посложнее будет?
127 429524
>>29506
Проложением маршрута будет заниматься навмеш. Да в любом другом случае слабо представляю как это можно с чем то совмещать
128 429527
>>29513
Нейрон в нейросети это просто функция, принимающая значение в зависимости от вектора аргументов.
Вся нейросеть это пирамида, где ты последовательно преобразуешь овер 9000 значений в одно единственное, которое дает тебе некоторую информацию.
1.png68 Кб, 742x621
129 429645
>>29283

>Но планировщик должен решать как именно мы перемещаемся.


но зачем? вообще ты как-то решаешь планированием больше задач чем следует. у тебя как будто отсутствует концепция глобальных стейтов ИИ. можно же сделать изначально несколько глобальных стейтов например по уровню встревоженности. "спокойный / встревоженный / набрасывается" например. где стейты имели бы разные наборы экшонов, меняли паттерн перемещения, являлись модификатором для трешхолда некоторых целей. а планирование нужно только для построения комплексных планов из последовательности самих действий, чтобы ИИ не залип на чем-то элементарном.

>Этот вариант я упустил. Для этого можно сделать цель трансформом, а не точкой и периодически менять точку назначения навмеш агента. Если трансформ вдруг стал нуллом(сенсор укрытий инвалидировал укрытие например) - остановка и реплан.


описывать точку пути трансформом выглядит настолько кривой идеей насколько это возможно. это будет ещё и охуевшее структурирование уровня в добавок. а что если точка пути не является трансформом но её все равно надо сменить?

>Если собрать всё вмнесте, то схема примерно такая:


лол ну ты и придумал. иметь два набора планов, один из которых для движения, а другой для действий во время движения. мне кажется с такими идеями ты достигнешь лимитов этой схемы гораздо быстрей чем я своей. синхронизация этого выглядит ещё большей еботней чем то что я придумал. а что если во время движения появилось действие с долгой имплементацией из разряда неотменяемых и очень важных а конец пути уже недалеко? или осталось то-же самое действие, но нужно поменять паттерн перемещения во время действия? например ИИ обматывается бинтиком прячась в кустах, волк его покусал. а тут хопа его волк нашел, действие поменялось с "обматываться бинтиком в укрытии" на "обматываться бинтиком убегая". прерывать обматывание бинтиком и начинать снова чтоли? или "обматыватся бинтиком" это отдельно, "сидеть в укрытии / бежать в другое укрытие" это другой набор действий?

>Не следующее действие, а вообще другой план. Так что это будет ближе к провалу действия. Здесь нужно расширение терминологии.


какая-то хуевая схема если требует расширение терминологии на самом деле.
вообще нахуй ты такую конструкцию то лепишь? могущество ГОАП то в том что у него трешхолд целей есть и только одна цель является актуальной, само планирование важно, но сравнительно второстепенно. взвешивать валидность целей легко в рамках ситуации и важно именно это. а у тебя уже пошло какое-то планирование двух целей разом, охуеть можно. как-то сильно не хватает того что объединяло бы всю эту конструкцию и упрощало. как по мне так проще иметь несколько раздельных довольно простых конструкций, которые бы объединялись общими ограничениями и соединялись одной целью.
так хоть знать будешь что если ИИ нападает то он как-то охуительно напрыгнет на пути к цели, а планирователь позаботится о том чтобы стрелы были и лук был в руках и выстрелит когда увидит. а если отпиздили то он убегает а планирователь делает все чтобы выжить по дорожке.
можно же совмещать несколько типов ИИ в одном сразу. стейтмашина для глобальных статусов которая всему голова, FSM для стратегических решений, GOAP для планирования цепочки действий и более тактических решений. так шанс того что хоть что-то из этого разрастется до критической массы и нахуй рухнет задавив под собой весь проект гораздо ниже, чем пока они по отдельности работают на одни и те-же цели. а ты через GOAP решаешь уже такую хуйню которую проще решить другими методами.

>>29323
написал навмеш, терию графов только копнул снаружи, матрицы тоже. больше всего пригодилась линейная алгебра из школьной программы, за время написания неплохо так вспомнил её. дольше ебешся с чтением о каких-то хитрых алгоритмах, или имплементацией их, чем всей этой магией цыфр.
надо тоже что-то клевое и нечитабельное показать!
1.png68 Кб, 742x621
129 429645
>>29283

>Но планировщик должен решать как именно мы перемещаемся.


но зачем? вообще ты как-то решаешь планированием больше задач чем следует. у тебя как будто отсутствует концепция глобальных стейтов ИИ. можно же сделать изначально несколько глобальных стейтов например по уровню встревоженности. "спокойный / встревоженный / набрасывается" например. где стейты имели бы разные наборы экшонов, меняли паттерн перемещения, являлись модификатором для трешхолда некоторых целей. а планирование нужно только для построения комплексных планов из последовательности самих действий, чтобы ИИ не залип на чем-то элементарном.

>Этот вариант я упустил. Для этого можно сделать цель трансформом, а не точкой и периодически менять точку назначения навмеш агента. Если трансформ вдруг стал нуллом(сенсор укрытий инвалидировал укрытие например) - остановка и реплан.


описывать точку пути трансформом выглядит настолько кривой идеей насколько это возможно. это будет ещё и охуевшее структурирование уровня в добавок. а что если точка пути не является трансформом но её все равно надо сменить?

>Если собрать всё вмнесте, то схема примерно такая:


лол ну ты и придумал. иметь два набора планов, один из которых для движения, а другой для действий во время движения. мне кажется с такими идеями ты достигнешь лимитов этой схемы гораздо быстрей чем я своей. синхронизация этого выглядит ещё большей еботней чем то что я придумал. а что если во время движения появилось действие с долгой имплементацией из разряда неотменяемых и очень важных а конец пути уже недалеко? или осталось то-же самое действие, но нужно поменять паттерн перемещения во время действия? например ИИ обматывается бинтиком прячась в кустах, волк его покусал. а тут хопа его волк нашел, действие поменялось с "обматываться бинтиком в укрытии" на "обматываться бинтиком убегая". прерывать обматывание бинтиком и начинать снова чтоли? или "обматыватся бинтиком" это отдельно, "сидеть в укрытии / бежать в другое укрытие" это другой набор действий?

>Не следующее действие, а вообще другой план. Так что это будет ближе к провалу действия. Здесь нужно расширение терминологии.


какая-то хуевая схема если требует расширение терминологии на самом деле.
вообще нахуй ты такую конструкцию то лепишь? могущество ГОАП то в том что у него трешхолд целей есть и только одна цель является актуальной, само планирование важно, но сравнительно второстепенно. взвешивать валидность целей легко в рамках ситуации и важно именно это. а у тебя уже пошло какое-то планирование двух целей разом, охуеть можно. как-то сильно не хватает того что объединяло бы всю эту конструкцию и упрощало. как по мне так проще иметь несколько раздельных довольно простых конструкций, которые бы объединялись общими ограничениями и соединялись одной целью.
так хоть знать будешь что если ИИ нападает то он как-то охуительно напрыгнет на пути к цели, а планирователь позаботится о том чтобы стрелы были и лук был в руках и выстрелит когда увидит. а если отпиздили то он убегает а планирователь делает все чтобы выжить по дорожке.
можно же совмещать несколько типов ИИ в одном сразу. стейтмашина для глобальных статусов которая всему голова, FSM для стратегических решений, GOAP для планирования цепочки действий и более тактических решений. так шанс того что хоть что-то из этого разрастется до критической массы и нахуй рухнет задавив под собой весь проект гораздо ниже, чем пока они по отдельности работают на одни и те-же цели. а ты через GOAP решаешь уже такую хуйню которую проще решить другими методами.

>>29323
написал навмеш, терию графов только копнул снаружи, матрицы тоже. больше всего пригодилась линейная алгебра из школьной программы, за время написания неплохо так вспомнил её. дольше ебешся с чтением о каких-то хитрых алгоритмах, или имплементацией их, чем всей этой магией цыфр.
надо тоже что-то клевое и нечитабельное показать!
130 429655
>>29645

>но зачем? вообще ты как-то решаешь планированием больше задач чем следует


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

>описывать точку пути трансформом выглядит настолько кривой идеей насколько это возможно


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

>иметь два набора планов, один из которых для движения


Почему два плана? Просто у некоторых действий будет в пререквизитах (OnMove,false)

>что если во время движения появилось действие с долгой имплементацией из разряда неотменяемых и очень важных а конец


Очевидно агент остановится и завершит действие на месте.

>нужно поменять паттерн перемещения во время действия?


Если понадобилось сменить паттерн движения, значит произошло что то достаточное для реплана.

>с "обматываться бинтиком в укрытии" на "обматываться бинтиком убегая"


А как это решит твоя схема?

>а у тебя уже пошло какое-то планирование двух целей разом


целей может быть сколько угодно, приоритетная одна.

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


То есть это _простой и понятный_ вариант.

>если ИИ нападает то он как-то охуительно напрыгнет на пути к цели


Ну ёбана, у него будет действие наскока с какими то пререквизитами. В чём проблема то?

>ты через GOAP решаешь уже такую хуйню которую проще решить другими методами


А надо решать что то уровня подбора стрел и лука для стрельбы? Тут уж точно ГОАП не всрался, это можно жесткими стейтами в фсм сделать. Суть ГОАП именно гибком подстраивании под ситуацию. У тебя какие то behavior trees а сбоку костылём планировщик из двух с половиной действий
130 429655
>>29645

>но зачем? вообще ты как-то решаешь планированием больше задач чем следует


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

>описывать точку пути трансформом выглядит настолько кривой идеей насколько это возможно


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

>иметь два набора планов, один из которых для движения


Почему два плана? Просто у некоторых действий будет в пререквизитах (OnMove,false)

>что если во время движения появилось действие с долгой имплементацией из разряда неотменяемых и очень важных а конец


Очевидно агент остановится и завершит действие на месте.

>нужно поменять паттерн перемещения во время действия?


Если понадобилось сменить паттерн движения, значит произошло что то достаточное для реплана.

>с "обматываться бинтиком в укрытии" на "обматываться бинтиком убегая"


А как это решит твоя схема?

>а у тебя уже пошло какое-то планирование двух целей разом


целей может быть сколько угодно, приоритетная одна.

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


То есть это _простой и понятный_ вариант.

>если ИИ нападает то он как-то охуительно напрыгнет на пути к цели


Ну ёбана, у него будет действие наскока с какими то пререквизитами. В чём проблема то?

>ты через GOAP решаешь уже такую хуйню которую проще решить другими методами


А надо решать что то уровня подбора стрел и лука для стрельбы? Тут уж точно ГОАП не всрался, это можно жесткими стейтами в фсм сделать. Суть ГОАП именно гибком подстраивании под ситуацию. У тебя какие то behavior trees а сбоку костылём планировщик из двух с половиной действий
131 429677
>>29655

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


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

>Не точку пути, а пункт назначения. Иначе как ты например будешь гнаться за движущейся целью?


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

>А как это решит твоя схема?


если бинтование занимает только руки то ИИ встанет и начнет убегать бинтуя себя. перемещению ничего не мешает, а за перемещением следит другая хуйня.

>Ну ёбана, у него будет действие наскока с какими то пререквизитами. В чём проблема то?


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

>А надо решать что то уровня подбора стрел и лука для стрельбы?


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

>Тут уж точно ГОАП не всрался, это можно жесткими стейтами в фсм сделать.


в динамичном мире нельзя. плюс ГОАП помимо очевидных же в том что пулл действий можно менять на ходу. выпал предмет - появились действия связанные с ним, например. это в ФСМ делать по человечески нельзя.
ну и другой плюс ГОАП в том что пулл целей может шариться между членами сквада, разумеется, чтобы была иерархия.
гибкость ГОАП то в первую очередь в том что эти листы можно редактировать.

>У тебя какие то behavior trees а сбоку костылём планировщик из двух с половиной действий


ну так. планирование там где вообще должно быть планирование в какой-то форме. для манипуляций с инвентарем просто заебись, групповые действия тоже просто заебись, глобальная навигация заебись. везде где требуется планирование в динамичной ситуации заебись. а вот для тонких манипуляций требующих параллельности совсем не заебись.
ты вот решил костылем решить, я решил что проще сделать метод синхронизации и указать кто тут клитором коммандует. мне вот очень интересно посмотреть что у тебя выйдет, у меня то вон рабочий прототип же есть уже. может ты там что-то ещё лучше придумаешь.
131 429677
>>29655

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


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

>Не точку пути, а пункт назначения. Иначе как ты например будешь гнаться за движущейся целью?


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

>А как это решит твоя схема?


если бинтование занимает только руки то ИИ встанет и начнет убегать бинтуя себя. перемещению ничего не мешает, а за перемещением следит другая хуйня.

>Ну ёбана, у него будет действие наскока с какими то пререквизитами. В чём проблема то?


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

>А надо решать что то уровня подбора стрел и лука для стрельбы?


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

>Тут уж точно ГОАП не всрался, это можно жесткими стейтами в фсм сделать.


в динамичном мире нельзя. плюс ГОАП помимо очевидных же в том что пулл действий можно менять на ходу. выпал предмет - появились действия связанные с ним, например. это в ФСМ делать по человечески нельзя.
ну и другой плюс ГОАП в том что пулл целей может шариться между членами сквада, разумеется, чтобы была иерархия.
гибкость ГОАП то в первую очередь в том что эти листы можно редактировать.

>У тебя какие то behavior trees а сбоку костылём планировщик из двух с половиной действий


ну так. планирование там где вообще должно быть планирование в какой-то форме. для манипуляций с инвентарем просто заебись, групповые действия тоже просто заебись, глобальная навигация заебись. везде где требуется планирование в динамичной ситуации заебись. а вот для тонких манипуляций требующих параллельности совсем не заебись.
ты вот решил костылем решить, я решил что проще сделать метод синхронизации и указать кто тут клитором коммандует. мне вот очень интересно посмотреть что у тебя выйдет, у меня то вон рабочий прототип же есть уже. может ты там что-то ещё лучше придумаешь.
132 429716
>>29677

>а тебе описывать


Что описывать то?
Чем вообще вынесение стейтов отдельно - не пложение сущностей по сравнению с держанием этого в стейтах мира?

>если бинтование занимает только руки то ИИ встанет и начнет убегать бинтуя себя


То есть это не два набора планов, один для движения, а второй для действий?

>да зачем действие наскока?


То есть он не выполняет какое то действие, а просто наскакивает на ифах?

>ну и другой плюс ГОАП в том что пулл целей может шариться между членами сквада


Мне всё больше кажется, что ты постепенно изобретаешь hierarchical task network

>ты вот решил костылем решить


>я решил что проще сделать метод синхронизации и указать кто тут клитором коммандует


Прямое и явное решение.

>мне вот очень интересно посмотреть что у тебя выйдет


Ладно, попробую то, на чём остановился. Разговор всё равно зашёл в тупик.
133 429729
>>29716

>Чем вообще вынесение стейтов отдельно - не пложение сущностей по сравнению с держанием этого в стейтах мира?


нет конечно, они же глобальные для ИИ, доступные всем его компонентам. цели ГОАП ориентируются на стейты, навигация ориентируется на стейты, все на них ориентируется. но планирование уже следует цели у ГОАП. в плане поведения ИИ можно очень много писать его глобальным состоянием. пытается он стелс, или набигает, или убигает, или спокойный или ещё какой. проще задавать общие паттерны поведения же и потом ими пользоваться везде так как они будут стопроцентно и довольно легко менять оценку состояния.

>То есть это не два набора планов, один для движения, а второй для действий?


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

>То есть он не выполняет какое то действие, а просто наскакивает на ифах?


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

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

>Ладно, попробую то, на чём остановился. Разговор всё равно зашёл в тупик.


показать не забудь. в этом разделе все обсуждение ИИ загибается по каким-то нелепым причинам. видать давно люди не играли в игры вроде FEAR, или сталкера
133 429729
>>29716

>Чем вообще вынесение стейтов отдельно - не пложение сущностей по сравнению с держанием этого в стейтах мира?


нет конечно, они же глобальные для ИИ, доступные всем его компонентам. цели ГОАП ориентируются на стейты, навигация ориентируется на стейты, все на них ориентируется. но планирование уже следует цели у ГОАП. в плане поведения ИИ можно очень много писать его глобальным состоянием. пытается он стелс, или набигает, или убигает, или спокойный или ещё какой. проще задавать общие паттерны поведения же и потом ими пользоваться везде так как они будут стопроцентно и довольно легко менять оценку состояния.

>То есть это не два набора планов, один для движения, а второй для действий?


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

>То есть он не выполняет какое то действие, а просто наскакивает на ифах?


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

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

>Ладно, попробую то, на чём остановился. Разговор всё равно зашёл в тупик.


показать не забудь. в этом разделе все обсуждение ИИ загибается по каким-то нелепым причинам. видать давно люди не играли в игры вроде FEAR, или сталкера
134 429772
>>28296
Что это? Это слово даже не гуглится, рофл.
135 429773
>>29772
LateUpdate()
136 429778
>>29773
Ну я попробовал через ЛейтАпдейт. Все-равно, если идти в стену. то персонаж по кд пытается в неё зайти и выталкивается.
137 429779
>>29729

>пытается он стелс, или набигает, или убигает, или спокойный или ещё какой


>а тебе описывать


Ну всё же расскажи что лишнего и неудобного описывать планом в подобной ситуации. Мне правда интересно, может я упускаю что то очевидное.
Давай возьмём пример: у нас есть скрытный пидор, который может красться(что обещает ему пребывание невидимым для врага), а может бежать, может атаковать врага открыто, а может бить сникатакой, требующей пребывания невидимым. Удар сникатакой имеет более низкую стоимость, значит будет в приоритете. Цель - бить врага.
Чего лишнего описывается в этом случае по сравнению с вариантом с заведением глобальных стейтов стелс/хуелс, разблокирующих каждый по два действия?
138 429782
Мне, вот, такая хуйня в голову пришла. Вот если раз 10 - 15 в секунду двигать вертексы в меше, что эффективнее? Каждый раз читать их с меша или хранить копию в виде массива и мешу только присваивать вертексы.
139 429785
>>29779
если смотреть в рамках вопроса то ничего. удар обычный, удар из стелса с пререкваерментом - в этой схеме ничего лишнего, не говоря о том что такие вещи как удар в мили должны так-же имплементить особые сорта перемещения до цели. если выйти перед десантником то у него так-же удар прикладом будет в приоритете, он подбежит и ебанет.

если смотреть в рамках всего обсуждения то в случае наличия глобальных статусов можно например менять стоимость у таких действий как "использовать лук", или "использовать кинжал", вместо чего-то громкого. так-же если стелс активен то персонаж например меняет приоритетность у других зон карты и выбирает пути через высокую траву чтобы попасть куда надо, залезает под лесенки более охотно, старается уйти из конуса обзора при навигации. чтобы ГОАП сказал "иди сюда" и ИИ пополз в стелсе туда обходя все заметные места. например за спину жертвы. ну и в конце концов сет анимаций поменять чтобы ИИ ходил горбатым и башкой нервно мотал. можно много придумать как подобный статус могли бы имплементить другие элементы ИИ.

>>29782
храни копию. торговать памятью всегда эффективней, если её ещё много в запасе. но вообще лучше скажи че там делаешь, все кроется в деталях как всегда же.
140 429786
>>29785
Спасибо, дружище. Как-то уже пытался, но решил начать снова. Запилить простенькую деформацию террейна а-ля СПИНТАЙЕРС под ведро.
141 429789
>>29778
Ну значит ты наговнокодил. У меня на голых коллайдерах с коллизиями всё нормально было.
142 429790
>>29786
а, а я кажись тебя помню. кстати а чего ты вертексы собрался редактировать то? может шейдор ебанешь чтобы вот примерно как в бэтмане?
вообще где-то у меня был клевый ютубер который что-то похожее на коленке за часик слепил. https://www.youtube.com/watch?v=l_2uGpjBMl4 может интересно будет
144 429796
>>29794

> float Скорость


А с тобой шутки плохи, да?
15009158489411.jpg38 Кб, 479x395
145 429797
>>29794

> public float Скорость

146 429798
>>29790
Не, я тут, вроде, не делился ничем таким. В шейдеры я не умею.
147 429801
>>29796
>>29797
Ну я хз, мне просто прикольным кажется, когда в редакторе переменные на русском написаны. Этож не влияет ни на что, рофл.
148 429802
>>29801

> мне просто прикольным кажется, когда в редакторе переменные на русском написаны


Продолжай, у тебя всё получится.
149 429803
>>29801

> рофл


Настримятся своими дотами, а потом рофлят и ебут друг друга в жопы.
Рашид, завязывай кодить.
150 429805
>>29802
>>29803
Вы чего порвались на пустом месте? Ну нравится человеку, пусть хоть на хинди называет.
151 429806
>>29802
Ну я просто не шарю совсем. Так нельзя делать? Я думал, что так не делают от того, что это поуебански выглядит.
152 429807
>>29805
Да кто порвался-то? Я ж и говорю, пускай развлекается, всё получится.
153 429808
>>29806

> Так нельзя делать?


Если ты кодишь чисто для себя чисто руку набить — называй как хочешь, хоть хуйпизда. Но лучше сразу приучаться к стандартам оформления, чтоб потом не переучиваться.
scrin.jpg68 Кб, 592x356
154 429819
Так а как это пофиксить и сделать, чтобы персонаж просто упирался в стену, как через rigidbody? Если я пытаюсь делать через rb, то всё фризить начинает:
https://www.youtube.com/watch?v=wrHmbiv41h0

>>29808
Понял, принял.
155 429838
>>29819
Я сейчас наткнулся на статейку, где говорится, что transform.position/transform.rotation сильно снижают производительность, если использовать это на объектах с rigidbody. Враги у меня имеют rb, но перемещаются и поворачиваются с помощью transform. Еще я замечал, что если удалить их и использовать rb для движения, то лагов не будет.
Я в правильном направлении думаю? Мне надо переделать движение врагов для повышения производительности?
156 429839
>>29838

> transform.position/transform.rotation сильно снижают производительность, если использовать это на объектах с rigidbody


Ага, прям пекарня горит.
Хуйнёй не занимайся.
157 429842
>>29839
Так я не понимаю, с чем тогда связаны лаги при использовании rb? Типо, я так гуглил, большинство считает, что это охуенная штука, врядли бы так считали, если бы это так сильно убивало производительность.

Вот статейка, кстати:
https://habrahabr.ru/post/248391/
158 429843
>>29842
Статейка от 15-го года? Окей.
159 429844
>>29785

>если смотреть в рамках всего обсуждения то в случае наличия глобальных статусов можно например менять стоимость у таких действий как "использовать лук", или "использовать кинжал", вместо чего-то громкого. так-же если стелс активен то персонаж например меняет приоритетность у других зон карты и выбирает пути через высокую траву чтобы попасть куда надо, залезает под лесенки более охотно, старается уйти из конуса обзора при навигации. чтобы ГОАП сказал "иди сюда" и ИИ пополз в стелсе туда обходя все заметные места


Но это всё может быть сделано просто в действии скрытного перемещения. Весь глобальный стейт стелса заменяет ворлдстейт (StayHidden,true). Но если ты захочешь сделать так чтобы этот же скрытный пидр мог бить сник атакой вне стелса, например, ослеплённых противников, то прийдётся лепить ещё один иф для нахождения вне стелса.
Мне просто кажется, что тебе ГОАП вообще не нужен: ты используешь глобальные стейты, а действия распределяешь _просто ифами_, называя работой ГОАП формирование пула действий.
Рили попробуй HTN, мне кажется это то, что ты пробуешь изобрести.
160 429871
>>29868 (Del)

> А вот если мне нужно еще и источники света расставить по карте? Я же не могу ставить их наугад и каждый раз смотреть нормальная ли яркость света, нормальный ли радикс освещения, нормальный ли цвет. Как тут быть?


Чего блять? Ставишь свет и крутишь как надо.
161 429877
>>29873 (Del)
Что ты несёшь? Ты вкладку Scene вообще видел?
162 429902
>>29881 (Del)

>таких редакторов полно.


Ну так и в чем проблема? Берешь любой из множества доступных редакторов и пользуешься.
163 429959
>>29870 (Del)
Навмеш хорошо оптимизирован, на больших открытых пространстван даже эффективнее Астара с тайлами.
164 429961
Нужно сделать красивый выпадающий список как на пик1. Его я смог сделать скопировав код пик2 из какой-то статьи. Но я так и не понял как использовать значения в скрипте? Как мне понять что из этого меню выбрано? Что такое ComponentType? Что значит { StartDialogue = 1, LoadScene = 2 } ? Если выбрано StartDialogue, то значение переменной становится 1? В интернете не смог найти.
165 429971
>>29970 (Del)
Нууу, можно через GetComponent проверять наличие какого-либо компонента, например.
А вообще не заморачивайся, если у тебя это несколько раз используется, то никто от этого не помрёт.
166 429973
>>29961
В игре или в редакторе?
Если второе, то enum показывается в редакторе в виде этого самого выпадающего списка.
167 429976
>>29961
Ну как всегда после вопроса на дваче я нахожу нужную страницу. Разобрался уже.
168 430023
Соре за оффтоп, но почему эта тема такая активная? Всмысле, я мало игр знаю от харкача, а в разделе жизнь кипит.
169 430024
>>27791

> Тут что так мертво или юнити девелоперы вымерли?


>>30023

> почему эта тема такая активная?


Это даже мило.
А вообще — у движка большое комьюнити, оттуда и оживлённая беседа.
170 430028
>>30024
А можешь посоветовать места, куда можно вкатиться новичку? Или, в целом, это не особо нужно и хватит гугла?
Я быдло, в ангельский не могу.
171 430029
>>30028
Да в шапке всё есть.
И туториалы и книги (и на русском в том числе).
172 430034
>>30028

> в ангельский не могу


Будет сложновато. Не сложнее чем на другие движки, но без английского реально хуево. Я полгода назад вкатился в геймдев, и уже пришлось прочитать одну книгу на английском, сейчас начал еще одну. Плюс самый охуенный инструмент на начале - это ответы на форумах Юнити, а они в основном на английском, да и гуглить надо правильно на английском.
173 430035
>>30034

> да и гуглить надо правильно на английском


Удваиваю этого благородного дона.
Как затык придёт — на русском хуй чё найдёшь.
174 430051
Короче, я тут недавно спрашивал насчет диалогов и ассетов. Сейчас откопал пиратские и попробовал. Заключение:
1) Dialogue System For Unity - говно для даунов-аутистов, до сих пор удивляюсь откуда у него такие хорошие оценки в сторе
2) NodeCanvas - годнота. Всё сделано по человечески. Плюс помимо диалогов можно еще делать АИ и прочие крутые штуки.

По крайней мере, это первое впечатление. Глубоко не зарывался.
175 430058
>>30051

>NodeCanvas


Отсутствие безбладной демки едва ли облегчит выбор.

Надоть видосики глянуть тьюторриалные
176 430059
>>29844
в действии должно быть описано только само исключительно само действие. ты погромировал чтоли мало в своей жизни, шишки не набил с размазыванием логики? не доверял слишком много функциям которые вызываются хуй пойми когда и где? если я захочу чтобы скрытый пидор мог бить сник атакой вне стелса то либо надо задать альтернативные условия для действия, либо скопипастить эти 3.5 строчки описывающие действие с новыми условиями где если враг ослеплен то можно его ебануть хорошо.
вообще ты как-то странно структурируешь ИИ. ты понимаешь в какую мусорку превратится ГОАП если там будет описано просто всё? и оно будет размазано по действиям? это ебануться можно редактировать все это.

>а действия распределяешь _просто ифами_


>Мне просто кажется, что тебе ГОАП вообще не нужен


да по моему это ты не совсем понимаешь нахуй этот ГОАП нужен и пытаешься возложить на него больше чем надо.
я же уже показывал скриншотик, где у ИИ винтовка разряженная в инвентаре, рядом лежит ещё одна и отдельно патроны к ней и надо выстрелить из винтовки. это по твоему как ифами ебануть то? а варианты где взять патроны, или винтовку, могут множится и множится.

внутри простых действий требующих навигацию разумеется проще пользоваться ифами.
нахуй вообще описывать перемещение в действии ГОАП? ты ещё там ебани всю логику перемещения, чтобы оно там следило когда бегать, когда прыгать, чтобы лезло в аниматор, позицию там проверяло. чтобы открыл а перед тобой стена текста тыщи на полторы строк в которой какая-то не читаемая мешанина. а когда отдаешь все это на откуп глобальному менеджеру и контролеру и уже можешь это читать и даже наследоваться от него и менять имплементацию деталей то все что остается делать в ГОАП это описать в действии перемещения одну сраную строчку. а нахуй оно надо то? лучше уж под врага завести экшон "ебануть врага номер такой" где в имплементации "если далеко то подбеги" и ссылка на врага чтобы можно было сказать менеджеру "беги хи-и-итро".

>Рили попробуй HTN


он не пользуется A* же. как таким в динамичном мире пользоватся? я понимаю георию графов достаточно хорошо чтобы понимать пользу от поиска пути на нем, чем ГОАП и является.

>>29842
что у тебя за проблемы такие? нахуй ты в трансформ вообще лезешь если у тебя RB? если у тебя RB то манипуляции уже делай все через него. у тебя же специальные AddForce, AddTorque и прочие есть которые гарантируют тебе что все будет через физон.

>>29798
лол ну ты тогда не первый в этом случае. а в шейдеры смоги. полезно же. например в бэтмане клево сделали, у них там везде есть поверхности под которыми ортогональная камера которая рендерит только глубину на максимальную дистанцию там где поверхность заканчивается. все что попадает в эту камеру рисует на ней. а нарисованное появляется на поверхности как карта всех этих вмятин. если бы не мобилки то можно было бы ещё ебануть всякую симуляцию в компьют шейдорах например что типа ветер дует и вмятины деформируются со временем.

>>29870 (Del)
да через навмеш делай навигацию даже с тайтловой картой если у тебя никакой логики не завязано на этих тайтлах. если делаешь пошаговую стратегию то да, тайтлы нужны, а так то нахуй оно надо

>>29918 (Del)
ебани свой редактор прямо в юнити. займет пару вечеров, а от страданий избавит на все время разработки проекта.

>>29970 (Del)
почитай про ссылочные типы и про валуе типы, а потом подумай о том что строка это массив с буквами. тогда поймешь о чем речь тут идет. вообще можно и через теги проверять, просто не создавай каждый раз строку просто чтобы сравнить с ней, а пользуйся ссылкой на эту строку. тебе же инструменты дали заебись, пользуйся но с умом.
176 430059
>>29844
в действии должно быть описано только само исключительно само действие. ты погромировал чтоли мало в своей жизни, шишки не набил с размазыванием логики? не доверял слишком много функциям которые вызываются хуй пойми когда и где? если я захочу чтобы скрытый пидор мог бить сник атакой вне стелса то либо надо задать альтернативные условия для действия, либо скопипастить эти 3.5 строчки описывающие действие с новыми условиями где если враг ослеплен то можно его ебануть хорошо.
вообще ты как-то странно структурируешь ИИ. ты понимаешь в какую мусорку превратится ГОАП если там будет описано просто всё? и оно будет размазано по действиям? это ебануться можно редактировать все это.

>а действия распределяешь _просто ифами_


>Мне просто кажется, что тебе ГОАП вообще не нужен


да по моему это ты не совсем понимаешь нахуй этот ГОАП нужен и пытаешься возложить на него больше чем надо.
я же уже показывал скриншотик, где у ИИ винтовка разряженная в инвентаре, рядом лежит ещё одна и отдельно патроны к ней и надо выстрелить из винтовки. это по твоему как ифами ебануть то? а варианты где взять патроны, или винтовку, могут множится и множится.

внутри простых действий требующих навигацию разумеется проще пользоваться ифами.
нахуй вообще описывать перемещение в действии ГОАП? ты ещё там ебани всю логику перемещения, чтобы оно там следило когда бегать, когда прыгать, чтобы лезло в аниматор, позицию там проверяло. чтобы открыл а перед тобой стена текста тыщи на полторы строк в которой какая-то не читаемая мешанина. а когда отдаешь все это на откуп глобальному менеджеру и контролеру и уже можешь это читать и даже наследоваться от него и менять имплементацию деталей то все что остается делать в ГОАП это описать в действии перемещения одну сраную строчку. а нахуй оно надо то? лучше уж под врага завести экшон "ебануть врага номер такой" где в имплементации "если далеко то подбеги" и ссылка на врага чтобы можно было сказать менеджеру "беги хи-и-итро".

>Рили попробуй HTN


он не пользуется A* же. как таким в динамичном мире пользоватся? я понимаю георию графов достаточно хорошо чтобы понимать пользу от поиска пути на нем, чем ГОАП и является.

>>29842
что у тебя за проблемы такие? нахуй ты в трансформ вообще лезешь если у тебя RB? если у тебя RB то манипуляции уже делай все через него. у тебя же специальные AddForce, AddTorque и прочие есть которые гарантируют тебе что все будет через физон.

>>29798
лол ну ты тогда не первый в этом случае. а в шейдеры смоги. полезно же. например в бэтмане клево сделали, у них там везде есть поверхности под которыми ортогональная камера которая рендерит только глубину на максимальную дистанцию там где поверхность заканчивается. все что попадает в эту камеру рисует на ней. а нарисованное появляется на поверхности как карта всех этих вмятин. если бы не мобилки то можно было бы ещё ебануть всякую симуляцию в компьют шейдорах например что типа ветер дует и вмятины деформируются со временем.

>>29870 (Del)
да через навмеш делай навигацию даже с тайтловой картой если у тебя никакой логики не завязано на этих тайтлах. если делаешь пошаговую стратегию то да, тайтлы нужны, а так то нахуй оно надо

>>29918 (Del)
ебани свой редактор прямо в юнити. займет пару вечеров, а от страданий избавит на все время разработки проекта.

>>29970 (Del)
почитай про ссылочные типы и про валуе типы, а потом подумай о том что строка это массив с буквами. тогда поймешь о чем речь тут идет. вообще можно и через теги проверять, просто не создавай каждый раз строку просто чтобы сравнить с ней, а пользуйся ссылкой на эту строку. тебе же инструменты дали заебись, пользуйся но с умом.
177 430064
>>30058
Ну да, у канваса трудно сделать первую ступеньку, но потом намного легче. На ютьюбе есть ролики от народа, они помогают.
А у Диалог Менеджер слишком переусложнен. Я так понимаю он сделан для тех кто вообще не хочет залезать в спрайты, так что там много всяких финтов странных, которые хуй просечешь. И документация хуевая, я за целый день так и не понял как напрямую из скрипта вызывать диалог, например. У НодКанваса это сразу же показывается. Алсо, может знающие пояснят, нахуя они впилили туда Lua?
178 430065
>>30059
Я не то чтобы доебаться, но ты шифт из клавы выдрал что ли?
179 430066
>>30065
meh
я и точки не пишу иногда. вот так общаешься в интернете два десятка лет, пишешь стены текста. а со временем техника печатания оптимизируется сама собой чтобы требовать меньше и меньше усилий. в итоге перестаешь давить на шифт, ставить точки, пользуешься грамматикой только там где это может вызвать недопонимание
180 430067
>>30066
Ну ты же лукавишь, запятые сами себя не прожмут.
Но а вообще, повторюсь, я без всякого этсамого.
181 430068
>>30067
запятые то нужны, без них страдает построение предложения и передача смысла. этим нельзя жертвовать на форумах. к тому же запятые ставятся нажимая правый шифт, а не левый. там если два пальца рядом то они сами нажимают это комбинацию. сложней ставить вопросительный знак, в русской расскладке он ну пиздец как неудобно расположен, чаще переключаюсь на английскую расскладку чтобы его поставить.
левый шифт я вообще предпочитаю не нажимать, разве что когда восклицательный знак ставлю то жму его, или кавычки в русской раскладке
вообще это большая тема и не в рамках обсуждения юнити она
182 430070
Уважаемые юнитибояре, поясните ньюфагу, как вы делаете в своих играх менюшки и окошки. Хотелось бы отделять код логики окна от кода всяких там анимаций, кнопочек и прочхуеты. Кнопки делаю из Image-ей. Поясню свою проблему.

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

В юньке вместо леайута по сути получается мой префаб окна. Но в шарпике же как я понял методы контроллера в виде коллбэков не покидаешь нормально в кнопки? Или я не прав? Вроде есть какие то "делегаты", но чет они слегка замудрено выглядят. Юнитискрипт не предлагать.

А для каждого окна пилить десяток классов кнопок (Button1Script, Button2Script, CloseButtonScript, ...) просто чтобы на клике по ним делать что-то по типу парент.гетКомпонент<контроллерОкошка>().методКоторыйДолжнаДернутьКнопка1() (и т.п), мне кажется неудобной хуетой. Вижу конечно частичное решение замутить некоторую "базовую" кнопку из имейджа и конкретные десять в окнах наследовать от нее, но это ж как то неудобно.

Как в итоге грамотно замутить подобную систему? Шоб повесить на префаб окошка скрипт контроллера и он десятку абсолютно идентичных с точки зрения кода кнопочек - прокинул свои методы, которые кнопочки будут послушно дергать? Другими словами, хочу повесить на 10 кнопок один и тот же скрипт (БазарюКнопка.cs), но чтобы он делал разные действия, которым его научит батя (контроллер окошка) уже где надо. Все ради того, чтобы в самой юньке один раз собранное окно ващщщще не шатать, а в случае если нужно будет что-то поправить, спокойно фиксить код. Или я довнич и это велосипед и лучше так не делать?
183 430071
>>30070

> как вы делаете в своих играх менюшки и окошки


Через UI
Дальше не читал
184 430073
>>30070

> Но в шарпике же как я понял методы контроллера в виде коллбэков не покидаешь нормально в кнопки?


неа, не прав. делегаты так-же отлично и через код присваиваются. ты бы API почитал. https://docs.unity3d.com/ScriptReference/UI.Button-onClick.html просто у юнити есть ещё этот редактор делегатов. как иначе делать менюшки например с выбором разрешения? это же охуеть можно.
делегаты это методы которые работают как значение. чтобы ты например мог куда-то сказать "вот тебе функция, ебани её когда сделаешь свое говно".
185 430074
>>30070
>>30071
Чет я сумбурно расписал, попробую проще:

Как запилить на C# такой скрипт (один на всю игру) для Image-а, чтобы он делал Image-ы (любые) универсальной кнопкой? (Как слушать события мышиные - понимаю). Чтобы кнопка не сама определяла, что она должна делать по клику, а кто-то извне ей сказал типа button.onClick = function "такая то".
186 430076
>>30074

> Как запилить на C# такой скрипт (один на всю игру) для Image-а, чтобы он делал Image-ы (любые) универсальной кнопкой?


Добро пожаловать в мир классов и наследования.
187 430078
>>30073
О, спасибо, анон, чет я ебался в глаза и не увидел что у уи уже есть Button, думал надо замутить Image и слушать клик самому (хотя наверное баттон делает то же самое).

Т.е. получается я делаю контрллер, вешаю его на окошко, заворачиваю его метод в делегат, делаю геткомпонент<ебанаяКнопка>() и ей его в поле сохраняю? а в TaskOnClick уже дергаю?
188 430080
>>30078

> Т.е. получается я делаю контрллер, вешаю его на окошко, заворачиваю его метод в делегат, делаю геткомпонент<ебанаяКнопка>() и ей его в поле сохраняю? а в TaskOnClick уже дергаю?


Усложняешь. В юнити в UI уже листнеры висят, вешай на всё что хочешь, если у тебя на войде публичный модификатор.
189 430081
>>30080
А если у меня будет скриптик MySuperAwesomeButton который там внутри кнопки слушает эвенты всякие и по разному ее анимирует (скажем скейлит при наведении, затемняет при клике, и тп), а я потом на те же самые эвенты понавешаю еще листенеров где-нибудь снаружи в контроллере, это не будет тормозно? Сужу все по тому же старому болезненному флэшу, где каждый ебаный эвент каждому своему листенеру при триггере порождал аллокацию и было выгоднее не 20 эвент листенеров регистрировать, а замутить 1 листенер который бы уже 20 методов разных дергал, или вообще коллбэками все обвязывать. Хотя наверное я дед инвалид и нормальные люди в юньке замутили хорошо...
190 430084
>>30074
да я же уже ответил на твой вопрос и ссылку дал. вот понимаешь? есть функция. а хуяк можно функцию передать как значение. это - делегат. вот есть у тебя кнопка та ты такой мояКнопка.onClick.AddListener(МояФункция); и тогда хопа кнопка будет делать твою функцию когда довиш на неё.
кстати ты это, осторожней с делегатами сделанными из кода. особенно осторожней с теми делегатами которые присваиваются в цыклах, где в качестве инпута есть енумератор.

>>30078
там в меню кстати ещё и не весь функционал мог увидеть. самое охуительное когда тыкаешь у выбранного геймобжекта AddComponent в меню инспектора и лезешь во вкладку Layout.
баттон то в целом делает то-же самое и делает это приятно. вообще если тебя интересует имплементация то эти хуи делали этот UI опенсорсным, можешь почитать. https://bitbucket.org/Unity-Technologies/ui

>>30081
лол ты чего страдаешь то так. тут же методы вроде OnDeselect, OnMove, OnPointerDown, OnPointerEnter, OnPointerExit, OnPointerUp, OnSelect и прочее прочее у тебя публичные, ты API почитай. некоторый функционал и так уже есть вроде изменения цвета при наведении курсора. наследуйся от кнопки, оверрайдни эти функции которые для этого и сделаны, сделай там любую сраную хуйню вплоть до того что при наведении на элемент интерфейса приступ эпилепсии мог случится. можно ещё встроеным редактором анимаий воспользоваться с кривыми чтобы окошко там приятно размеры меняло или ещё че.
вообще на https://www.assetstore.unity3d.com/en/#!/content/25468 вот тебе официальные экзамплы, посмотри что там и как оно сделано
191 430085
>>30064

>может знающие пояснят, нахуя они впилили туда Lua?



я >>30058
видосики нашлись и голос у говорящего приятный

Lua нужна для скриптирования, как я понял. Ясно, что можно было бы и обойтись чисто сисярпом.
192 430098
>>30059

>в действии должно быть описано только само исключительно само действие


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

>ты погромировал чтоли мало в своей жизни, шишки не набил


>это ебануться можно редактировать все это


>не доверял слишком много функциям которые вызываются хуй пойми когда и где?


>в какую мусорку превратится ГОАП



>скопипастить эти 3.5 строчки описывающие действие с новыми условиями


Бля не дави плиз((( Рассказываешь о чистоте действий и сразу копируешь строчки кода с новыми условиями и делаешь два похожих действия для стелса и его отсутствия. Интуитивно редактируемо.

>нахуй вообще описывать перемещение в действии ГОАП?


>ты погромировал чтоли мало в своей жизни


Про ООП не слышал? Действие не реализует движение, оно описывает его характер.

>он не пользуется A* же


Там прямой поиск по графу. H - это hierarchical

>я понимаю георию графов достаточно хорошо чтобы понимать пользу от поиска пути на нем


>чем ГОАП и является


Ты кстати и не рассказал какие планы ты строишь и пути ищешь. Вот был пример с обоймой и внтовкой, но почему это не сделать ифами?
192 430098
>>30059

>в действии должно быть описано только само исключительно само действие


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

>ты погромировал чтоли мало в своей жизни, шишки не набил


>это ебануться можно редактировать все это


>не доверял слишком много функциям которые вызываются хуй пойми когда и где?


>в какую мусорку превратится ГОАП



>скопипастить эти 3.5 строчки описывающие действие с новыми условиями


Бля не дави плиз((( Рассказываешь о чистоте действий и сразу копируешь строчки кода с новыми условиями и делаешь два похожих действия для стелса и его отсутствия. Интуитивно редактируемо.

>нахуй вообще описывать перемещение в действии ГОАП?


>ты погромировал чтоли мало в своей жизни


Про ООП не слышал? Действие не реализует движение, оно описывает его характер.

>он не пользуется A* же


Там прямой поиск по графу. H - это hierarchical

>я понимаю георию графов достаточно хорошо чтобы понимать пользу от поиска пути на нем


>чем ГОАП и является


Ты кстати и не рассказал какие планы ты строишь и пути ищешь. Вот был пример с обоймой и внтовкой, но почему это не сделать ифами?
193 430099
>>30098

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


чего план то такой хитрый? вот стейт ИИ сменился внутри гоапа, он стал у нас спрятанным, появилась возможность применять действия. но актуальный паттерн передвижения сменится только после следующего действия? тоесть типа стоит ИИ посреди поля в idle, понимает что он спрятался, видит враг идет и надо ебануть бы его и только тогда он приседает и ползет чтоли?

>Бля не дави плиз((( Рассказываешь о чистоте действий и сразу копируешь строчки кода с новыми условиями и делаешь два похожих действия для стелса и его отсутствия. Интуитивно редактируемо.


если занимают они 3.5 строчки, различаются одной кондицией пререкваермента то чего мудрить. назвал по другому. теперь у нас не StealthAttack, а SneakAttack, положил рядом. может ещё чего потом напишу. например StealthAttack чтобы делать надо сзади подбежать, а SneakAttack можно и не сзади. пока это два разных действия которые требуют хуй да нихуя описания то.

>Про ООП не слышал? Действие не реализует движение, оно описывает его характер.


как характер то описывать придумал?

>Там прямой поиск по графу. H - это hierarchical


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

>Ты кстати и не рассказал какие планы ты строишь и пути ищешь. Вот был пример с обоймой и внтовкой, но почему это не сделать ифами?


потому что винтовки может и не быть вообще, патрон может и не быть вообще, или чтобы их получить надо взять их, а чтобы взять надо залезть, а чтобы залезть надо ключ. разумеется некоторые действия скорей всего будут в конце, а некоторые скорей всего в начале, но учитывая все варианты цепочка может быть весьма длинной. как такое ифами то ебануть? а что если ебошить может не только винтовка, есть пистолет, но нет патрон к нему, но есть патроны к винтовке?
193 430099
>>30098

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


чего план то такой хитрый? вот стейт ИИ сменился внутри гоапа, он стал у нас спрятанным, появилась возможность применять действия. но актуальный паттерн передвижения сменится только после следующего действия? тоесть типа стоит ИИ посреди поля в idle, понимает что он спрятался, видит враг идет и надо ебануть бы его и только тогда он приседает и ползет чтоли?

>Бля не дави плиз((( Рассказываешь о чистоте действий и сразу копируешь строчки кода с новыми условиями и делаешь два похожих действия для стелса и его отсутствия. Интуитивно редактируемо.


если занимают они 3.5 строчки, различаются одной кондицией пререкваермента то чего мудрить. назвал по другому. теперь у нас не StealthAttack, а SneakAttack, положил рядом. может ещё чего потом напишу. например StealthAttack чтобы делать надо сзади подбежать, а SneakAttack можно и не сзади. пока это два разных действия которые требуют хуй да нихуя описания то.

>Про ООП не слышал? Действие не реализует движение, оно описывает его характер.


как характер то описывать придумал?

>Там прямой поиск по графу. H - это hierarchical


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

>Ты кстати и не рассказал какие планы ты строишь и пути ищешь. Вот был пример с обоймой и внтовкой, но почему это не сделать ифами?


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

if {прошло 2секунды после actiona}
...
195 430116
>>30115
Time хранит в себе время с момента запуска сцены. Используй его, Люк.
196 430117
>>30116
Time.time если быть точнее
197 430129
>>30099

>тоесть типа стоит ИИ посреди поля в idle, понимает что он спрятался, видит враг идет и надо ебануть бы его и только тогда он приседает и ползет чтоли?


Ты тралишь? Идл он будет с стелсе путём действия "сидеть в стелсе".

>ну вот лишнее действие! засрано всё


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

>если занимают они 3.5 строчки


А если больше, то уже что то ещё придумывать? А потом ещё что то новое?

>как характер то описывать придумал?


Передавать навигатору экземпляр класса NavigationContext очевидно же.

>а что если ебошить может не только винтовка, есть пистолет, но нет патрон к нему, но есть патроны к винтовке?


Ну то сеть мы лишнего в ГОАП не пихаем, но наличие всех видов оружия и патронов к ним мы там всёже храним?

>но учитывая все варианты цепочка может быть весьма длинной


Но весь однойзначной, не считаешь?
Что мешает сделать по ифу на видимость патронов, винтовки? Подбирание - действие с перемещением уже на ифах реализовано.
198 430130
>>30129
Угаманись блять угаманись пока я тебя не пристрелил.
GOAP это был неудачный эксперимент по использованию планировщиков для ИИ игор. Все признали, что это неудачно и никто сейчас его не использует.
199 430131
>>30130

> Все признали


"Все" это кто?
200 430136
>>30131
ИНДУСТРИЯ
201 430143
>>30141 (Del)

> Или это можно как-то по-другому сделать?


Blend trees.
202 430170
Пилю пиксельную игру. Я так понимаю мне нужно взять одно разрешение, например 16:9, и пилить под него? И если это запустят люди с другим разрешением, то у них это будет с черными полосами по бокам или сверху? По другому никак нельзя? Например расширять поле обзора?
203 430181
>>30170
Пилильщик блин, ты б сначала самые элементарные азы почитал.
Ctrl+Shift+B - Player settings - Resolution and Presentation
204 430182
205 430186
>>30136
И к чему пришла индустрия?
206 430188
>>30186
К тому, что ничего проще и лучше behavior tree нету
http://www.gdcvault.com/play/1023055/AI-Behavior-Editing-and-Debugging
207 430189
>>30188

>Division


Результат заметен.
208 430225
>>30181
Лол. Я уже полгода изучаю юнити, но про это окно узнал впервые. Уже делаю нормальные пиксели, как боженька завещал.
Кстати, зачем нужна галочка "Pixel Snap" на шейдерах? Что именно он снепит?
209 430250
>>30188

>ничего проще


>FSM

210 430263
>>30250
behaviour tree намного проще на самом деле
меньше boilerplate-кода
ты охуеешь делать стейт машины, если у тебя много состояний
211 430272
>>30129

>Ты тралишь? Идл он будет с стелсе путём действия "сидеть в стелсе".


а что гарантировать то будет смену статуса? или что будет гарантировать то что стелс не вскроется потому что ИИ неожиданно захочет грибов собрать?

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


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

>А если больше, то уже что то ещё придумывать? А потом ещё что то новое?


ну а хули? множить классы ничего не мешает пока они компактные.

>Ну то сеть мы лишнего в ГОАП не пихаем, но наличие всех видов оружия и патронов к ним мы там всёже храним?


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

>Что мешает сделать по ифу на видимость патронов, винтовки?


то что вкладки с ифами будут правей чем граница монитора?

>>30130
да что ты. вон на вскидку в третем фолаче ГОАП, в DeusEx:HR тоже ГОАП.

>>30141 (Del)
https://unity3d.com/ru/learn/tutorials/topics/animation/avatar-masks
212 430306
>>30272

>а что гарантировать то будет смену статуса?


Какую смену статуса? Он будет выполнять то, что требует приоритетная цель. Он будет сидеть в стелсе потому что это необходимо для текущей цели и действий, которые к ней ведут.

>или что будет гарантировать то что стелс не вскроется потому что ИИ неожиданно захочет грибов собрать?


Это уже совсем другое действие ведущее к другой цели. Но банально собирание грибов имеет как прекондишн отсутствие врагов.

>я наоборот все разделяю


Ты читал про что речь? Действие идл будет иметь несколько вариантов выполнения в зависимости от стейта. Или же будет несколько действий идл, зависимых от стейта? В чём тогда смысл отбора контроля за ним у планировщика?

>множить классы


>вот 3 строчки копирую, а потом ещё что


>множить классы



>ну а как ещё то?


Завести глобальный стейт для текущего оружия же

>>30263

>behaviour tree намного проще на самом деле


Редактировать деревья гораздо сложнее.

>ты охуеешь делать стейт машины, если у тебя много состояний


>стейт машины


>СТРИПС

213 430312
>>30306

>Какую смену статуса? Он будет выполнять то, что требует приоритетная цель. Он будет сидеть в стелсе потому что это необходимо для текущей цели и действий, которые к ней ведут.


смену паттерна действий. чтобы сел в стелс и сидел там и это не прерывалось ничем пока стелс активен.

>Это уже совсем другое действие ведущее к другой цели. Но банально собирание грибов имеет как прекондишн отсутствие врагов.


тоесть у тебя будет отдельно собирание грибов чтоли? не будет дженерик действия "собрать предмет"? а что если надо оружие поднять в бою?

>Ты читал про что речь? Действие идл будет иметь несколько вариантов выполнения в зависимости от стейта. Или же будет несколько действий идл, зависимых от стейта? В чём тогда смысл отбора контроля за ним у планировщика?


слыш, мне вот интересно. а у тебя будет 3-5 вариантов под каждое действие чтоли? типа, идл в стелсе, идл нервный, идл хромой, идл выпивший и прочее? или вот если у тебя статус хранится как флажок в ГОАП, то как ты будешь менять модификаторы трешхолда у гоалов которые изначально бы зависели от статуса персонажа? когда например если персонаж счастлив то он мороженое хочет покупать, а когда грустно ему то он виски выпить в баре хочет.

>Завести глобальный стейт для текущего оружия же


а типы патронов как различать, м?
214 430335
>>30312

>не прерывалось ничем пока стелс активен.


Написано же следование приоритетной цели, если текущий план валиден, то ничто не прервёт стелс.

>не будет дженерик действия "собрать предмет"? а что если надо оружие поднять в бою?


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

>типа, идл в стелсе, идл нервный, идл хромой, идл выпивший и прочее?


Да. Часть действий можно конечно свернуть в одно, если это не влияет на планирование.

>или вот если у тебя статус хранится как флажок в ГОАП, то как ты будешь менять модификаторы трешхолда у гоалов которые изначально бы зависели от статуса персонажа?


Процедурно извне.

>когда например если персонаж счастлив то он мороженое хочет покупать, а когда грустно ему то он виски выпить в баре хочет


Некорректное сравнение со стелсом. Грустным или радостным персонаж становится извне, что может менять приоритеты целей. Но в стелс АИ должен уходить сам, добивая своей цели по уничтожению противника.
215 430341
Мимо тот же переселенец с флэша. Мануалы не читай - гдач спрашивай!

Сделал простенький дисплейчик - картинка и текст, прилепил на него скрипт (MyYobaDisplay), где на Start считываю компоненты дисплейчика в переменные и есть метод SetData(data:MyYobaData), в котором компонентам из переменных задаю параметры из этой самой даты (тексту стрингу, картинке цвет). Сделал "окно" в которое накидал с десяток таких дисплейчиков. Сделал контроллер окошка, в нем на Start ищу все MyYobaDisplay-и, сохраняю их к себе и генерю для них MyYobaData-ы, и сразу им прокидываю. Но поскольку Start бати (контроллера) логично дергается раньше чем Start чилдов (дисплеев), то в момент когда батей делаю SetData им, у них внутри еще нет ссылочки на их компоненты и они не могут нормально покраситься исходя из прокинутой датки.

Внимание вопрос: как "батей" грамотно подождать инициализации всех чилдов? Делать костыль с флагом на первом апдейте? А не будут ли тогда на долю секунды видны пустые белые хуйни с дефолтным текстом у MyYobaDisplay-ев? В юньке наверняка есть более грамотный метод шобы сделать пиздато... Может эвент какой подождать надо и на нем уже датку прокидывать? Как тру пацаны делают?
216 430344
>>30341
upd:
Сделал очевидное решение - у дисплея храню датку внутри, и перерисовываю его на Start исходя из датки. Но все равно сцуко медленно, запустив сцену кнопочкой Play в юньке, сначала вижу почти полсекунды дефолтный белый дисплей и только потом он окрашивается в нужный цвет. Как-то можно запилить чтобы он сразу выглядел как надо?

И вообще почему так, это GetComponent такой медленный или другие причины (дебаг билд?)?
217 430397
Необходима следующая логика (опишу на примере TD, хотя у меня не TD, это неважно): вот есть активные объекты (башни), есть крипы. Башням надо искать следующую цель: она берёт список крипов, итерируется по нему и находит нужного пиздюка. Делает она это с помощью FindGameObjectsWithTag("пиздюк"). Проблема в том, что башен много и пиздюков много. Как грамотней реализовать? Создать один скрипт, который хранит пиздюков: удаляет/добавляет в список, а остальные башни лезут к нему за инфой? Как сделать так, чтобы этот срипт запускался вперёд скриптов башен, чтоб инфа была актуальна?
Clip2net170330002004.png2 Кб, 507x343
218 430410
Что вы обычно делаете глобальными переменными? Я просто не совсем понимаю когда их нужно использовать. Хорошая ли идея сделать глобальной переменной ссылку на объект игрока?
219 430412
>>30411 (Del)
Анти-паттерн.
220 430413
>>30397

>Как грамотней реализовать? Создать один скрипт, который хранит пиздюков: удаляет/добавляет в список, а остальные башни лезут к нему за инфой?


Да.

>Как сделать так, чтобы этот срипт запускался вперёд скриптов башен, чтоб инфа была актуальна?


Awake? Ну или в редакторе можешь поменять очередность выполнения скриптов. Но через Awake, думаю, все решится.
Ну и если хочешь ссылаться башнями на эту логику, то вызываешь в этой логике ивент по удалению/добавлению пиздюка, типа OnPizdukiListChanged. Ну и в классе башни подписываешься на этот ивент. Через ObservableCollection можно ебануть, например.
221 430414
>>30397
Алсо, всякие там "Find" и "GetComponent" без крайней надобности не используй, ну или когда не важны фпсы, например(загрузка сцены там, еще чего-нибудь). Конкретно здесь они, например, нахуй не нужны. Да и вообще, я бы сказал, нужны крайне редко или не нужны вовсе - нужно лишь сделать нормальную архитектуру.
222 430427
>>30420 (Del)
Я, например, делаю игру один и могу сказать, что вообще не похуй. Захочешь сделать какой-то скилл, например, или предмет там - тебя трахнет твой собственный код, а точнее ты сам себя трахнешь. И будешь сидеть и голову ломать, как в своей же понаписанной архитектуре что-нибудь добавить. Или будешь переписывать и в итоге придешь к тому, что надо было сделать изначально.
С нормальным же кодом, архитектурой, решение новых задач становится легким, приятным и лаконичным. Твой код сам тебе подсказывает решение и даже может делать за тебя всю работу.
223 430433
>>30427

>скилл


>синглтон


Твоя проблема не в синглтонах, а в том, что ты не очень умный.
224 430435
>>30335

>Написано же следование приоритетной цели, если текущий план валиден, то ничто не прервёт стелс.


я то про сохранение стелса на протяжении нескольких планов.

>Дженерик собирание грибов с динамическими прекондишенами. У нас же обратный поиск, планер будет знать контекст подбирания предмета.


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

>Да. Часть действий можно конечно свернуть в одно, если это не влияет на планирование.


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

>Процедурно извне.


>Некорректное сравнение со стелсом. Грустным или радостным персонаж становится извне, что может менять приоритеты целей.


что ещё за "извне"? это вопрос того где хранить переменные с модификаторами чтоли? типа у ИИ есть ещё какой-то внешний советчик который говорит ему его статус?

>Но в стелс АИ должен уходить сам, добивая своей цели по уничтожению противника.


как-бы стелс это такой-же модификатор трешхолдов для целей же. ИИ хопа в стелсе и сразу у целей связанных с стелсом меняются приоритеты.

>>30341

>Сделал простенький дисплейчик - картинка и текст, прилепил на него скрипт


если у тебя такая вложенная иерархия то не имплементируй Start/Awake/OnEnable у его чайлдов, а просто заведи метод у них "DoShit(ParrentClass)" и вызывай его из верхнего класса передавая в параметры самого себя. ну или ещё лучше - паредавай не инстанс класса, а интерфейс.

>>30397
на самом деле поиск через FindGameObjectsWithTag мало чем отличается от того что ты сам будешь список говна составлять, юнити же не ходит по всей сцене когда ты это вызываешь, оно тебе просто список говна возвращает. хотя применимо это разве что для тагов. на мой вкус у тебя всего одна проблема - нахождение ближайшей цели. тут уже манипуляции в духе дистанции без квадратного корня врядли спасут. может quadtree ебанешь чтобы весь список не перебирать хотя-бы?

>>30410
все что существует в одном экземпляре, или то что регулярно чем-то из этого списка используется.

да, идея хорошая, но НЕ следует пользоватся этой переменной всегда-всегда. например вот надо сказать камере "следуй за игроком" и камера полетела взяв ссылку на игрока и схватила его трансформ. или вот менеджер интерфейса чтобы хочет показать сколько у игрока ХП, лезет в глобальную переменную и смотрит сколько там у него ХП и показывает. а если у тебя там в игре снаряд разорвался, то разумеется лезть в такую глобальную хуйню не следует.
224 430435
>>30335

>Написано же следование приоритетной цели, если текущий план валиден, то ничто не прервёт стелс.


я то про сохранение стелса на протяжении нескольких планов.

>Дженерик собирание грибов с динамическими прекондишенами. У нас же обратный поиск, планер будет знать контекст подбирания предмета.


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

>Да. Часть действий можно конечно свернуть в одно, если это не влияет на планирование.


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

>Процедурно извне.


>Некорректное сравнение со стелсом. Грустным или радостным персонаж становится извне, что может менять приоритеты целей.


что ещё за "извне"? это вопрос того где хранить переменные с модификаторами чтоли? типа у ИИ есть ещё какой-то внешний советчик который говорит ему его статус?

>Но в стелс АИ должен уходить сам, добивая своей цели по уничтожению противника.


как-бы стелс это такой-же модификатор трешхолдов для целей же. ИИ хопа в стелсе и сразу у целей связанных с стелсом меняются приоритеты.

>>30341

>Сделал простенький дисплейчик - картинка и текст, прилепил на него скрипт


если у тебя такая вложенная иерархия то не имплементируй Start/Awake/OnEnable у его чайлдов, а просто заведи метод у них "DoShit(ParrentClass)" и вызывай его из верхнего класса передавая в параметры самого себя. ну или ещё лучше - паредавай не инстанс класса, а интерфейс.

>>30397
на самом деле поиск через FindGameObjectsWithTag мало чем отличается от того что ты сам будешь список говна составлять, юнити же не ходит по всей сцене когда ты это вызываешь, оно тебе просто список говна возвращает. хотя применимо это разве что для тагов. на мой вкус у тебя всего одна проблема - нахождение ближайшей цели. тут уже манипуляции в духе дистанции без квадратного корня врядли спасут. может quadtree ебанешь чтобы весь список не перебирать хотя-бы?

>>30410
все что существует в одном экземпляре, или то что регулярно чем-то из этого списка используется.

да, идея хорошая, но НЕ следует пользоватся этой переменной всегда-всегда. например вот надо сказать камере "следуй за игроком" и камера полетела взяв ссылку на игрока и схватила его трансформ. или вот менеджер интерфейса чтобы хочет показать сколько у игрока ХП, лезет в глобальную переменную и смотрит сколько там у него ХП и показывает. а если у тебя там в игре снаряд разорвался, то разумеется лезть в такую глобальную хуйню не следует.
225 430613
Есть ли какие-то профиты от использования мультитрединга в юньке? Я так понял, Unity API можно вызывать только из главного потока, соответственно, потоки стоит использовать только для расчетов каких-то своих? Типа построение маршрутов для ИИ, но подвинуть модельку этого ИИ ты не сможешь из соседнего потока хотя можно построить велосипед с передачей команд в главный поток и корутинами, но это другая история

И получается, всё что касается использования ядер и так далее - можно вообще не заморачиваться, ибо никаких настроек в юньке по этому поводу толком нет, а что можно - само разобьётся по нужным ядрам?
226 430626
Что вообще такое эти ваши префабы? Я имею в виду, как они хранятся в райнтайме, что они такое? Насколько верным будет утверждение, что это просто ГО, которые Disable+readonly?

Вот допустим есть у меня префаб prefab_manager, он имеет ссылки на все префабы. Так же есть ГО game_manager, которые имеет ссылку на префаб (не ГО!) префаб_менеджера. Когда гейм_менеджер хочет инстанциировать камеру, он делает типа Instantiate(prefab_manager.camera_prefab);

И вот чего я здесь решительно не понимаю, так это почему не выдаёт ошибку о том, что кагбэ экземпляра префаб_менеджера не существует! А ведь camera_prefab это не статическое поле! То есть без создания экземпляра префаб_менеджера мы не должны иметь доступа к полям, ибо их вообще нет нигде, они никому не принадлежат. Но пример абзацем выше работает. Почему?!

Окей. Вот еще пример. Есть в сцене ГО, в скрипте которого написано public SomePrefab sp; и потом в редакторе назначаем ссылку на этот sp - перетаскиваем SomePrefab в инспектор того ГО, который в сцене.

Так как SomePrefab является ссылочным типом, а нигде в коде я не делаю new или присваивание, но при этом экземляр типа SomePrefab доступен, как и все его поля (не статичные!), то получается только один вариант? Юнити имеет ГО этого SomePrefab и мы работаем с ним.

И что, если у меня в качестве этого SomePrefab будет огромный уровень или еще что-то такое с "тяжелыми" компонентами и так далее? Получается, юнити создаёт как минимум по одному экземпляру каждого префаба? Что жрёт оперативку и тд и тп....

Где я не прав? Буду рад любой информации.
227 430635
>>30613
йеп. потоки в юнити только для какой-то своей хуйни, а что-то этакое оно сделает само.

ну а профиты разумеется есть когда ты делаешь какую-то хуйню которой в главном треде быть не должно

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

кстати эти ссылки переживают сериализацию юнити, при повторной загрузке они по прежнему будут ссылатся на один и тот-же объект.

у юнити кстати ещё и специальная хуйня существует ScriptableObject которая специально для хранения данных, а не геймобжектов которая так-же сериализуется.
хотя имеет свои минусы.
228 430639

>а также ваши доходы ограничены 100 000 долларов в год


Не понял, как это регулируется? Вот встрою я в свое говноподелие трусики на героиню за донат, и кто будет следить за объемом доходов?
Мимо ньюфаг
229 430670
>>30059
Чёт я глянул на шейдоры - трудна.
Ну, допустим, я буду использовать сорт оф дисплейсмент и во время игры рисовать по текстуре. А с нормалями чё делать? Никакого волшебного рекалкулейт нет. В интернетах какие-то грандиозные алгоритмы.
230 430691
>>30626
>>30635
Вообще, кстати, юнити далеко не всегда создает инстансы обьектов, если тебе интересно. если хочешь то воспользуйся https://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.html чтобы узнать когда там че происходит.

впрочем префабы с охуительными массивами в компонентах действительно могут обосрать все.

>>30670
rконечно трудно, там кругом всякие тайные слова.
https://docs.unity3d.com/ScriptReference/Mesh.RecalculateNormals.html это чтоли хочешь
231 430696
>>30691
Оно, только мне в шейдоре нужно.
232 430705
>>30696
а, это. а хуй его знает, можно самому считать нормали конечно. но вообще как насчет того что иметь две текстуры? одну для дисплейсмента другую для нормалей. можно же на местах куда давят не только глубину брать, но и нормаль того что камера видит и поворачивать её наоборот.
233 430708
>>30705
Где это почитать можно? Не совсем понимаю, как это всё с глубиной и камерой. Я предполагал просто рисовать чёрным по серой текстуре.
234 430714
>>30708
даже не знаю откуда начать и чего тебе такого дать. почитай про render texture наверно для начала, камера может рендерить туда, а ты берешь оттуда.
235 430721
>>30714
а во. https://docs.unity3d.com/Manual/SL-CameraDepthTexture.html отдельная страничка даже есть
236 430909
В чем суть сериализации? Каждая вторая статья по юнити говорит мне СЕРИАЛИЗАЦИЯ, СЕРИАЛИЗАЦИЯ!!! МОНОБЕХИ ДЛЯ ЛОХОВ, ScriptableObject ДЛЯ ПОЧОНОВ! и тому подобное.

Но я никак не могу вдуплить. Зачем нам какая-то там сериализация, типа сохранять данные обьекта как последовательность байтов, если мы можем не записывать всё подряд а написать просто пару цифр, подразумевая что первая, например, это LVL, вторая это HP и так далее. Это же быстрее, меньше писанины в файлах, и никаких заморочек с атрибутами и возни с капризами юнити аля "ЭТО Я ХОЧУ СЕРИАЛИЗОВАТЬ, ТО Я НЕ ХОЧУ, БУДУ СБРАСЫВАТЬ" etc

Типа последовательность байтов быстрее считывается, чем просто несколько циферок, несмотря на то что в первом случае размер файла будет гораздо больше?
Или может это как раз для "удобства"? Типа написал чето в стиле "ну-ка, юнька, сериализуй-ка мне объект враг_3182", и типа можно не заморачиваться, какие там переменные хуеменные, позиция, вращение, кадр анимации, итд?
237 430943
>>30909

>написать просто пару цифр, подразумевая что первая, например, это LVL, вторая это HP и так далее


писать свою сериализацию то не затрахаешься на каждый тип данных?
238 430949
>>30909
Сериализация она разная бывает.
Я десериализую игровые объекты из json-файлов, например. Добавлять новые быстро, удобно, и не требует пересборки проекта. Это первое.
Второе - без сериализации ты не запилишь сейвы.
239 430956
>>30909

>мы можем не записывать всё подряд а написать просто пару цифр, подразумевая что первая, например, это LVL, вторая это HP и так далее



Избирательная сериализация, это тоже сериализация. Если ты хочешь делать это сам, то ради бога. Однако изначальный смысл использования Юнити это отсутствие необходимости изобретать собственные велосипеды и тратить на это время. Поэтому оно так и преподносится, дескать всё для тебя заранее запрограммировали, надо только вызвать пару методов.
240 430966
>>30956
хуево сделали только. юнити нонстоп сериализует всё подряд, они так и не сделали сериализацию абстрактных переменных. ещё эти манипуляции с hideFlags. гондоны.
241 430996
В соседнем треде задавал вопрос, но все скатили в метание говном и троллеркоастер. Спрошу здесь.
Использую [SerializeField] на все поля, которые хочу задавать через редактор, но не хочу делать public. Можно ли так вообще делать? Чем это может быть чревато?
242 430997
>>30996
да ничем. сериализует и ладно.
243 431052
>>30721
Спасибо. А не становится ли оно всё слишком сложно для мобилки?
Безымянный.jpg48 Кб, 545x417
244 431100
>>28774
совершена первая в истории человечества конпеляция. ну почти.

в общем, я столкнулся с теоретической проблемой. так-как граф один, а функций как минимум ДВЕ (vertex и fragment), то теоретически ведь может получиться так, что будет такой конфликт зависимостей, когда один node использует значение другого, который вычисляется уже после него или вообще в другой функции. Как-то так.
245 431147
>>31052
Блять, да ну его нахуй. Ещё эти обрывчатые сведения по самым тёмным углам интернета собирать. Лучше вертексы двигать.
246 431265
>>27717 (OP)
Когда выходит Юнити 2017?
247 431268
>>31265
В 2017
g-pe8LXh.jpeg24 Кб, 400x400
248 431310
249 431313
>>31100
В общем я решил сделать по дереву для каждой функции шейдера отдельно.
Непонимаю, почему во всех редакторах все сведено к одному дереву. Это сильно ограничивает программируемость шейдеров
250 431316
>>31313
По сути, все что можно напрограммировать в вертексном шейдоре во всех нодовых редакторах - это всего-лишь добавить смешение вершине. И все.
cimg3709.jpg25 Кб, 530x438
251 431610
Извиняюсь за нубский вопрос, но как все-таки правильно двигать объекты? Везде блин противоречивая информация.

Как я понимаю: беру трансформу с коллайдером, цепляю rigidbody, без rigidbody двигать коллайдеры табу, ибо они static(или нет?). Далее, если тело кинематическое, я двигаю его через Rigidbody.Moverotation и Moveposition. Или через transform.position/rotation?? Есть разница? Одни пишут что через трансформу - нельзя, другие - что нужно, третьи советуют гонять трансформу вообще без rigidbody.

И еще, с чем все-таки сочетается CharacterController, с кинематическим телом??? Без rigidbody? В примерах вроде кинематика стоит.

Если не кинематическое, вроде все понятно, AddForce/AddTorque...
252 431691
>>31636 (Del)
С аддфорсом у тебя получается реалистичная физика, с инерцией и прочее, или ты трением все это гасишь?

Нашел кстати вот исследование по коллайдерам:
https://forum.unity3d.com/threads/moving-static-colliders-performance.474772/

Говорят начиная с Юнити 5 можно двигать статику(коллайдер без ригидбоди), и это даже быстрее, чем кинематика. Кажется, документация пиздит.
253 431876
>>31691
Черт, кинематика проходит сквозь стены. Как же ее тогда использовать? Неужели есть два стула - реалистичная физика или CharacterController? Или самому писать детектор коллизий...
1323824808029.jpg76 Кб, 640x422
254 431900
>>31876
Похоже зря я выебал себе мозги, можно юзать обычное ригидбоди, и двигать его MovePosition. Слишком серьезно подошел к документации, мать ее за ногу.

Еще такой момент, видел в видосе в FixedUpdate домножали вектор передвижения на Time.FixedDeltaTime. Но ведь фикс апдейт и так фиксированный, по идее это сработает просто как константа?
148008596513659517.jpg55 Кб, 600x440
255 431960
>>31908 (Del)
Ну да, либо как ты говоришь, либо через MovePosition. Кстати глянул, в туториале они двигают через MovePosition в FixedUpdate, домноженный на time.deltaTime(чтобы обеспечить независимость от степа FixedUpdate, который оказывается можно менять). Такие дела.
256 432211
>>31960
На time.deltaTime умножают чтобы скорость движения была одинаковой при любом FPS.
257 432542
>>31960
>>32211
Чов? Дельтатайм в фикседАпдейт? Что за хуйня?
sresh.png43 Кб, 342x784
258 432920
Учимся программировать на Среше...
259 432933
>>32920
Проснись, ты программируешь!
260 433181
>>31100
клева, да.
а я эти дни потратил на вдумчивое чтение того говна что сунули в это dll. репу почесал и подумал что что-то мне эта хуйня не нравится. в итоге занимался тем что скурчивал сидение и колеса от этого велосипеда и приделывал к своему.
пока приделывал, кстати, обнаружил что есть такая хуйня как GenericMenu которое вот для контекстных меню сделали специально. сразу все стало по человечески.

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

>>31316
ещё вертексное освещение же делать можно и вабще

>>31052
да вроде нормально! рендерить только глубину и нормали то уж мобилки смогут.

>>31147
а ты все равно пытайся! вот у меня только с третьего наскока мотивации хватило. там везде какие-то тайные знания, да. зато какое могущество! смари какую хуйню можно делать в вычислительных шейдорах! здорово же

>>32542
в документации кстати написано что дельтатайм имеет разный результат в апдейте и фиксед апдейте. сам не проверял.
261 433265
>>33181
Ты откуда такой продвинутый? Я тоже так хочу.
262 433342
>>27717 (OP)
Посоны, а есть тут какие-нибудь КОМАНДЫ? Чтобы сидели в своих сычевальнях и вместе делали что-то. Есть такие? А можно к вам?
263 433473
>>33181

> в вычислительных


Я и простые-то осилить не могу. А в чём соль вычислительных - даже не понял. В том, что они могут вернуть какую-то информацию процессору? И с мобилками не понял. Будто они плохо дружат.
Снимок экрана 2017-08-08 в 16.04.59.png41 Кб, 629x363
264 433492
Ну что вот за хуйня
Пытаюсь выстрелить из калаша процедурно созданным шаром--
он летит прямо как надо,но как только я через instantiate стреляю префабом пули -- она летит в точку 0,0,0 или хз еще куда,при том что код тот же самый,ниче не меняется,префаб пули никакого кода не исполняет,повернут как надо,все 10 раз перепроверил
265 433526
>>33265
тогда садись и крути это говно днями.

>>33473
вернуть информацию могут в общем-то и обычные если похитрить. но в целом да, это вот написание программы для выполнения на видеокарте. если надо сделать какие-то вычисления с плавающей запятой тяжелые то на видеокарте то они за мгновения делаются. там же добрые несколько терафлопсов прохлаждаются. а круты то они много чем. например тем что внутри нескольких потоков можно синхронизировать память. например смотри на картинки.
вот где точки зеленые рисует их обычный шейдор, потом в этот буффер лезет вычислительный шейдор, двигает их там и они очень очень быстро крутятся вокруг выбранной мной точки. и их там я поставил чтоли лол десять миллионов. а фпс так и не просело. очень понравилось крутить эту тучу точек.
или например там где цыферки это какраз синхронизация памяти. группы потоков в общую память суют свой индекс, а он потом суммируется в первом у группы потоке.
или там где треугольник в квадратике - это прототип того что происходит с кубом без дна и верха. что-то более практичное. желтые линии это границы этих кубиков, шейдор выдает минимальную и максимальную высоту у нужной мне фигуры конкретно в этом месте.
вот какую-то тяжелую симуляцию с этой магией делать вообще заебись.

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

>>33492
да ты код нам дай, мы же не провидцы
266 433537
>>33526
Впечатляющая штука. А может ты ещё и литературы по ним подкинешь? Или видосиков на трубе хватит? Ну и, собственно, куда их цеплять? Обычный в материал втыкается, а этот куда?
267 433558
>>33537
по ним информации довольно много можно найти на самом деле, она больше собрана в кучу. вон на хабре например приятная статья была https://habrahabr.ru/post/248755/ правда про то какие индексы каким тредам присваиваются нигде нормально не рассказывают и там тоже есть свои тайные слова которые можно в код добавлять.

цеплять их никуда не надо, надо создать через Create>Shader>Compute Shader, потом сослатся на него, сунуть в него данные, взять кернел и сказать ему чтобы он делал все. а потом забрать то что он сделал. или не забирать а заставить другой шейдор залезть туда и нарисовать.

с мобилками правда оно не особо дружит, если тебе это важно. но хоть с синтаксисом ознакомишься, может после этого и в обычные шейдоры проникнешь.
268 433563
>>33558
Во, отлично, спасибо. Ну а на ведре потом сам гляну, как оно будет себя вести.
269 433568
>>33181

>у меня есть схожая проблема. нельзя чтобы на графе были замкнутые круги.


лел, тоже об это подумал. Я так понимаю, что такие закольцованые ноды - это ошибка. Как это во всяких Shader Forge сделано, интересно.

А как-ты вычисляешь значения в своих нодах?
270 433594
>>33568
иерархично снизу вверх. в прошлом прототипе у меня были ноды-ассеты, где в качестве инпута были собственно всякие ассеты. какие-то ноды рисовали траву, какие-то деревья, какие-то текстурки на земле, какие-то геймобжекты расставляли всякие вроде грибочков под деревьями. ноды-ассеты смотрели: "у нас есть такие слоты, граф, давай мне инпут из этих слотов". граф лез в ноды которые присоединены в этот слот и просил аутпут уже у них, а если ещё и этим нодам нужен какой-то инпут то так и следовал по цепочке до самого верха. ну и все это разумеется громко ругалось в консоль если я пытался применить граф с нодами где не заполнены слоты с обязательным инпутом.

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

а в шейдор фордже не знаю. я им не пользовался. наверно примерно так-же. проверяют и кнопка "сделать шейдор" не включается пока граф не валиден. наверно тоже проверяют всю цепочку чтобы левые ноды смотрели только в сторону инпута, а правые только в сторону аутпута.
271 433605
>>33594
хотя кстати хуй даже знает как поступать с всем этим многообразием типов. всякие там float float2 float3 float4 float4x4 и так далее то. для каждого типа свои специфичные ноды чтоли писать?
272 433623
>>33563
кстати чуть не забыл. http://on-demand.gputechconf.com/gtc/2010/presentations/S12312-DirectCompute-Pre-Conference-Tutorial.pdf обязательно прочти. на тему оптимизации. там пошагово на пальцах обьясняют как можно сделать очень быстрым что-то такое элементарное как суммирование всех элементов массива.
sfssmainpagea.jpg545 Кб, 1613x907
273 433641
>>33594

>но как такую схему перевести в текст у меня довольно мутные идеи


у меня пока наоборот, при компиляции все ноды добавляются в список снизу-вверх, а потом выполняются сверху вниз. идея в том, что каждая node это что-то вроде сниппета кода.

я имел ввиду обновление нод при изменении параметров. всякие текстурки там в риалтайме.
274 433660
>>33641
а, предпросмотр промежуточных результатов. а если честно хуй его знает. не выглядит как то что следует делать шейдорами. может сделать в нодах имплементацию на шарпе специально для предпросмотра результатов?
275 433683
Кто-нибудь продажей ассетов в юнити-сторе занимается? Что там лучше всего покупается, кроме мошн-паков?
А то смотрю, количество юнити-лохов всё растёт и растёт, похоже на них можно неплохо зарбатывать, но слабо представляю, что пользуется спросом. Шейдеры? Расширение функционала самого движка? Гуи? Наборы "сделай игру жанра Х"?
276 433728
>>33683
Чтобы в сторе поделие продавалось, мало сделать что-то нужное всё то, что юнети не предаставляет из карёпки (AI, диалоги и т.д.), но нужно и понятно преподать: тьюториалы на ютюбе, практичные примерчики. По статистике у таких и больше покупают.
Без имени-1.png2 Кб, 286x37
277 433739
>>33623
Далеко я не уехал.
278 433741
>>33526
так дело не в коде,код работает когда создаю шар
а когда создаю префаб он не работает
я думаю это баг движка
279 433743
>>33683
я за так отдаю свое. в топ пэйд долгое время висит А*. вообще я сомневаюсь что можно продать что-то из разряда того что юнити напильником дорабатывает и надо всем. конкурентов много, сделать лучше чем они сложно. продавать красивые модельки и анимации скорей всего лучший вариант.

>>33739
это ожидаемо и я говорил

>>33741
думаю это твой баг, а не баг движка. поэтому давай показывай все, а мы подумаем кто виноват и как это исправить.
280 433745
>>33743
кстати о багах юнити. покажу один старый но забавный. до сих пор никаких идей как же это вышло. воспроизвести не смог. обычный вид сцены, слегка необычный вид сцены, вид сцены когда я камерой покрутил
281 433747
283 433793
>>33792

> sypermarket


Простите, я обдолбан.
284 433798
>>33797 (Del)

>> 3 пик очень всратый из-за пола


- Это "холодильная камера"
По этому пол там и такой =)
285 433845
>>33804 (Del)
?
Не совсем понял как бы..
286 433865
>>33845

>УЕЧ


>вконтакте


>AIMP


>спизженные substance painter, photoshop и maya


>васянская тема


Эталонный набор говноеда
287 433870
Бывает, у объекта есть дочерние объекты, которые должны двигаться за ним, но не должны вертеться вместе с ним. Вот думаю, стоит их отделять через transform.parent = null, или проще вертеть каждый фрейм, возвращая им изначальный поворот? Первое решение ведет к дополнительным усилиям при включении/выключении объекта, и при повторной инстанциации(нужно следить за остатками). Может есть какое-то элегантное решение проблемы?
288 433874
>>33870
Риджидбади на дочернем объекте есть?
289 433875
>>33874
Нету.
290 433878
>>33875
Ну тогда что-то типа такого.

void Start () {
Quaternion origRotation = transform.rotation;
}

void LateUpdate () {
transform.rotation = origRotation;
}
291 433879
>>33878
А, не, объявлять в старте не надо, там только определять.
Короче, ты понял.

Quaternion origRotation;

void Start () {
origRotation = transform.rotation;
}

void LateUpdate () {
transform.rotation = origRotation;
}
292 433893
>>33342
Может есть какие конфочки?
Чтоб там можно было смотреть дейли прогресс всяких упоротых и задовать и отвечать на глупые вопросы?
293 433908
Где бест практисес для структуры проекта и основных классов на ивенты и интерфейсов можно посмотреть?
А то хочу влезть в юньку, ничего не знаю, и хочу поддерживаемый проект, чтобы хватило сил докончить
294 433916
А чего, поменять цвет индивидуального вертекса нельзя? У меня так не работает. Приходится менять в копии массива и присваивать массив целиком.
295 433918
>>33865

>> Эталонный набор говноеда


Всё, откукарекался?
296 433929
>>33916
Ты тупой.
297 433933
>>33929
О, заебись, заработало. Спасибо.
298 433958
Юнитач, приводить типы в апдейте это плохая идея, да? Да.
Без имени-1.png8 Кб, 710x132
299 433960
Почему я таким образом всегда получаю позицию первого по порядку колеса, которое не в воздухе?
300 433977
>>33960
Блять. Пиздец какой-то. Нихуя не понимаю.
301 433982
Девач, есть специфическая проблема. Хочу перевести чужую игру на юнити. Вопрос: как можно это сделать? Можно или из уже скомпилированной игры вытащить исходники? Можно ли отдельно найти файлы с текстом? Как?
302 434028
>>30059

>что у тебя за проблемы такие? нахуй ты в трансформ вообще лезешь если у тебя RB? если у тебя RB то манипуляции уже делай все через него. у тебя же специальные AddForce, AddTorque и прочие есть которые гарантируют тебе что все будет через физон.


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

Кстати, а вот касательно мобов вопрос. Им же по сути вообще rigidbody не нужен, только при смерти, по логике?
dsc00820.jpg621 Кб, 1584x1600
303 434031
Разбираюсь вот с Фотоном, прикрутил по дефолту PhotonTransformView, а там такое написано:

currentPosition = Vector3.Lerp( currentPosition, targetPosition, Time.deltaTime * m_Model.InterpolateLerpSpeed );

Это я чего-то недопонимаю, или у них детская ошибка в лерпе? Оно же неравномерно двигаться будет. Надо видно свой скрипт писать. Если есть фотонщики, каково ваше мнение?
304 434032
>>33982

>вытащить исходники


Нет.

>найти файлы с текстом


Если автор их выкладывал, то можно.
305 434033
>>33958
Тащемта нет.
И вообще не надо ничего оптимизировать, если оно не тормозит.
306 434034
>>33870
Сделай им обоим общего родителя, который двигается, и вращай только того чайлда, которого нужно.
game.png4 Кб, 287x226
307 434038
>>34032
Потыкался. Нашёл файлы без расширения, открыл. Весь текст в 50+ файлах примерно такого вида. Втупую заменил одну фразу на русский перевод - игра кмк просто не стала загружать этот файл, т.е. запустилась, но на сцену с заменённой фразой не перешла. Вернул обратно - нормально. Поменял кодировку файла (они изначально в ansi) - игра крашнулась.
14205117567140.jpg106 Кб, 707x682
308 434043
>>34038

> Втупую заменил одну фразу на русский перевод

309 434053
>>34043
Я пытался попробовать даже откровенную хуйню.
310 434064
>>33893
есть одна но ты туда не ходи там какие-то мудаки сидят.

>>33958
на самом деле не особо. что-то на уровне "похуй".

>>34028
включи ка профайлер в юнити и посмотри.
311 434068
>>27717 (OP)
Посоветуйте, как более эффективно вкатиться в эти ваши скрипты? Я неделю пытаюсь разные фишечки реализовывать, просто, чтобы научиться скриптить.

Не смотря на то, что я никогда в жизни не занимался программированием, мне вроде всё кажется интуитивно понятным. Но проблема в том, что если я хочу хоть что-то реализовать, то мне надо сидеть и часами гуглить свою вещь. Почему часами? Да потому что я не знаю английский. Пробовал почитать книгу "Юнити в действии", но как и везде, там описаны какие-то частные вещи и, если, я, например, хочу сделать продвинутый ИИ или что-то в этом роде, то уже зная и представляя, как это будет работать, я просто гуглю сами команды языка. Собственно, есть ли кто-нибудь, кто как я вкатывался с нуля и, в итоге, нормально так умеет? И что можете посоветовать для более качественного развития?
312 434073
Есть смысл читать книгу из шапки, если я имею опыт в проганье, но не имею в использовании игровых движков? Или книга для совсем ньюфагов?
А то я к книгам по разработке отношусь предвзято.
313 434082
>>34064
Можно организовать другую конфу. И редкостных мудаков кикать. Просто я хз, есть ли вообще желающие. Т.к. может и тут хватает общения?
Запилить дискорд сервер то просто
314 434084
>>34068

>Да потому что я не знаю английский.


Тебе нужно учить не скрипты, а английский, сынок.
315 434085
>>34073

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


Читай внимательнее, блин.

> Если ты уже умеешь использовать язык


> Крайне рекомендуется купить/скачать книгу Unity in action



Перевожу: книга как раз для тех, кто умеет кодить, не не знает движок.
Так что ответ на твой вопрос: да.

Научитесь же вы читать уже
316 434086
>>34085
*но не знает движок
317 434114
>>34038
Реквестирую какой-нибудь материал про юнити и кодировки, потому что чую проблему в них. Как юнити работает с кодировками?
8.png90 Кб, 400x388
318 434116

> length =5;


> vertPerSide = 10;


> float step = length / vertPerSide;


> print(step);


> 0


Я, наверное, с ума схожу, да?
energybeambylyriclychallngd.jpg114 Кб, 500x900
319 434119
Как сделать эффекты энергетических лучей(пиу-пиу)? Есть какие-нибудь годные туториалы? Что мне приходит на ум, так это пустить частицы префаером с вращением, но как-то не уверен, опыта очень мало.
320 434120
>>34116
float a = 5;
float b = 10;

void Start () {
float c = a / b;
print (c);
}

Выдаёт 0,5. Ищи где ты наговнокодил.
321 434123
>>34120
Блять, да у меня ж инты делились. Вот оно что. C (float) перед делением всё нормально.
322 434126
>>34114
Да какого же хрена он читает скрипты только на ansi? В utf вылетает, у меня идей нет.
323 434127
>>34119
Еще нашел вариант - эмитить из цилиндрического меша в разные стороны, вроде как живенько, но частиц получается дофига. Как сделали бы батьки?(инбифо пошли в магазин и купили ассет за 300$)
324 434235
>>34068
лучше английский выучи чтобы хоть что-то на базовом уровне понятно было, хоть в процессе поиска доучишь. это анальное страдание будет у тебя без этого

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

>>34082
это так не работает

>>34119
https://www.assetstore.unity3d.com/en/#!/content/5141
вон старый экзампл почитай. если бы я хотел сделать какое-то там вращение то я бы наверно сделал процедурненько цепочку рэйкастов чтобы лучик пускать, потом вокруг него ещё повращал бы сколько-то линий красиво через лайн рендерреры вычисляя их позицию относительно основной линии, ебанул бы партиклов красивей с обоих концов.
325 434262
>>34068

> Пробовал почитать книгу "Юнити в действии"


Нахуя ты читаешь книгу, которая рассчитана на тех, кто уже знает язык, при этом сам язык ты не знаешь?
9O0LwXruMJQ.jpg16 Кб, 500x340
326 434272
Вот у меня есть префаб объекта 2D. Как сделать так, чтобы я мог поместить его на сцену, и с помощью ползунков настроить цвет разных его частей. Куда копать? Я так понимаю чтобы делать это "на лету" используется шейдеры, но мне нужно просто в эдиторе настроить его, поставить куда надо, и забыть.
327 434284
>>34272
Погуглил сейчас про это. Насколько я понимаю нужно разделить мой спрайт на части с одинаковым цветом. И на каждую часть применять renderer.color = new Color(blabla); в Start(), при этом сделать public цвет, который можно выбирать в инспекторе. Всё правильно?
328 434286
Делаю 2д анимацию.
Эта сука почему-то пропускает крайние ключи (последний или первый). НЕзависимо от того, как работает ключ - включение геймобжекта / спрайтрендера / кадры спрайтшита.
Не улавливаю где проёб.
329 434478
>>34085
>>34235
Ну и кому из вас верить?

Вот и в интернетах в комментах на хабре и проч мнения диаметрально противоположные по этому поводу, надеялся анон подскажет.
Хуй с вами, буду параллельно читать книгу и пробовать чот свое по докам и гуглежу.
330 434481
>>34478

> Ну и кому из вас верить?


Обоим. Книга для тех, кто язык уже знает. И английский учить тоже надо.
331 434487
>>34478
>>34481
А ты не тот, кто про английский спрашивал.
В любом случае, можешь и документацию курить и книгу прочесть. Там 300+ страниц всего, за несколько вечеров осваивается. Лишней уж точно не будет, особенно если в движке слабо ориентируешься.
332 435270
>>34262
Нужно ли умножать на дельтатайм при движении через rb?
14251471382542.jpg350 Кб, 1920x1200
333 435504
Как писать свой шейдер который при этом поддерживает встроенные функции освещения и всяких нормал-карт? Шейдер ведь один на материал. Нужно тупо копировать свой код в код нужного шейдера, или как?
334 435559
о. а мое говно сегодня даже стало что-то делать! травку садит, текстурки накладывает, деревья делает.

>>34478
верь мне во всем. вообще нахуй тебе какие-то книги читать? погромировать то на каком языке умеешь уже? в юнити конечно есть какие-то особенные фичи касаемые взаимодействия компонентов и вот много уже за тебя сделали. первое может быть не очевидным, второе вот только с гуглом и найти можно.

>>35270
умножать то не нужно, но полезно.

>>35504
сейчас я дам тебе что-то очень интересное. обязательно прочитай.
http://beta.unity3d.com/download/472613c02cf7/builtin_shaders-2017.1.0f3.zip
335 435577
>>27800
2 объекта. 1 ближе, 2 дальше. Если 1 объект встанет на одну линию со вторым, то для второго (hit.transform.tag == "Object" && hit.distance < minDist) выполняется.
336 435582
>>35559

>погромировать то на каком языке умеешь уже


Работаю жс-ёбом не вебмакака, с шарпом имел теплые дружеские отношения.

>в юнити конечно есть какие-то особенные фичи касаемые взаимодействия компонентов


Например?
337 435587
>>35559

>сейчас я дам тебе что-то очень интересное


т.е. таки нужно вживлять свой код в готовые шейдеры? Оке, спасибо.
338 435603
>>35582
если жс то че, нормально все. почти одно и то-же.

а например вот есть чтото особенное как SendMessage или SendMessageUpwards которое удобно. ещё и имеет разную производительность в едиторе и сбилженном проекте.

>>35587
я к тому что прочитай то как можно делать освещение, нормал мапы и прочее.
340 435651
>>35582
а, кстати, вот стоит ещё сказать особенное. почитай про то как юнити обманывает систему с удалением обьектов. если сделать Destroy(object) то объект то удалится. но как по твоему что станет с ссылками на этот объект у тех у кого она уже есть? или ещё лучше - как на это будут реагировать коллекции вроде хэшсета?
почитай про сериализацию в юнити, тоже интересное чтиво. можно вон теоретически создать инстанс абстрактного класса.
про корутины как заменитель тредов и даже такой базовой хуйни как апдейт почитай.
Если собрался костыли немного писать то почитай про Event.current и control id.
у юнити то много всякой удивительной хуйни творится которая в целом в большинстве своем довольно могущественная но в ней могут творится удивительные вещи.
341 436262
>>35559
Мне нравится твой редактор. Он лучше дефолтного.
Я тоже пытался сделать свой, но не осилил прокрутку. Да и вообще что-то приуныл от осознания того, что придется слишком много времени потратить на изучение всратого юнитивского гуи.
342 436290
Есть ли в юнити система анимации как во флеше(нативно или плагином) чтоб у каждого обьекта были кадры и в разных кадрах я мог добавлять обьекту другие обьекты(допустим в 7 кадре вложить меч в руки) и у этих обьектов были свои ленты в которых я добавлю обьекты?И чтоб это все можно было в wyswig редакторе редоктировать ручками
343 436296
>>36290
Рядом с кнопкой "сделать пиздато"
344 436300
>>28774
Итак, прошла первая неделя. За это время было сделано ничего.
В общем, у меня появилась некая теория как это все сделать. Я хочу сделать что-то вроде простого ShaderDOM, из которого затем генерировать код шейдора.
Так-же у меня появилась идея как можно не разделять граф на 2 шейдора. Для этого нужно один и тот-же граф конпелировать в 2 прохода: суть в том, что во время вертексного прохода, все связанные с вертексным шейдером ноды запишут какой нужно код, а во время пиксельного - соответственно запишут пиксельный код. Правда я не уверен насчет того, что это все будет работать.

В общем, я пока решил сделать просто демку генерации surface-шейдера из графа. Без preview и прочих мокрописек.
345 436331
>>36290

> редоктировать


От слова "редоктор"?
346 436353
Дратитя. Я у мамы параноик, поэтому хочу зашифровать код своего юни-поделия, чтобы любой школьник не мог вытащить через ILDasm или типа того. Да-да, знаю, что это глупо и не надо нахуй.

Так как я ТРУЪ-indei читай "нищеброд" то использовать проприетарные дорогие обфускаторы не могу. И тут я подумал, а что если практически весь код, ну скажем кроме гейм-менеджера, перенести в ДЛЛ на с++?

1. Не потеряю ли таким образом кросс-платформенность?
2. Я слабо представляю, как это делается и какой обьём работы предстоит. Достаточно ли будет написать типа враппера какого-то, ну регистрация функций, да и всё? Насколько вообще ебанутая идея?
3. И как думаете, на производительность сильно повлияет?
347 436374
>>36353
Анус себе зашифруй, пес.
348 436375
Можно ли проверять радиус между лучами, выпущенными из одной точки? Хз, понятно ли сформулировал. Например, из объекта выпущен луч вперёд и влево, соответственно у них радиус 90 должен выйти.
349 436376
>>36375
Это угол, а не радиус. Ещё не проходили что ли?
350 436381
>>36375
Косинус угла между векторами равен скалярному произведению векторов, поделенному на произведение модулей векторов.

В принципе можно ручками посчитать. Простейшие вещи, в школе такое проходят.

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

Можно и так:
Vector3.Angle (a, b);
351 436382
Можно ли проверять котангенс между точками, расположенными на одной прямой? Хз, понятно ли сформулировал.
352 436383
>>36382
Ну продолжил бы. Типа "Например, между точкой А и точкой Б 2 метра, соответственно у них котангенс 2 должен выйти."
p.png326 Кб, 1180x810
353 436384
>>36262
я бы дал свой да он на самом деле тоже так себе. просто приспособил под свои нужды и не имплементил всякую хуйню вроде множественного выбора нод. и реализовал соединение не через перетягивание а просто через нажатие двух кнопок в гуи. и не писал эту ерудну с пропертями у нод, ололо. даже не знаю нахуй это сделали.
у юнити то на самом деле этот лэйаут гуи довольно клевый, советую ознакомится.

прокрутка у меня буквально заимплеменчена как
if(Event.current.type == EventType.MouseDrag && graphExtents.Contains(mousePosition)) {
scrollPosition -= Event.current.delta;
needRepaint = true;
}

>>36300
а я кстати таки сорт оф сделал для некоторых важных нод. можно нажать пкм и сказать чтобы оно показало. например если нажать на превью ноды "Biome bool". правда пришел к выводу что это надо делать отдельно для каждого слота, или чтобы там был предпросмотр с закладками чтобы каждый отдельный аутпут слот мог показать что он там другим передает.

>>36375
уверен ли ты что ты хочешь именно радиус? ведь он 90 должен быть.
354 436407
Привет всем. Я абсолютный новичок в геймдевелопинге, но у меня есть очень годная идея для игры. На данный момент осваиваю юнити и C# + прописываю диалоги, квесты и прочий текстовый контент + рисую арты для игры.
Хотел бы найти такого же новичка для создания чего-то вроде команды, ибо в одного пилить очень трудоемко. Если говорить кратко, то хочу сделать нечто вроде гибрида This is the Police + Космические рейнджеры 2. Если вдруг заинтересовало, то предлагаю скооперироваться и разрабатывать её вместе - если получится реализовать задуманное, то все доходы 50/50.
Мой скайп - the_twixxie
355 436408
>>36407

>у меня есть очень годная идея для игры


Расскажи ка.
мимо-менеджер-ЕА-пизжу-идеи-на-дваче
356 436412
>>36376
>>36381
>>36384
Я в школе еще не проходил просто этого, спасибо большое.
scrin.jpg33 Кб, 786x98
357 436426
Друзья, подскажите, пожалуйста, где я проебался? Я реально понять не могу, тут всего 2 строчки, почему он с некоторых сторон не видит игрока?
Вот видео, если я хуёво(плохо) объяснил проблему:
https://www.youtube.com/watch?v=uLAvxn4-3zE
scrin.jpg21 Кб, 464x416
358 436443
>>36426
Понял, в чем дело.
359 436470
Чуваки, я щас подумал, а почему нельзя написать шейдер на чистом си шарпе? Прикиньте как удобно бы было бы? Ну а чо, типа какой-нибудь крипт похожий на монобихейвиор и библиотека человеческая и там прям хуяришь на си шарпе, а потом они само это переписывает в шейдоровский язык. Прикиньте, было бы круто? Можно было бы изменять шейдер в рантайме, ну вообще все было бы легко и прсто, лубой чувак, который знает си шапр, мог бы написать шейдер. Круто же?
360 436488
>>36470
Зачем? HLSL и так простейший язык.
Сложность шейдеров в алгоритмах
361 436492
>>36488
зачем ты повелся на эту толстоту
362 436493
>>36492
https://www.youtube.com/watch?time_continue=72&v=hJZwaaXMfUA
ой, нахуй иди, ага умник хуев.
363 436505
>>36353
Лучше проведи сам анализ, создавай, компиль проекты, дизассемблируй и шарься в исходниках. Большинство, думаю, принимает уровень защиты как данность или юзает дорохие продукты чтобы спать спокойно. Ведь если ты что-то делаешь на продажу, то и деньги должны быть на защиту твоей жепы, а если бесплатно будешь распространять, то переосмысли нужно ли тебе это вообще, и стоит ли работа затрачиваемых ресурсов.
364 436506
>>36407
Если новичок, не лучше ли фармить опыт на проектах уровнем пониже кр2? Не думаю, что стоит бросаться в этот омут, пожалей время хотя бы.
365 436507
Как настроить ябучий unity Remote. Android SDK стоит, в Editor'е самого юнити включил Any Device. ЧТО ЕЩЁ НАДО?
366 436511
>>36506

Из КР2 я хочу взять только систему квестов
367 436516
>>36511

>Из КР2 я хочу взять только систему квестов


Ты только учти что их квесторедактор и квестоплеер писал весьма годный кодер. А сами квесты писали несколько человек около года, и это были не рандом школьники с улицы.
Предлагаю тебе опробовать свои силы, возьми любой известный квесто-движок и напиши пару для пробы. И людям покажи. Вангую гавнище получится несусветное.
368 436517
>>36516
Неужели этому нельзя обучиться за N-ое количество времени?
369 436520
>>36516
Что там за квесты такие?
370 436524
>>36516
Ну квесторедактор и квестоплеер я хотел в одном своём проекте использовать, который пока у меня в в стадии замороженного бекенда. Где-то была статья даже как у них все реализовано.
левый чел
371 436526
>>36520

Спасибо, надо погуглить.
372 436591
>>36493
Ну, насколько я понял по видео, этот код просто парсится roslyn'ом, и потом из syntax tree генерируется шейдерный код. Никакого дебагинга там нет конечно, просто метод стабы.
373 436592
>>36591
Просто не понимаю в чем смысл делать какую-то сложную йоба-абстракцию над чем-то очень простым. Вместо того, чтобы потратить немного времени на изучение HLSL, ты потратишь в итоге намного больше времени на изучение архитектуры и особенностей этой НЕХ. И если зная HLSL, ты омжешь писать шейдоры для любого движка, то твои знания этой приблуды генерирующей шейдеры будут ограничены конкретно этой приблудой.
374 436598
Только что настроил Unity Remote, запустил игру, а вместо сочной картинки, которую я получал, когда тестил игру в самой Юньке, получил мыло. Как это исправить? Так как я ньюфаг в андроид разработке.
375 436620
>>36598
Compression в пнг поставь
ads.png40 Кб, 1136x1172
376 436641
Добрый вечер.

2D арена. Пытаюсь реализовать выстрел в направлении курсора. Всё вроде бы работает, но есть проблема с получением координат курсора. При использовании Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10.0f)); снаряды летят в нужном направлении только когда игрок в начальных координатах (0,0,0). Чем дальше игрок перемещается тем сильнее отклонение.

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

Спасибо.
reaction-gif-lol-ingfb2299137.jpg19 Кб, 300x300
377 436642
>>36641

>этот код

378 436644
>>36642
Что не так? Нужно как-то по особому оформлять?
379 436646
>>36641
так ты рэйкаст из камеры ебани чтобы мировые координаты узнать. https://docs.unity3d.com/Manual/CameraRays.html
c44.gif2 Мб, 332x215
380 436651
>>36646

>рэйкаст


>2д

381 436652
>>36641
а хотя ты и вопрос через жопу задал. код прочитал. ты же понимаешь что если взять координаты А и Б, вычесть из Б координату А, то ты получишь направление от А к Б? и тебе нужно похоже именно направление? ты бы вычел из положения курсора позицию игрока. чтобы они стали локальными для позиции игрока и были относительно позиции игрока.

>>36651
в 2д тоже работает, хули.
382 436653
>>36652

>в 2д тоже работает


в 2д ScreenToWorldPoint и есть точка в мировых координатах
383 436655
>>36653
он же там зачем-то ещё десятку по оси z прибавляет. меня это насторожило.
384 436657
>>36655
Снаряды через 2 секунды "исчезали". Debug.Log(shootDirection) показывал -10 по Z. Добавил +10 перестали пропадать.
385 436663
>>36657
очевидно потому что у тебя камера находится на -10 по оси z. вообще нахуй ты ScreenToWorldPoint пользуешся? оно же валидно только для ортографической камеры. ещё и начнешь видеть некоторое дерьмо если попытаешься её наклонить немного.
алсо что за хуйня. там же в 2д спрайтах можно менять порядок отрисовки независимо от оси z. или у тебя там что-то особенное?
386 436664
>>27717 (OP)
Пасаны, при сериализации юнитиивента не сохраняются параметры. Задаю ивент в кастомном инспекторе через проперти филд. В чем может быть проблема?
387 436666
>>36664
для обьектов в проекте EditorUtility.SetDirty
для обьектов в сцене там щяс подругому надо заставлять их сериализоватся. Dirty только для хуйни в проекте. там теперь новая хуйня для этого https://docs.unity3d.com/ScriptReference/Undo.RecordObject.html инструкция выглядит загадочной
388 436667
>>36407
Я тут юнити эдитор слепил для квестов. Может хочешь поделать что-нибудь вместе.
389 436668
>>36407
>>36667
Почту оставь.
390 436675
>>36652
>>36663
Благодарю, подсказали верный путь.

>>вообще нахуй ты ScreenToWorldPoint пользуешся?


Что нагуглил тем и пользуюсь.
391 437912
>>36620
Нихера не помогает, может что-то ещё надо изменить?
392 437924
Ребята, помогите, как сделать чтобы сцена запускалась при нажатии на любую точку экрана(глобальный тач), кроме кнопок, которые находятся в канвасе.
Пробовал так, но рэйкаст просто не воспринимает кнопки, как gameobject, просто ничего не происходит
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;

if (Physics.Raycast(ray, out hitInfo))
{
if (hitInfo.transform.tag != "Button")
{
SceneManager.LoadScene(1);
}
}
}
393 437925
Как понять, какая сцена сейчас активна, через код офк?
394 437934
>>37924
if (Input.GetMouseButtonDown (0) && !EventSystem.current.IsPointerOverGameObject ())
{
SceneManager.LoadScene(1);
}
395 437935
>>37934
Ах да, сначала надо подключить вот это
using UnityEngine.EventSystems;
396 437937
>>37935
Ага, ага, ты прям выручил, спасибо парень)
397 437965
>>36353
У тебя есть IL2CPP пизда ты тупая.
398 437966
>>36290
Есть блядь, почитай мануал про аниматор.
399 437969
>>37925
Спроси у менеджера сцен текущую сцену, придурок.
400 437978
Сделал реализацию паузы, т.е. когда рэйкаст попадает по коллайдеру геймобжекта кнопки паузы - игра останавливается и спрайт у этого геймобджекта меняется на кнопку плэй.
Всё вроде норм, но на деле, когда нажимаешь на паузу, то в 70% случаях кнопка меняется два раза(пауза -> плэй -> пауза) и соответственно игра продолжает "играть".
Помогите, не могу понять почему такая херня творится, если что могу код скинуть.
401 437979
Я, кажется, тупой, но я вижу только следующий способ работы с HTTP: юзать WWW(url) для GET и WWW(url, data) для POST.
А можно отправить как-то POST без данных, или вообще например DELETE?
402 437980
>>37978
Ты б сначала написал как паузу реализовал. Знаешь ли, хрустальный шар давно у всех сломался.
403 437982
>>37978
что у тебя за кнопка такая которую ты рэйкастом жмешь ололо
небось тригериш нажатие кнопки по нажатию и отпусканию кнопки мыши, или ещё что-то более глупое
404 437984
>>37979
Тебе - нельзя
405 437985
>>37982
Если не рейкастом, то чем?
406 437987
>>37980
foreach (Touch touch in Input.touches)
{
Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit hit;

if (Physics.Raycast(ray, out hit))
{
...
if (hit.transform.gameObject == PlayPause)
{
if (!isPaused)
{
Time.timeScale = 0;
isPaused = true;

spritePP.sprite = BTNPlay;
}
else
{
Time.timeScale = 1;
isPaused = false;

spritePP.sprite = BTNPause;
}
}
}
}
406 437987
>>37980
foreach (Touch touch in Input.touches)
{
Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit hit;

if (Physics.Raycast(ray, out hit))
{
...
if (hit.transform.gameObject == PlayPause)
{
if (!isPaused)
{
Time.timeScale = 0;
isPaused = true;

spritePP.sprite = BTNPlay;
}
else
{
Time.timeScale = 1;
isPaused = false;

spritePP.sprite = BTNPause;
}
}
}
}
407 437988
>>37987
Зачем ты так усложняешь? Лови событие по OnClick, нахуя ты рэйкастишь на гуй?
408 437989
>>37984
А не мне?
409 438089
ух! Перелопатил то что внутри своей хуйни! нету теперь больше закладок в биомах, метод генерации биом и все карты сразу в одной биоме. день прошел продуктивно. надо ещё worley noise ебануть и побольше многопоточности

>>37985
может просто кнопку на гуи жать будешь? но вообще если ты там хуйней решил пострадать и чтото делать кликом на актуальный обьект то вообще-то есть https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html
410 438101
>>37966
Я читал про него и даже почти запилил на нем одну анимацию,но вопрос наверное и вправду тупой
411 438102
>>37978
А вот если у меня планируется пауза в игре с замедлением времени,мне нужно только таймскел уменьшать или свою переменную завести глобальную
и к ней скорость движения и всех анимаций привязать?А то если таймскел уменьшить все рывками двигается
412 438103
Забавно, как неглубоко иногда нужно копнуть, чтобы залезть в лютые дебри где хуй поймешь что делать. Казалось бы, задача palette swap для единичного объекта вещь довольно ординарная, но чет пиздец извиваться надо чтобы это реализовать. Я всю первую страницу гугла облазил чтобы только узнать как это называется.
413 438104
>>37965
Под стендалон нет, а это целевая платформа.
414 438105
>>37934
Теперь при нажатии на надписи, которые присутствуют в GUI сцена не загружается, как фиксить?
415 438112
>>38105
Ну, например, надписям тег "Yoba". И потом пиши вот так:

if (Input.GetMouseButtonDown (0) && (!EventSystem.current.IsPointerOverGameObject () || EventSystem.current.currentSelectedGameObject.CompareTag("Yoba")))
{
SceneManager.LoadScene(1);
}
416 438121
Как можно увеличить разрешение, четкость "Text" UI?
Знаю способ только увеличивать размер шрифта и уменьшать размеры объекта - но это говно какое-то. Есть ли нормальные способы? А то выглядит всё размыто.
417 438156
Существует ли какая-нибудь конфа/чат где можно задавать нубские вопросы? По ходу обучения трачу довольно много времени на перебор ненужной информации в поисках решения задачи. Советы знающего человека в какую сторону гуглить очень помогли бы мне.

В треде обоссут и дадут 3 разных совета. К тому же вопросы действительно нубские и не достойны внимания Кармаков
418 438159
>>38156
Да здесь пол треда нубских вопросов, так что не парься.
419 438161
>>38156
Вряд ли найдёшь одно такое хорошее место. Я даже на оф сайте по вопросам юнити не дождался ни одного ответа. Так что приходится всё вместе юзать. \gd\, answers.unity, stackoverflow и всё прочее что в гугле найдёшь. Так больше шансов, что ответят. А найти одного спеца, который будет с тобой возиться - маловероятно.
420 438163
>>38159
>>38161
В соседнем работотреде опытный товарищ предлагал свою помощь советом. Вот я и подумал, мало ли есть ещё одинокие альтруисты в /gd/.

Придется срать тут.
Unity 2017-08-14 16-47-24-44.png565 Кб, 1029x973
421 438164
>>38156
есть конференция мудаков, но к ним лучше не ходи. вопросы лучше тут задавай, больше шансов что дадут ответ и больше людей включится в обсуждение, если вопрос интересный. к тому-же задавая вопрос тут и получив ответ возможно другой хуй прочтет его и узнает что-то новое.
ну а то что тебя обоссут так это само собой разумеющееся, зато ответят на твои ответы. вообще ты лучше давай учись вопросы задавать правильно.
422 438167
Игрок может выбрать один из нескольких видов оружия. При клике "Fire1" должен вызываться соответствующий метод выстрела.

Проблема в том, что метод вызывается только при первом клике.

Идти читать дальше про делегаты?

https://pastebin.com/rCbTbUbG
https://pastebin.com/RruL88eT
423 438169
>>38167
Похоже, что у тебя код линейно выполняется. А если попробовать вызывать на каком-нибудь onmousedown (или ином, что триггерит fire1)?
424 438170
>>27717 (OP)
ОП, а уже кто-нибудь говорил, что в шапку можно добавить Hearthstone? Он же тоже на юнити. На момент классика и наксрамасса, по крайней мере. Думаю, что и сейчас - потроха вроде не поменялись.
425 438171
>>38121
Бамп вопроса.
426 438173
>>27895
На пустой сцене же, как помню, есть освещение, как минимум.
427 438174
>>38173
Ты понимаешь значение слова "пустой"? Удалял я свет, нет там нихера, только камера.
428 438175
>>38169

>>А если попробовать вызывать на каком-нибудь onmousedown (или ином, что триггерит fire1)?


Тоже самое. Дело не в делегате. В упор не могу понять почему простой if в Update() не работает.
429 438177
>>38121
>>38171
Короче, делаю через TextMeshPro. Благо он бесплатен теперь.
Unity 2017-08-14 18-53-06-94.png97 Кб, 1168x746
430 438181
>>38167
чего ты вообще в делегаты то полез? не лезь в делегаты без надобности. для такой хуйни лучше пользуйся префабами.
помню у меня где-то был экзампл для мудака одного, тебе тоже дам. https://www.dropbox.com/s/fiz18gxi03tjy8e/2ch example.unitypackage?dl=0
скачай, Assets/Import Package/Custom Package и укажи на файлик.
431 438186
>>38181
А почему бы и нет? Смысл делегат вроде как понятен + к моей задаче подходит. Ты погоди, я ещё синглтон GameManager сделаю и под событийное программирование всё переделаю.

За префаб спасибо, на его основе реализую сам выстрел.

>>38175
Пиздец, ебучая аномалияили нет?. По какой-то причине код в Update() вызывался только один раз. Ребутнул юнити всё стало как раньше.
432 438190
>>38181
причина простая - в твоем случае префаб имеет ссылки на ресурсы и их проще категоризировать по папкам. тыж представь какая срань выйдет если ты такой с делегатами "вот тут у меня самалет, он стреляет этим, этим, ещё этим, а вот ссылка на партиклы и ещё и ещё и материалы не забудем" и внутри ещё делегаты ебошишь чтобы оно эти ресурсы пихало куда надо, собирало делегаты в кучу. проще ебануть папку "вот тут красивый выстрел", там префаб, компонент, все это собрано было красиво, чтобы осталось только перетащить куда надо. ещё и можно разных версий поделать, вот тут префаб с таким компонентом, а рядом другой похожий, но ещё красненьким мигает.
433 438191
>>38190
>>38186
не туда нажал.

вообще реально делегаты нужны вот для гуи-хуюи, для каллбеков, или каких-то дженерик методов, или ещё чего клевого. но нахуй оно надо для такого то?
434 438195
>>38190
Но... я использую делегаты всего лишь для определения типа стрельбы. Какое оружие возьмешь, такой метод и будет вызываться. И каждый метод создает копию префаба "своего" выстрела.

Почему именно так? Стараюсь оставлять минимум логики и расчетов в Update().
435 438196
>>38195
но зачем ты вообще выстрел в делегат то суешь если ты ещё и инстанс создаешь? если хочешь присваивать к переменной то пользуйся ООП. чтобы у тебя метод "ебошить" был универсальным и ты переключал ссылку на активное ебошило, где и вызывался бы этот метод. а лол не сначала выбирал активное ебошило, а потом ещё зачем-то метод в нем хватал
436 438204
>>38196
Переопределение метода как в твоем префабе? Метод Shoot() переопределяется в каждом типе выстрела и делает что-то своё. Это я понимаю.

>>переключал ссылку на активное ебошило



Т.е. реализовать выбор оружия. Вот это я пока не понимаю как сделать НЕ делегатами.

>>чтобы у тебя метод "ебошить" был универсальным и ты переключал ссылку на активное ебошило, где и вызывался бы этот метод. а лол не сначала выбирал активное ебошило, а потом ещё зачем-то метод в нем хватал



Я правильно понимаю что твой вариант: 1) Выстрелить (ебошить) 2) Выбрать оружие (переключить ссылку) ?

Чем он лучше моего варианта: 1) Выбрать оружие (switch в Start() ) 2) Выстрелить (вызвать метод запускающий снаряд)
437 438211
>>38204
например есть класс
abstract class Weapon{
public abstract Shoot();
}
у него есть два наследника Pistol : Weapon и Rifle : Weapon. Они оба имплементят метод Shoot. допустим у тебя есть каждого из них инстанс (а может и не один), но активный слот у тебя только один. ты пытаешься зачем-то хватать делегат. но зачем хватать делегат, если ты знаешь что все пистолеты и ружья у тебя имплементят метод Shoot? проще иметь переменную Weapon currentWeapon, а потом в апдейте проверять.
if(currentWeapon != null && Input.GetMouseButtonDown(0)){
currentWeapon.Shoot();
}
и чтобы менять текущее оружие ты соответственно меняешь ссылку у переменной currentWeapon.
ты пользуешься ссылкой на иснтанс класса, зная что он наследуется от того класса который может стрелять.

делегат просто лишний шаг в данном случае. мало того что ты сводишь все к одному методу, а значит вся ебучая логика стрельбы будет собрана в нем, так ты ещё и пользуешься только одним сраным методом. а у оружия может же быть что-то другое полезное. например ссылка на иконку, или количество оставшихся патрон в магазине которое ты можешь потом совать в ГУИ пользуясь ссылкой на инстанс текущего оружия.

а что если ты например выбросишь оружие, но забудешь обнулить делегат? при попытке стрелять будет стрелять оружие брошенное на землю чтоли лол. нахуй такое говно
фчяс.png2,8 Мб, 1916x910
438 438223
>>38211

>>и чтобы менять текущее оружие ты соответственно меняешь ссылку у переменной currentWeapon.


Сслыку на префаб я полагаю? Вот тут у меня и был ступор - я упорно думал что выстрел это обязательно метод, отсюда нагуглил делегаты. Теперь я слегка прозрел, спасибо.

У меня простая 2D арена. И мой вариант кажется лучшепока я не наткнусь на кучу подводных камней :).

https://pastebin.com/562FwaAK
https://pastebin.com/pGKQ8KpL
439 438236
>>38223
да не обязательно префаб. ссылку на компонент в префабе который стреляет. который является инстансом типа который стреляет. стрельба то разумеется метод. просто метод может не иметь описания в себе и перекладывать описание его на наследующиеся от него классы. а ты страдаешь какой-то хуйней с этими делегатами.

лучше бы сел и прочитал сначала что-то отсюда https://unity3d.com/ru/learn/resources/downloads
в частности посмотрел бы это https://unity3d.com/ru/learn/tutorials/projects/space-shooter-tutorial наиболее близкое к твоему говну. там тебе видео и экзампл.
162-1-1398761876.jpg97 Кб, 574x250
440 438238
>>27717 (OP)
Здаров, в общем маза такая. Хотим запилить онлайн версию оч крутой настолки Machi koro//

Что приветствуется?

1. Наличие пряморуких погромистов

2. Ваш опыт в геймдеве, ахутиельные идеи откуда можно взять финансирование ну и просто деловые предложения.
Одним словом, есть крутая идея, можно заработать. Можно выпустить не онлайн а полноценную версию, но об этом позже. Главное сейчас найти программистов, маркетологов и прочее гавно. Отписываемся, не стесняемся. Запилим конфу в телеге и будем решать как быть.

Если вы сможете финансово поддержать проект, чтож тем лучше.

У меня есть опыт в индустрии игор, так что для Вас он не есть обязательный критерий. Главное - желание заработать и что бы вы могли в какой-то игровой движок нормальный типа uniti.

telegram @alo1x
441 438246
Делаю угол обзора у врагов 2D игра.
RaycastHit2D hit = Physics2D.Raycast (transform.position, Player.transform.position - transform.position);
RaycastHit2D hit2 = Physics2D.Raycast (transform.position, transform.right);
ang = Vector2.Angle (hit.normal, hit2.normal);
Если враг смотрит вверх, вниз, вправо, влево, то всё нормально работает. Но если враг поворачивается не на 90 градусов, то угол высчитывается так, будто бы поворот врага округляется. (0 градусов -- враг смотрит вправо. Если он повернут на 63 градуса, то угол будет считаться так, будто он повернут на 90)
В чем проблема? Во мне.
442 438249
>>38246
чего лол. нахуй ты нормали попаданий от рэйкаста сравниваешь? что за охуительный план? просто взять угол между transform.forward и Player.transform.position - transform.position нет?
443 438262
>>38236
Ты прав, страдаю хуйней. Спасибо ещё раз.
444 438293
Как явно остановить анимацию? Везде показано только для Legacy animation
445 438297
>>38293
YourObject.GetComponent<Animator>().enabled = false;
446 438323
Ваши предложения, какая структура данных лучше всего подходит для графа, чтобы хранить информацию о узлах и рёбрах разных типов
Ну или какой есть фри ассет для этого
Unity 2017-08-15 16-36-43-25.png1,9 Мб, 1644x996
447 438329
>>38323
да не то что бы у методов хранения графа было уж так много вариантов. чё делаешь то?
448 438333
>>38329
Дейтсим для порнотреда рядом. Последние пару дней вникаю в юнити, почитывая фоном unity in action и придумывая систему отношений между жГГ и неписями. Вот на графах хочу сделать связи между неписями, чтобы сделав хорошо одному, мы повысили свою репутацию у близких ему людей.

Можете посоветовать что почитать для реализации всяких gameManager и EventAgregator?
Unity 2017-08-15 16-46-26-44.png350 Кб, 1664x996
449 438336
>>38333
не если намерян вручную редактировать граф то советую сделать что-то вроде такого:

public class Graph {
List<Node> nodes;
List<Edge> edges;
Dictionary<int, Slot> slotByID;
}

public class Node {
List<Slot> slots;
}

public class Slot {
int id;
}

public class Edge {
int idFrom, idTo;
}

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

если собрался хранить игровые данные хоть в чем-то из этого то советую наследоваться от ScriptableObject.

данные о соединении в слотах не храни.
Unity 2017-08-15 16-46-26-44.png350 Кб, 1664x996
449 438336
>>38333
не если намерян вручную редактировать граф то советую сделать что-то вроде такого:

public class Graph {
List<Node> nodes;
List<Edge> edges;
Dictionary<int, Slot> slotByID;
}

public class Node {
List<Slot> slots;
}

public class Slot {
int id;
}

public class Edge {
int idFrom, idTo;
}

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

если собрался хранить игровые данные хоть в чем-то из этого то советую наследоваться от ScriptableObject.

данные о соединении в слотах не храни.
450 438373
Может кто делать ревью кода, чтобы я знал, что не делаю откровенное гавно?
И как загрузить строки из .txt в массив? Хотел юзать textAsset, но он null выдает.
451 438375
>>38373
охуеть ревью кода. вот до чего людей доводит групповое погромирование. ну ты главное давай, а там разберемся
ничего он нулл не выдает. TextAsset отлично содержимое читает. не понял как пользоваться чтоли?
452 438395
>>38373

>я знал, что не делаю откровенное гавно


Обычно люди, которые думают, что делают не-говно, делают такую фиерическую хуету, что окружающие разбивают лица фейспалмом. И при этом с умным видом учат других работать.
Так что прими как факт то, что твой код всегда не очень, и живи с этим, читая книги и размышляя, что можно улучшить/переделать.
453 438417
>>38336
Давно в хуюнити макароны из ынрыла появились или это не то, о чём я думаю?
455 438422
В каком namespace находятся все наследники монобеха? В смысле, мне нужен полный "путь".
получаю доступ к коду билда из стороннего приложения, потрошу Assembly-CSharp

Пробовал следующие варианты и они не прокатывают:
UnityEngine.MyClass
MySolution=имя проекта.Assembly-CSharp.MyClass
MySolution.MyClass
Assembly=CSharp.MyClass
И всякое разно...Ниче не работает. Пробовал сувать MyClass и Type.GetType(MyClass).ToString() в Debug.Log - не выдаёт ничего особенного.

ЧЯДНТ?
456 438426
>>38422
А, всё. Дело было не в namespace'ах. Это я криворукий. Полный путь так и выглядит "MyClass", вот и всё.
457 438427
Есть туториалы на русском? Пока моего навыка не достаточно.
458 438451
>>38427

> Есть туториалы на русском?


Полный ютуб.
459 438463
>>38451
А текстовые? Не люблю я видиотуториалы. Хотя можно ещё скилл инглиша подтянуть и обмазаться годнотой.
Безымявыфвфнный.png69 Кб, 1251x485
460 438472
Алярма! У меня пропали крючки RectTransform! Как фиксить?
1.png368 Кб, 1436x908
461 438490
доволен. сорт оф сделал весь функционал который хотел, теперь вот пару дней эту хуйню напильником поточить и будет заебись. даже InOut ноды сделал, кликабельные превью и отделил актуальную карту высот от используемой в графе.

>>38395
обычно люди не думают, а просто делают.

>>38417
это самописное говно и оно ближе к этим нодовым редакторам шейдоров.

>>38418
на самом деле я почти не пользуюсь тем что там есть и в итоге сделал свое, взяв оттуда пару вещей.

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

>>38472
крючки лол. вообще навскидку не вижу в чем дело. но их кстати можно менять если ткнуть на квадратик в рект трансформе. там опции меняются если жать Alt, Shift, Alt+Shift. что-то из этого перемещает их.
462 438493
>>38490
Что на скрине происходит? Ты это будешь в ассет стор выкладывать, или для себя пилишь?
463 438494
>>38493

> Что на скрине происходит?


Редактор террейна, кажись.
464 438503
Поясните за сжатие картинок в юнити. Я слышал, что-то про то, что 2д игры на юнити - гиблое дело, потому что он переводит пнг в бмп формат и какая-нибудь визуальная новелла весит 5 Гб. Сам видел такие игры, где пара десятков картинок, а игра на 2 гига.
465 438505
>>38493
на скрине происходит всякое. это же простенький генератор террейна.
слева делается инстанс хранилки с Vector2, которая сохраняет их в гриде чтобы была возможность быстро проверять нет ли поблизости ещё Vector2 при добавлении, потом туда делается 250 попыток добавить пойнт при минимальном расстоянии в 20 юнитов. потом по полученым пойнтам генерируется диаграмма вороного. потом эта диаграмма вороного структурируется удобно чтобы разделить её на землю, воду, считается высота вертексов пропорционально дистанции до ближайшей границы "воды". потом это все растеризуется в карту высот, карты биом, карту наклонности. что-то из этого размывается. а потом с этими картами происходят всякие интересные манипуляции в своих отдельных нодах. они там плюсуются, перемножаются и прочее. а на концы к ним можно прицепить накладываемые текстурки, или чтобы там были деревья, или травка, или геймобжекты.

пишу пока для себя. потом поделаю имплементацию триангуляции делоне с divide and conquer алгоритмом, может выложу на ассетстор потом за смешную цену, или бесплатно.
хотя там и так уже похожие вещи есть. например MapMagic. но проще уж хуйню под свои нужды ебануть, чем за это 75 долларов отдать.

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

>>38503
чего лол. сжатие ты сам настраиваешь как тебе там надо. больше занимает всякая музыка и озвучка. вон HuniePop сраные 300 мегабайт занимает, например.

к тому-же нет ничего плохого в играх которые занимают 2-5 гб.
466 438507
Товарищи юнитиводы.
Я давно мечтаю запилить РТС. Освоил выделение юнитов рамкой, перемещение их с помощью NavMesh, автоатаку, директ атаку, перемещение "на муве" и всякие хелсбары. И тут я понял, что 3D-графику рисовать не потяну. Посему решил переместиться в 2D и сделать что то в стиле warcraft II. Но вот беда, NavMesh работает в осях XZ, а 2D режим юнити в XY. Как быть? Как реализовать навигацию в 2D?
467 438514
>>38507
https://docs.unity3d.com/ScriptReference/AI.NavMeshBuilder.BuildNavMeshData.html
почитай внимательно. новый навмеш в юнити такой охуенный что его можно крутить.
468 438515
>>38514
>>38507
а да. чуть не забыл.
https://github.com/Unity-Technologies/NavMeshComponents на, возьми отсюда компоненты и экзамплы
469 438524
>>38507

Я не смог разобраться, извини. Можешь на примере объяснить как мне сделать 2D-проект с использованием навмеша? Если сможешь, то со скриншотами.
470 438528
>>38524
ну? чего же ты такой гейдевелопер хуевый? тебе ссылку дали ниже, открой экзампл 3_free_orientation и посмотри.
471 438600
Привет, есть вопрос.
Задача стоит создать объект с помощью Instantiate. Как создать его с поворотом, т.е. как использовать кватерион?
472 438601
>>38600
Нахуя тебе прям кватернион? Юзай Quaternion.Euler и не еби мозги.
473 438602
>>38601
Спасибо, это именно то что мне было нужно.
asd1111.png7 Кб, 708x418
474 438634
Почему это говно выдает Object reference not set to an instance of an object? Какая ссылка равна null?

В инспекторе префаб shoot и объект shootSpawn перенес.
475 438635
>>38634
брейкпоинт поставь и посмотри, откуда мы бля знаем че у тебя там нулл
476 438649
>>38634
хз, почему так не работает, но я реализовывал это так:
shoot = Instantiate (shoot, shootSpawn.transform.position, shootSpawn.transform.rotation);
477 438650
>>38635
Ты рофлишь? У чувака 1 строка кода
478 438651
Как проверить что я не кликаю на кнопку, а просто по экрану?
479 438655
>>38651
Если кнопка сделана через обычный UI, то
using UnityEngine.EventSystems;
...
if (Input.GetMouseButtonDown (0) && !EventSystem.current.IsPointerOverGameObject ())
{
//хуйпизда
}
480 438656
>>38655
Спасибо, это то что нужно.
481 438662
Сморю сейчас на Юнити 2017 - первым делом решил оценить фичу - sprite mask
И сразу непонимание - нахрена мне этой маской прятать объекты в окне Scene ?
Есть ли где-то галочка какая-нибудь, чтобы можно было оставить их видимыми в окне Scene (или включать когда нужно) ?
И почему тогда не сделали возможность применять маску к 3Д мешам? Без этого оно теряет половину смысла.
482 438665
>>38649
>>38650
>>38635
Зря спросил, нахуевертил с полиморфизмом, напрямую всё работает. Хотя у меня ничего нормально не работает. Сраный AddForce
asd.png19 Кб, 1120x650
483 438670
Подскажите по поводу камеры - перспективная или ортографическая? ДваДэ, вид сверху.

И ещё вопрос. Instatiate'ом делаю копии префаба (стрельба). Запутался в координатах. Какие именно мне нужны что бы снаряд летел в направлении курсора? В данном исполнении снаряды летят куда нужно только в начальной позиции.
484 438675
>>38670

> Подскажите по поводу камеры - перспективная или ортографическая?


Если нужна перспективная, то перспективная. Если нужна орто, то орто. Для 2D обычно используется орто.

> что бы снаряд летел в направлении курсора


float speed = 2f; // или сколько тебе надо
...
Vector3 pos = Input.mousePosition;
pos.z = 10f; // или не 10, короче подставляешь своё значение по z
transform.position = Vector3.Lerp (transform.position, Camera.main.ScreenToWorldPoint (pos), speed * Time.deltaTime);
485 438677
>>38675

>Vector3.Lerp


У тебя пули будут лететь с разной скоростью в зависимости от расстояния.
486 438678
>>38677
Тогда
transform.position = Vector3.MoveTowards(transform.position, Camera.main.ScreenToWorldPoint (pos), speed * Time.deltaTime);
Смотря как ему надо.
487 438679
>>38678
А, скрин не посмотрел. Тогда точно MoveTowards
488 438680
>>38670

> В данном исполнении снаряды летят куда нужно только в начальной позиции


Ёптваюмать, может это потому что ты Input.mousePosition получаешь в старте, а не в апдейте? Откуда твой старт знает что ты мышку сместил?
489 438682
>>38680
Это скрипт снаряда, если получать Input.mousePosition в update() то снаряды будут смещаться с движением мыши.
>>38675
В апдейте закомиченно именно то что ты предлагаешь. Снаряды перемещаются вместо со мной.
490 438683
>>38682

>>В апдейте закомиченно именно то что ты предлагаешь. Снаряды перемещаются вместо со мной.



Пизжу, снаряды просто перемещаются в точку куда кликнул.
491 438684
>>38682

> снаряды будут смещаться с движением мыши


Снаряды будут лететь туда, где мышка. Тебе разве не это надо?
492 438685
>>38683

> снаряды просто перемещаются в точку куда кликнул


Где у тебя в коде хоть слово про "кликнул"?
493 438686
>>38684
Меняют траекторию во время полета.
494 438688
>>38686
Ну так разве это не

> что бы снаряд летел в направлении курсора


?

Изъясняйся нормально что тебе нужно.
495 438689
>>38685

В PlayerController

//Префаб снаряда
public GameObject shoot;
//Объект откуда стреляю
public Transform shootSpawn;

void Update()
{
if (Input.GetMouseButtonDown(0))
{
Instantiate(shoot, shootSpawn.position, shootSpawn.rotation);
}

}
496 438690
>>38688
Обычная стрельба кусками говна. Игрок жмет клик, куда мышка направленна туда и летит снаряд. Без воздействий на снаряд во время полета.
497 438691
>>38690
Ну так и что конкретно у тебя не работает, если

> В данном исполнении снаряды летят куда нужно только в начальной позиции


?
499 438693
>>38692
Ааа, в смысле дальше не летят. Так бы сразу и сказал.
500 438695
Ебать я даун, я уже задавал такой же вопрос. >>36652 - ответ
Нехуй проебывать геометрию в школе
Снимок.PNG10 Кб, 530x88
501 438698
Сап юнитяч! Как нормально подружить юнити проекты с гитом? У меня чет какая то хуйня выходит.

Сделал проектик на компе дома. Закоммитил сначала все кроме билда и папки Library с какими-то как я понял метаданными. Запушил на гитхабчик. Запулился с ноута - открыл проект - он немного покоцался: в сцене в навешанных на элементы скриптах пропали все прикрепленные из редактора ссылочки на префабы, компоненты и т.п. (см. пикрил, вместо этих штук везде было Missing). Потом почему-то создался дублирующий файл .csproj (проектик студии) и стал использоваться он (Был старый Project.csproj, добавился новый Project-CSharp.csproj). А когда я открыл C#-файлик какого то скрипта из юнитиредактора даблкликом и запустилась вижуалстудия, она не подсвечивала синтаксис и писала "Проект был выгружен.", причем райтклик по решению и нажатие "перезагрузить проект" не помогало.

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

Запуллился дома с компа. Открываю проект. Так эта сука говорит "нет, извини, у тебя в мета-данных какая-то хуйня, пожалуй перестрою ка я библиотеку". И опять отрывает все ссылочки от скриптов.

ЧТО ЕЙ НАДО ТО ХОССССПАДИ?!?!?!
502 438699
>>38698
Ебать, используй Collaborate, нахуя ты велосипед создаёшь?
503 438700
>>38699
Что такое коллаборейт и как его юзать? К гиту уже давно привык, т.к. не первый год прогаю, проблем с ним никогда не испытывал, пока не решил повкатываться в юньку...
504 438702
>>38700
Window - Services - Collaborate
Все изменения заливаются в облако (контроль версий присутствует), с другого компа/ноута изменения сливаешь и работаешь дальше. Так же можно использовать в команде.
Всё делается в два клика.
505 438704
>>38698
Метафайлы (*.meta) коммитил?
506 438708
>>38695
Можно ещё так (вешать на снаряд):

public float speed = 10f;

void Start () {
Vector3 pos = Camera.main.ScreenToWorldPoint (Input.mousePosition);
pos.z = transform.position.z;
transform.LookAt (pos);
}

void Update () {
transform.Translate (Vector3.forward speed Time.deltaTime);
}
507 438709
>>38708
Ах да, это если у тебя 3d-объекты, а не спрайты.
508 438714
>>27717 (OP)
Кстати возник вопрос. Как можно отрисовать только часть спрайта?
Допустим для открывающейся вверх двери. Пока уменьшаю scale но выглядит ущербно.
509 438718
>>38709
У меня спрайты. Сделал вот так:

mousePosition = Input.mousePosition;
mousePositionRay = Camera.main.ScreenToWorldPoint(mousePosition);

rb.AddForce((mousePositionRay - transform.position) * speed, ForceMode2D.Force);

Причём чем дальше больше расстояние игрок - место клика, тем больше сила. Тащем-то баг превратился в фичу. Можно создавать препятствия перед ебальником или показывать скилушечку кликая как можно дальше от корабля ( сила увеличивается).
image.png42 Кб, 482x343
511 438721
>>38719
хз, как для 3-мерных спрайтов, но обычный можно через спрайтрендер
512 438722
>>38714
Только у меня вопрос. Если дверь должна открываться, то почему её просто не передвинуть, вместо того, чтобы сжимать?
Untitled.webm4 Мб, webm,
1920x1080, 0:13
513 438727
Я просто оставлю это здесь
514 438730
>>38727
ТОКИ?
515 438731
>>38730

>ТОКИ


какие токи?
516 438732
Котаны, нужно создать префаб, проиграть одну анимацию и уничтожить его. А теперь вопрос, как проиграть анимацию и получить коллбэк об окончании? И шоб ДжваД
517 438733
output.webm1,2 Мб, webm,
1920x1080, 0:08
518 438741
еее, аутизмус, еее

нужен был хостинг шебма
519 438756
>>38650
И как же 1 строка помешает установки брейкпоинта?
520 438758
>>38722
Потолок в который открывается слишком маленький чтобы оно туда влезло
>>38721
Спасибо
521 438759
>>38756
Дааа, это сильно поможет понять, в какой строке ошибка.
522 438760
>>27717 (OP)
Запилил на юнити игру. Покритикуйте.

Sel.
play.google.com/store/apps/details?id=com.LonelyGod.sel

Все просто: уничтожайте квадратики одного цвета, получайте очки.

Испытайте вашу скорость реакции в трех режимах игры: аркада, 13 ходов и 49 секунд. В аркадном режиме уничтожая квадратики вы получаете очки и дополнительное время. В режимах на время и на ходы - заработайте как можно больше очков за 49 секунд или за 13 ходов.
523 438761
>>38759
Довен, во время дебага можно навести мышку на переменную и будет показано ее значение.
524 438764
>>38732
Можно поставить ивент на конец анимации, хендлить его и вызывать дестрой
bea1285a2668292c386e2250d227e458.png8 Кб, 393x389
525 438765
>>38760
Ты б у спрайтов по краям хотя бы в пару пикселей альфа-обводку делал, чтоб они в кашу не сливались. Примерно так.
526 438771
>>38760
У меня глаза от скринов вытекли
tybMHJOfec.jpg90 Кб, 794x754
527 438782
528 438787
>>38373

>Может кто делать ревью кода, чтобы я знал, что не делаю откровенное гавно?


>И как загрузить строки из .txt в массив? Хотел юзать textAsset, но он null выдает.


На Codacy или аналог загрузи
loderunnerbygfball84887.jpg84 Кб, 800x574
529 438788
Привет.
Подскажите, при навыках в рисовании, и нулевом навыке в программинге, смогу я запилить в юнити простенький "камерный" платформер с такой же простой 8-битной графикой. Что то вроде:

https://www.youtube.com/watch?v=x57Gn0beSs8
это лишь пример, игру другую буду пилить но схожую по сложности и типу.

Не умея программировать, смогу ли я обойтись туториалами и возможно какими-то готовыми скриптами, и не потратив 1000+ часов на создания? Рисовать буду сам, скил есть. Не могу выбрать движок.

Все на таком же базовом уровне.
530 438789
>>38788

> смогу ли я обойтись туториалами и возможно какими-то готовыми скриптами


Если IQ больше чем длина члена, то сможешь.
image.png63 Кб, 1360x768
532 438839
Ну охуеть теперь
533 438840
>>38839
можете хуев на почту покидать заодно, че уж там
534 438841
>>38839
Я обновы подожду, один хуй я свои говноподелия ещё даже не билдил.
535 438843
>>38788
Сможешь. Написание простых скриптов в юнити, это оооочень далеко от страшного слова "программирование". Тебе по сути надо будет только писать штуки вроде "если Столкновение(Игрок, Враг) то Игрок.Сдох()"
Можно, конечно, заюзать конструкторы, где кодить вообще не надо, но там свободы будет меньше, больше запутанности, так что самую-самую базу надо уметь делать, элементарно там, что такое классы, переменные, циклы, условия.
536 438844
>>38788

> готовыми скриптами


Лучше не надо. Лучше потрать на пару вечеров больше, но зато напишешь сам и будешь знать что у тебя где и почему, если что-то поменять захочешь.
537 438846
>>38841

>in editor


Жопой читаешь? В редакторе эксплоит, через который твою пекарню могут угнать.
538 438847
>>38846

> Жопой читаешь?


Видимо да.

> твою пекарню могут угнать


Очень вряд ли, у меня и хардварный и софтварный фаервол, и оба настроены очень параноидально.
Если подозрительная хуета начнётся — накачу.
539 438852
Есть у меня на объекте obj скрипт Yoba. В скрипте написано:
void OnMouseDown () {
// хуёмоё
}
Соответственно, при клике по объекту что-то происходит.

Есть у меня другой скрипт, в котором прописано
obj.GetComponent<Yoba> ().enabled = false;

Скрипт срабатывает, в инспекторе на объекте obj скрипт Yoba становится неактивным (галочка на компоненте исчезает). Но всё равно при клике на obj скрипт срабатывает, хотя в инспекторе чётко видно что скрипт неактивен.

Это что за говно? Я, конечно, переделал под флажок в скрипте и всё работает, но хуйня всё равно странная.
540 438857
>>38852
А, ещё лучше. Можно даже безо всяких вторых скриптов, тупо в инспекторе с объекта снять галочку с условного скрипта Yoba, но он всё равно будет срабатывать.
8-1.png218 Кб, 480x320
541 438863
А реально ли ообещ запилить какой-то глобальный лидер-борд с рекордами по количеству очков, между всеми играками в игру? Или это типа какой-то сервак поднимать надо?
542 438864
Можно ли как-то сделать, чтобы Visual Studio подсказывала код, названия компонентов и их свойств?
543 438866
>>38864
Поковыряйся в настройках:
Сервис > Параметры > Текстовый редактор > C#
544 438869
>>38863
Да сервер, но без античита нахуй не нужно.
545 438876
>>38869
Античат какая проблема?
546 438881
Я так понимаю, писать всякие конфиги для настроек и сохранять, допустим, внешность персонажа нормально можно только в .xml? Вкиньте нормальный гайд по node'ам, документация с msdn вообще не читабельна.
547 438896
вопрос. как узнать скрин спейс координаты у RectTransform когда канвас находится в камера спейсе? position начинает возвращать мировые координаты же. я конечно придумал решение, но какое-то оно плохое
548 438909
Запилил реакцию на свайпы вправо и влево, которые выключают анимацию объекта через cube.GetComponent<Animator>().enabled = false; и включают булевые переменные IsActiveRightRotate(при правом свайпе) или IsActiveLeftRotate соответственно.При том, противоположные переменные ставлю в false

Далее в Update пихаю енто

if (IsActiveRightRotate)
{
cube.transform.rotation = new Quaternion(0, -30, 0, 5);
}
else if (IsActiveLeftRotate)
{
cube.transform.Rotate(new Vector3(0, 30, 0));
}

но куб просто прекращает анимацию и зависает на своем прежнем месте.
Что не так?
549 438910
>>38909
Забыл сказать, что пробовал по разному реализовать поворот. И через Rotate, и через свойство rotation
550 438911
>>38909
что за странная схема присвоения ротации то такая? может просто в апдейте будешь делать ротацию на дельта-ротацию перемножая текущую ротацию на дельту?
551 438918
>>38909
вообще на самом то деле ничего удивительного что у тебя что-то там встает. в первом варианте ты зачем-то напрямую выставляешь ротацию, во втором тоже. тебе надо менять ротацию же.

например вот так:
[Range(0f,1f)]
public float speed = 0.9f;
Quaternion targetRotation;

void Start () {
targetRotation = transform.rotation;
}

void Update () {
targetRotation *= Quaternion.Euler(Input.GetAxis("Vertical"), Input.GetAxis("Horizontal"), 0);
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, speed);
}
552 438920
>>38910
>>38909
Решил проблемы корутиной
image.png13 Кб, 558x333
553 438944
Добрый вечер, уважаемые гейм девелоперы.
Столкнулся со следующей проблемой.
Имеются блоки 1х1, стоящие в ряд строго друг за другом и на одной высоте. На блоки навешен Box Collider 2D.
Есть круг с фиксированным Rotation, с RigidBody 2D, Circle Collider 2D и скриптом, в апдейте задающий фиксированную скорость по координате X.
Результат: Круг перемещается по блоком, но слегка отскакивает так, будто натыкается на выпирающие элементы.

Аноны, как мне разрешить сию проблему? Как заставить круг не отскакивать?
554 438945
>>38944
Забыл добавить.
На коллайдерах никаких материалов не висит.
555 438948
>>38944
Я бы посоветовал просто сделать 1 коллайдер на все блоки. Но я надеюсь, здесь найдётся кто-нибудь умней меня.
556 438949
>>38948
Проблема в том, что блоки генерятся на ходу.
Но этот вариант я рассматриваю как решение, если лучше не найдется. Все таки не хочется мучаться с длиною блока и переделывать генератор целиком.
557 438950
>>38949
Я сам не так давно юнити использую, но там похоже есть трабла с координатами. В общем они, как я понял, округляются и если кодом их изменять, в одном случае могут получатся разные значения в.
558 438952
>>38950
Можешь кинуть, где ты это вычитал?
559 438960
>>38952
Да я сам когда камеру вращал на 180 градусов, увидел, что у неё после нескольких оборотов в положении последняя цифра после запятой начала изменяться.
560 438963
>>38950
Округляй сам. Например,
static Vector2 round (Vector2 v) {
return new Vector2 (Mathf.RoundToInt (v.x), Mathf.RoundToInt (v.y));
}
и потом просто в коде его вызываешь
561 438969
>>27717 (OP)
Посоны, есть объект со способностью наносить урон, при коллизии с объектом. Как назвать интерфейс с
float Damage {get;}
void OnCollisionEnter2D(Collision2D collision)
?
562 438977
>>38969
Damageable
564 439003
>>39002
Ну окей, но я не использую никаких вычислений. Я просто инстантинирую блоки с заданной заранее для всех координатой Y. Даже если округление кривое, то оно должно быть одинаково кривым для всех, нет?
9821357.jpg31 Кб, 500x381
565 439004
Посоветуйте сайты с фрилансерами с которыми имели дело и можете рекомендовать

Команду мне не собрать, а денег есть на небольшие задания по говнокодингу и сборке карты
566 439005
>>39004
Что за задание по говнокодингу? Может впишусь, один хуй скучно.
567 439006
>>39005
поставить систему диалогов с памятью у NPC
там же, понятно, привязка по ивентам

цель - получить от NPC инфу и/или ништяки за любовь и/или ништяки, нужные им.

AI + dialogues

японел, что это не просто говнокодинг и задача не тривиальна ни разу
568 439008
>>39005
а вообще мне нужен кто-то, с кем поговорить
569 439010
Нихуя не добрый нахуй хуевый день!

Начал делать кароче не гугл кардбоард херню на юнити.

Создал проект, сделал всё по мануалу етц.

Билжу - билдится. Отдаю человекам со смартфонами - при запуске приложения их отправляет в маркет за апликейшеном от гугла (это ожидалось), но никто не может его поставить - "ваше устройство не поддерживается". При этом у них есть акселерометры и гироскопы етц, т.к. другие приложения из маркета (не на юнити например) вполне работают, такая картина наблюдается на нескольких версиях ведра. На некоторых приложение запускается но камера не двигается, и все также отправляет в маркет за неставящимся приложением.

Кароче нит про тип инб4 соси
570 439011
>>39010
гугли how to debug an Android app

>Билжу - билдится


запускать пробовал?
571 439012
>>39011
Так говорю все запускается у них, у кого то даже картинка есть. Но всех отправляет в маркет за приложением Google Cardboard - и у всех оно не ставится, хотя спеки нормальные и другие приложения VR работают.

Есть правда еще проблема что у меня лично на руках нет телефона с андроидом выше 4.4 (а ниже не деплоится кардборд)
572 439013
>>39012
я про это и спрашивал:

>запускать пробовал?



как можно что-то девелопить, не имея возможности отдебажить самому! Любой говнокод соберется, если нет косяков по синтаксу.

Короче, уговори одолжить тебе тюлюфон
573 439014
>>39006
ВНку лепишь что ли?
574 439018
>>39014
Эх, я спрашивал за графы на прошлой неделе, но так ничего и не сделал. Тоже диалоговую систему буду через графы пилить.
Может накидаете что-ли как делать собственные окна и элементы в гуи редактора?
575 439023
>>39014
3д эдвенчер с флиртом и еблей
576 439027
>>39023
Я это ты, только у меня 2дэ и я без денег
577 439054
>>39018
окна и элементы то легко, https://docs.unity3d.com/ScriptReference/EditorWindow.html а дальше все как в старом ГУИ. разве что ещё есть EditorGUI и EditorGUILayout для всякого специфичного говна. ещё Handles есть которым всякие интересные вещи можно на гуи рисовать. но самое интересное говно случится то как всегда когда захочется что-то хорошего сделать. вообще ты вот вопросы лучше задавай по конкретным проблемам. тема то большая.
578 439056
Я этот антон >>39004
так и не дождавшись советов, покапался на фрилансер.ком, где зареган года с 2008-го работодателем.

5 бачей в час для фрилансера из мухосранска хотя город известный это как?
579 439057
>>39056
Ты лучше сначала скажи как ты будешь отслеживать сколько часов у него реально ушло на скрипт.
580 439058
>>39057
Я перечитал на в месяц. получилось для мухосрани очень не плохо (600+). Он сделал пока 3-4 проекта, где каждый 100-150 бачей и сдавал через неделю. Это мне подходит.

Моя проблема даже не особо в прогании. Сам подпилю как-нибудь. GTGD на ютубе, например, все хорошо объясняет.

Мне надо сделать красиво из имеющихся ассетов на мне защитный шлем от какашек, можете кидать

Ну, не хочу я творить левел! Пусть кто-то накидает, а я там погуляю, оценю.
581 439059
>>39008
Сделал бы твою хуйню, но ты просто очередной грязный делец, который хочет нажиться на добропорядочных хикках, так что рака яиц тебе желаю
582 439060
>>39059
>>39059

>Сделал бы твою хуйню


сколько лет опыта в юнети?
портфолио имеется?
583 439069
Аноны, неужели никто не может помочь с этим?
>>38944
584 439070
>>39069
Нихуя ты с этим не сделаешь. Либо пили общий коллайдер, либо иди нахуй.
585 439071
>>39070
Должен быть выход. Иначе как работают прочие игры, где уровень из блоков состоит?
586 439075
>>39071
А ты не проверял просто. Там такое же говно происходит. Я по teamfortress2 знаю, что в соурсе можно удариться в стену, если она состоит из нескольких блоков и ты летишь вверх вплотную к ней.
587 439076
>>39075
Т.е. ты делаешь рокетджамп, летишь вверх у высокой такой стены, собираешься пустить в стену ещё 1 ракету и полететь дальше, но тут происходит внезапный пиздец. Ты резко останавливаешься и начинаешь падать.
588 439080
>>39076
Ну блин, это же откровенный баг движка, не?
589 439089
Джоп запостил, если кому на водку не хватает
https://www.upwork.com/ab/applicants/899376062433861632/job-details
590 439097
>>38852
enabled отвечает только за выполнение метода Update твоего скрипта все остальное продолжает работать, сделай флаг в своей йобе и чекай его.
591 439098
>>39097
можешь так вообще сделать
void OnMouseDown () {
if(this.enabled){
// хуёмоё
}
}
592 439099
>>39080
По своему игровому опыту я бы сказал, что почти все движки одинаковые. Похоже эта проблема просто обязана существовать, иначе ей на смену просто придут другие.
593 439101
>>38881
Можешь json-ы юзать, а можешь вообще скриптабл обжекты юзать и не выебываться.
https://docs.unity3d.com/Manual/JSONSerialization.html
https://docs.unity3d.com/ScriptReference/ScriptableObject.html
595 439106
>>39006
У меня есть такая шляпа. Могу пояснить как делать за нихуя или переделать под твои нужды (не за нихуя).
596 439107
>>39106
поклянись, что не хахел
jbg!oesixpaqANUSnja_gsPUNCTUMrB_,u
597 439111
В какой программе можно сделать анимации 2d чара, движения конечностей, глаз тп, избегая листа png? after effect не зашел
598 439112
>>39106
Поясни как делать за нихуя
599 439115
>>39097

> enabled отвечает только за выполнение метода Update твоего скрипта все остальное продолжает работать


Вон оно как. Спасибо.
600 439120
>>39111
Spine или я непонел вопроса
601 439141
Ребята, подскажите, кто знает, пожалуйста.
У меня есть платформ(пикча 1) с пивотом на гране, для того, чтобы при изменении rotation, объект поворачивался как надо.
Так вот, как мне сделать, чтобы когда куб на него падает, то платформа поварачивалась вслед, как на второй пикче.
602 439143
>>39104
да я так и сделал, но там плюс ещё кривая формула конвертации прочего говна чтобы правильно сдвигать рект в нужную сторону. но этот метод выглядит переусложненным.

>>39101
кстати скриптабл обжекты я бы в этом случае особо не советовал. в сбилженом проекте их особо не посоздаешь и поменяешь. они все-же для организации проекта.

>>39141
что за странный вопрос. как сделать то хочешь? физоном? анимацией?
603 439144
>>39143
Физикой офк
604 439145
>>39144
ну привесь хуйню на джойнт че ты
605 439148
>>39145
Поподробней, я енто где-то слышал, но не ебу, как делать
606 439150
>>39148
ууу бестолоч. гуглить не может уже. на. https://unity3d.com/ru/learn/tutorials/topics/physics/physics-joints
607 439151
>>39150
Ух, ща посмотрим
608 439169
>>39150
Ну посмотрел я видосы, поставил на пивот платформы Hinge Joint, все параметры пересмотрел, всё перепробывал, всё равно, когда куб падает на платформу, она чуть-чуть дрогнет и всё.
Помоги, криворукому рукожопу
609 439175
Перестал пилить свою игру из-за других дел, и у меня ломка. Это норма?
610 439187
>>39175
ломка от чего?
611 439188
>>39187
От того что перестал. Это как зависимость, когда пилишь игру на юнити, твои труды сразу вознаграждаются тем, что твое поделие совершенствуется, и ты сразу на экране можешь видеть как твой персонаж стал лучше выглядеть, или как враги стали умнее, или как появился УИ, и удовольствие и от того что решил какую-то непростую задачу, и от того что твое детище совершенствуется и это чувство прогресса и того что ты не проебываешь время зря в кое-то веки просто охуенно. Короче, я подсел.
612 439192
>>39188
Через пару годиков это пройдет
613 439273
>>39120
На spine нет торрента
614 439285
Анон, почему при запуске игры этот меш отображается черным? Меш менял. В эдиторе все выглядит норм (2-й пик). Скриптов на нем никаких нет.
615 439286
>>39285

>Меш менял


Материал менял всмысле
616 439303
>>39286
Он у тебя должен быть розовым? Выглядит так, будто у тебя ссылки на материал похерились или на щейдер или ошибка в шейдерее.
617 439305
>>39112
Контакты оставь.
618 439308
>>39303
Да, для начала хотя бы розовым. Материалы пробовал назначать новые, шейдеры удалял, не помогло. Попробую пересоздать.
image.png11 Кб, 276x126
619 439364
Как через код достучаться до этого компонента UI?
620 439368
>>39364
using UnityEngine.UI;
Image _image;
_image = GetComponent<Image> ();
621 439369
>>39368
Вот я дурак, забыл про UI.
Спасибо тебе, добрый человек
622 439380
Повесил на кнопку это скрипт:

public AudioClip sound;

void OnMouseDown()
{
StartCoroutine(RotateBTN());

AudioSource.PlayClipAtPoint(sound, transform.position);

transform.localScale += new Vector3(0.05f, 0.05f);
}

void OnMouseUp()
{
transform.localScale -= new Vector3(0.05f, 0.05f);
}

private IEnumerator RotateBTN()
{
transform.Rotate(0, 0, 2);

yield return new WaitForEndOfFrame();

StartCoroutine(RotateBTN());
}

Корутина выполняется один раз(Когда нажимаешь на кнопку, то она поварачивается на (0, 0, 2) и всё, хотя должна крутиться), в чём проблема?
622 439380
Повесил на кнопку это скрипт:

public AudioClip sound;

void OnMouseDown()
{
StartCoroutine(RotateBTN());

AudioSource.PlayClipAtPoint(sound, transform.position);

transform.localScale += new Vector3(0.05f, 0.05f);
}

void OnMouseUp()
{
transform.localScale -= new Vector3(0.05f, 0.05f);
}

private IEnumerator RotateBTN()
{
transform.Rotate(0, 0, 2);

yield return new WaitForEndOfFrame();

StartCoroutine(RotateBTN());
}

Корутина выполняется один раз(Когда нажимаешь на кнопку, то она поварачивается на (0, 0, 2) и всё, хотя должна крутиться), в чём проблема?
623 439394
>>39380
Хуй знает, братишка, у меня всё крутится.
624 439396
>>39380
нахуй ты корутины запускаешь рекурсивно, ебан? про while не слышал?
625 439397
>>39396
Да, блядь, потому что всё перепробывал, даже до рекурсии дошел
626 439398
>>39397

> всё перепробывал


while (true) и ебашишь туда всё что надо, базарю, ещё захочешь.
fd91dff5-c731-437c-bf2b-d2110e945484.jpg662 Кб, 1200x800
627 439425
Вот есть у меня анимированный перс, который может бегать, махать мечом и т.п. Мне нужно менять некоторые анимации в зависимости от надетого эквипа(удар мечом на удар кинжалом, к примеру).

Как это правильно делается? Можно создать для каждой анимации саб-стейт машину, и переключать анимации в зависимости от установленной float переменной. Но выглядит как-то не очень здорово. Плюс придется повторять много работы для каждого айтема. Если эквипа много, то получится неподдерживаемое развесистое дерево.

Может менять анимации в ран-тайм(как это делать)? Или юзать разные контроллеры/разные слои?
628 439426
>>39425
Я это делал так: каждому оружию добавлял string с именем булевой переменной, которая в аниматоре отвечала за переход, и потом её передавал в контроллер, а тот уже в аниматор.
Я сомневаюсь что это был рациональный способ, но у меня было три с половиной вида оружия и всё работало.
629 439428
>>39305
tg:krasnovmv
630 439431
Сап, не подскажите где можно глянуть сырцы готовых игр на юнити, чтобы прямо в эдиторе открыть и посмотреть архитектуру. Вознамерился пилить простенькую рпг и хотелось бы заценить годные реализации.
631 439432
Есть какой-то аналог Rigidbody.AddExplosionForce для 2D?
632 439433
>>39432
Зачем тебе аналог?
633 439436
>>39433
Потому что AddExplosionForce is not a member of UnityEngine.Rigidbody2D ?
634 439440
>>39436
Ну и почему ты такой ленивы хуй, что не можешь загуглить "addexplosionforce 2d", где по первой же ссылке всё чёрным по белому написано?
Даже помогу тебе, вдруг у тебя в гугле пожизненный бан.
https://forum.unity3d.com/threads/need-rigidbody2d-addexplosionforce.212173/
635 439442
>>39440
Но я это уже нагуглил, поэтом и спрашиваю, есть ли нормальные способы.
636 439443
>>39442
А чем тебе способ по ссылке не нормальный?
Ну ладно, можешь по уловному "взрыву" высчитывать расстояния от центра "взрыва" до объектов, которые надо откинуть, отнимать значение от заведомого большого константного вектора и передавать это самое значение в Rigidbody2D.AddForce каждого объекта.
637 439444
>>39443
*условному
638 439445
>>39443

>>А чем тебе способ по ссылке не нормальный?


Есть готовый метод и не нужно придумывать велосипед?
639 439446
>>39445
Прям готовый из коробки для 2д — кажется нет. Я как раз велосипедил с вычислением векторов расстояния. Но то было относительно давно, я с 2д давненько не работаю. Но тот же гугл говорит, что тут без педалей не обойтись.
640 439449
>>39445
Покури ещё Collider.ClosestPointOnBounds, но не уверен что оно в 2д работает.
641 439452
>>39431
бамп
642 439462
>>27717 (OP)
UnityWebRequest не умеет принимать больше одной куки на андроиде. Одна остается, а остальные просто отбрасываются. Они там охуели такие баги делать?
643 439468
>>39425
Слоеный mecanim
/thread
644 439470
>>27717 (OP)
Поцоны хелп,не могу взять сферой обьекты принадлежащие к слою obstacles(хочу зоны видимости запилить)
Запилил слой,навесил на стенку(пик 2)
нихуя не находит
float viewAngle=180f;
float viewRadius=20f;
visibleTargets.Clear();
obstacleMask=9;
Collider[] targetsInViewRadius=Physics.OverlapSphere(transform.position,viewRadius,obstacleMask);
Debug.Log(targetsInViewRadius.Length);
targetsInViewRadius.Length выдает 0
645 439472
>>39468
Спасибо. Нашел вот примерно как это делается через синхронизированные слои.
https://forum.unity3d.com/threads/mecanim-sync-layer.198079/
646 439473
>>39470
OverlapSphere ловит коллайдеры, у тебя они там есть? Кстати зачем тебе ловить препятствия сферой, я бы ловил игроков/мобов, потом рейкастил в каждого через слой obstacles, если рейкаст долетел - значит увидели его.
Screenshot25.png21 Кб, 487x538
647 439474
>>39470
Есть вариант, что он GameObject, на котором висит, считает за объект, с которым он пересекается. С рейкастами, по крайней мере, такая хуйня происходит. Проверь физон в настройках.
648 439475
>>39473
коладеры есть,сделать так решил для теста
игроков она тоже не ловит
649 439476
>>39462
Чо делать? Есть ли способ получить доступ к нераспарсенным хедерам?
650 439478
>>39475
А obstacleMask это маска или integer? Может с маской что-то?
651 439540
>>39431
бамп вопросу
652 439542
>>27717 (OP)
Анончики, подскажите как лучше организовать взаимодействие между компонентами одного геймобджекта, допустим у меня есть компонент который реализует таймер и вызывает переданную как параметр функцию после. Есть компонент который реализует взрыв. Мне нужно сделать бомбу которая взрывается по таймеру. Про геткомпонент естественно знаю, но выходит что скрипт в котором будут обращения к компоненту таймера и взрыва будет зависеть от того висят ли эти компоненты на геймобджекте или нет. Мне не кажется, что это норм вариант, или я уебался, или чет совсем не так делаю.
653 439543
>>39542

> будет зависеть от того висят ли эти компоненты на геймобджекте или нет


[RequireComponent(typeof(YobaComponent))]
654 439544
>>39542
Подумал, что можно в принципе добавлять компоненты самому, но не уверен, что это хорошее решение.
655 439547
>>39542
На null проверяй, лишним не будет. Если отсутствие компонента - не баг, ничего не пиши. Если баг, пиши LogError.
656 439548
Стоит ли использовать события аниматора для увязывания скриптов и анимации, или лучше все далать внутри скрипта?
657 439562
Бля, почему столько хуевых уроков по Юинти? Открываешь видос, думаешь там то что тебе нужно, а вместо этого видишь хуя простого вроде себя, который рассказывает банальности, еще и неправильно/криво делает. Самое главное, ни хрена про реальные проблемы и решения, только говно-шутеры с бегающими яйцами - в 150й раз. Есть "продвинутые" каналы, в смысле чтобы не совсем тривиальная инфа была?

вот эти вроде норм из того что нашел, хотя brackeys мало смотрел
https://www.youtube.com/user/Cercopithecan/playlists
https://www.youtube.com/user/Brackeys/playlists
https://www.youtube.com/channel/UCtQPCnbIB7SP_gM1Xtv8bDQ/playlists
https://www.youtube.com/channel/UCtb1s859RTxx-RIgFs5ZVQA/playlists
658 439576
>>39562
У brackeys тоже толком ничего продвинутого, но он, в отличие от большинства, даже простые вещи делает по уму
sage 659 439583
>>39548
Стоит, если правильно это сделаешь. Встроенные события работают через sendmessage, что является довольно говеным способом, но можешь написать свой обработчик эвентов и вызывать даже небо/аллаха из аниматора.
660 439589
>>39583
Любопытно, а как приделать свой обработчик? Юзать коллбэки из StateMachineBehaviour?
661 439591
Перед началом игры выбираешь вид корабля. Каждый из них имеет свои статы, анимацию и звук. Вопрос в том, как реализовать выбор.

Сделать префаб каждого вида кораблей и подгружать соответствующий, но я не совсем понимаю как перенести все нужные компоненты с префаба на игрока. Какую фразу гуглить
662 439597
>>39591

>компоненты с префаба на игрока


Нихуя не понял, что ты этим хотел сказать, чуть подробнее, либо другими словами.
663 439601
>>39591
Игра сетевая? Если нет все вообще тривиально. Просто инстанциируй префаб и все. Префаб это и есть "объект игрока".
664 439607
>>39597
Есть игрок, к которому прикреплен скрипт на перемещение.

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

Как передать характеристики корабля игроку я понимаю (переменные), но как мне заменить анимацию и звук?

Думаю в этом направлении:
gameObject.GetComponent<SpriteRenderer>().sprite = _playerShipSprite;
// _playerShipSprite - ссылка на спрайт корабля
665 439609
>>39607
Да что за игрок то у тебя, елки-палки? Чем тебя не устраивает уничтожать старый объект и инстанциировать новый?
666 439613
>>39607
Отдели вижуал от остального и просто инстанциируй префаб, созраняя ссылку на созданный тобой геймобджект в скрипте игрока, хули ты там выдумываешь?
667 439614
>>39609
Я просто плохо объясняю.

>Чем тебя не устраивает уничтожать старый объект и инстанциировать новый?


Получается он должен содержать в себе скрипт на передвижение/обзор и прочее что нужно игроку?
668 439621
>>39614
Ну да, к примеру, скрипты контроля, камеры и прочее сидит на префабе, приходят и уходят с ним.

Если тебе нужно сохранять какую-то информацию, когда префабы меняются, можешь повесить скрипт на пустой объект. Пусть он называется PlayerManager, чисто для примера. Можешь даже добавить DontDestroyOnLoad, если нужно сохранить его при загрузке новых сцен.

В этом объекте можешь хранить статы игрока, имя, экспу, и т.п. Как общаться скриптам с префаба и этому скрипту? Можешь инстанциировать новый префаб из этого самого скрипта, Instantiate вернет ссылку на объект, которую сохранишь в переменной. Потом передашь нужные статы и ссылки созданному объекту. Можно в PlayerManager сделать public static PlayerManager Instance { get; private set; } и в Awake() {if(Instance == null) Instance = this;} И общаться с PlayerManager скриптом через Instance. Можешь связывать объекты через FindObject, только не вызывай его каждый раз, а сохрани ссылку один раз, он тяжелый.

Наконец, можно сделать префаб из модели с анимацией и звуком, и сделать его дочерним объектом своего объекта-игрока через transform.parent. Короче, зависит от того, что тебе нужно, и как должно взаимодейтствовать.
669 439623
>>39621
>>39613
Спасибо огромное.
670 439625
>>39305
Напиши ну, если нет телеги, могу почту оставить
671 439626
>>39547

> На null проверяй


Вот этот пидор знает о чём говорит, я даже если на 100% уверен что компонент на объекте есть, всё равно проверку делаю. В нашем деле лишняя паранойя не повредит.
672 439628
Как правильно прицепить скрипт, который будет выполняться при старте сцены?
Сейчас использую событие старт на объекте, но это некрасиво. Вдруг я удалю этот объект или захочу их множество из префаба использовать, тогда у меня мой Start или не будет запускаться или запустится несколько раз.
Куда общий для сцены скрипт прицепить?
673 439629
Как правильно сделать скрипт, который будет выполняться при старте сцены?
Сейчас использую событие Start() на объекте, но это некрасиво. Вдруг я удалю этот объект, или
захочу их множество из префаба использовать, тогда у меня мой Start() или не будет запускаться вообще или запустится несколько раз.
Куда общий для сцены скрипт прицепить? И как сделать так, чтобы он выполнялся при старте сцены?
674 439630
>>39629

> Куда общий для сцены скрипт прицепить?


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

> И как сделать так, чтобы он выполнялся при старте сцены?


void Awake () {
}
676 439648
UI Layouts
Допустим по умолчанию уи создано под вертикальную ориентацию, и как теперь быть когда нужно в горизонтальную? Под андроид можно 2 лейаута использовать для каждой из ориентаций. А тут то как делать? Пока хотелось бы только измененное положение/размеры/?иерархию_сцены?, без новых уи-объектов (т.е. без: выдвижные менюшки в верт. / 2-3 колонки в гор.). Хотя тоже бы хотелось узнать как такое тут и такое можно сделать.

Анимация UI
Представим, для примера, что у нас есть склад товара до 10ед. и нам нужна кнопка, которая меняла бы свой цвет/спрайт/текст в зависимости от заполненности склада. По одному "стилю" на каждую единицу товара (т.е. всего 11 состояний и стилей). Количество товара на складе может изменятся случайно (внешним скриптом) и при нажатии на кнопку (только определённым образом: +1, но на 10 с 50/50% может перейти в 2 или 7). По цвету изменяем только Color, т.е. хайлайт, прессед и т.п. работают как обычно. Почитав мануалы, посмотрев уроки я создал всё это (ну аниматор там, анимации граф переходов, кондишн и т.п.), но у меня есть вопросы.

Как интерполировать цвет по HSV (и т.п.), а не по RGB? Есть что-то встроенное или нужно свое писать?

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

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

Как задать одну и ту же форму кривой для нескольких параметров (см. вопросы выше), т.е. для всех каналов цвета разом, но у них разные значения.

Переходы (transition) между анимациями (state) имеют какие-то настройки. И я так понимаю они нужны для 3D и бесполезны в нашем примере (ну кроме условия перехода)? Как их правильно отключить?

Как организовать анимацию перехода из одного состояния в другое? Например анимация состояния это просто 1 цвет или "мигание" какое, а анимация перехода это интерполяция из старого цвета в новый. Нужно будет создавать на это 2 стейта (переход + цикличная анимация состояния)?

Если считать что анимация состояния это "мигание" цветом по HSL, то как синхронизировать мигание анимации старого состояния, перехода (изменяя только HSL) и нового?

Как будут работать transition при переходе из state A в state B, когда есть переход из any state в state B. У кого будет приоритет?

Как-нибудь покомпактней можно анимации создавать? Десятки файлов .anim+.meta по 10КБ на один сраный статичный цвет не есть гуд.

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

*Стоит ли мне дальше ебать мозг всей этой unity-хуйнёй если такой простой пример я могу запилить в контроллере и анимировать в Update? Будет разве что захардкожено.
676 439648
UI Layouts
Допустим по умолчанию уи создано под вертикальную ориентацию, и как теперь быть когда нужно в горизонтальную? Под андроид можно 2 лейаута использовать для каждой из ориентаций. А тут то как делать? Пока хотелось бы только измененное положение/размеры/?иерархию_сцены?, без новых уи-объектов (т.е. без: выдвижные менюшки в верт. / 2-3 колонки в гор.). Хотя тоже бы хотелось узнать как такое тут и такое можно сделать.

Анимация UI
Представим, для примера, что у нас есть склад товара до 10ед. и нам нужна кнопка, которая меняла бы свой цвет/спрайт/текст в зависимости от заполненности склада. По одному "стилю" на каждую единицу товара (т.е. всего 11 состояний и стилей). Количество товара на складе может изменятся случайно (внешним скриптом) и при нажатии на кнопку (только определённым образом: +1, но на 10 с 50/50% может перейти в 2 или 7). По цвету изменяем только Color, т.е. хайлайт, прессед и т.п. работают как обычно. Почитав мануалы, посмотрев уроки я создал всё это (ну аниматор там, анимации граф переходов, кондишн и т.п.), но у меня есть вопросы.

Как интерполировать цвет по HSV (и т.п.), а не по RGB? Есть что-то встроенное или нужно свое писать?

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

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

Как задать одну и ту же форму кривой для нескольких параметров (см. вопросы выше), т.е. для всех каналов цвета разом, но у них разные значения.

Переходы (transition) между анимациями (state) имеют какие-то настройки. И я так понимаю они нужны для 3D и бесполезны в нашем примере (ну кроме условия перехода)? Как их правильно отключить?

Как организовать анимацию перехода из одного состояния в другое? Например анимация состояния это просто 1 цвет или "мигание" какое, а анимация перехода это интерполяция из старого цвета в новый. Нужно будет создавать на это 2 стейта (переход + цикличная анимация состояния)?

Если считать что анимация состояния это "мигание" цветом по HSL, то как синхронизировать мигание анимации старого состояния, перехода (изменяя только HSL) и нового?

Как будут работать transition при переходе из state A в state B, когда есть переход из any state в state B. У кого будет приоритет?

Как-нибудь покомпактней можно анимации создавать? Десятки файлов .anim+.meta по 10КБ на один сраный статичный цвет не есть гуд.

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

*Стоит ли мне дальше ебать мозг всей этой unity-хуйнёй если такой простой пример я могу запилить в контроллере и анимировать в Update? Будет разве что захардкожено.
677 439677
Привет. Решил вкатиться в юнити. Читаю юнити ин экшн, пилю свою первую игру. Понимаю, что сишарп для меня СЛОЖНО, ибо я ноль в программировании. Хочу пойти на курсы для ньюфагов. Что думаете, курсы хоть как-то помогают, или это объеб на доллары для корзиночек типа меня?
678 439678
>>39677

> Читаю юнити ин экшн


> Понимаю, что сишарп для меня СЛОЖНО, ибо я ноль в программировании


Не то ты читать начал. Это книга для тех, кто в шарпах уже смыслит.
В шапке есть ссылка на курсы, попробуй сначала их.
679 439681
>>39677
Сишарп легко изучается самостоятельно по любым бесплатным урокам из интернета (которых дофига, как и по юнити). По мне так, если и ходить на курсы, то по юнити. Там материала побольше узнать нужно, чтобы начать. Но опять же я думаю, если ты не можешь всё изучить самостоятельно - смысла платить за это доллары нет.
680 439682
>>39678
Хорошо, пройдусь пока по курсам, и еще запишусь на ирл-курсы. Вообще, по книжке все понятно, но очевидно, что шаг в сторону сделать не могу.
681 439683
>>39681

> думаю, если ты не можешь всё изучить самостоятельно - смысла платить за это доллары нет


Всё правильно говоришь.
682 439684
>>39628
На пустой объект, не?
683 439685
>>39681
У меня проблемы с самомотивацией и дисциплиной. С той же тренажеркой - хожу в зал, хотя можно все упражнения делать дома. Но дома ленюсь. А вообще, сколько надо времени для изучения шарпа для старта хоть какой-то самостоятельной работы в юнити, если я ничем сложнее html/css в жизни не занимался?
684 439687
>>39685

> А вообще, сколько надо времени для изучения шарпа для старта


Очень индивидуально. Кому-то недели хватит, кому-то и года недостаточно будет.
Если ты совсем корзинус, то заканчивай школу и иди в универ на очку, там будет тебе и мотивация в виде мамки, которая будет тебя дрючить чтоб не проёбывал заплаченные за учёбу деньги, и дисциплина в виде преподов и деканата.
А если хочешь чтоб дома, но не так сухо как в книгах и обычных туториалах, то поищи на ютубе уроки русскоязычного парня с ником stream. Неплохо рассказывал, хоть иногда и тупил, но для поверхностного ознакомления будет полезно.
685 439688
>>39685
Курсы по программированию нужны чтобы обучать, а не мотивировать. А шарп нужно знать вообще по минимуму: переменные, условия и иногда матрицы. Если тупо посмотреть все уроки и повторить, можно успеть за пару дней.

>Но дома ленюсь


Попробуй программировать в тренажерке
686 439712
>>39687
В упор не могу его найти. Поможешь?
687 439724
>>39685
Нафиг не нужно зубрить язык от корки до корки, мотивация стухнет(у меня, по крайней мере). Пробуй чего-нибудь сделать, подсмотри как пишут скрипты в официальных туториалах Юнити, и делай так же. Если не знаешь что-то - Гугли и сдувай алгоритм. Непонятно что-то в языке - c# Reference или Гугл подскажет.
688 439725
>>39712
А, он выпилился. Но есть канал с перезаливками. Там видео не по порядку, так что ищи с порядковым номером "#1" и потом иди по порядку, "#2", "#3" и так далее. Разберёшься.
https://www.youtube.com/channel/UCyh-t-R60C3IwX8iId9y1Rw
689 439726
>>39712
>>39725
Короче, вот отсюда и по порядку
https://www.youtube.com/watch?v=ON4styauqp8
690 439733
>>39562
Я недавно неплохой канал по шейдерам и эфектам нашел.
https://www.youtube.com/channel/UCEklP9iLcpExB8vp_fWQseg
691 439736
>>39648
Ты уверен, что хочешь менять кнопочку через аниматор? Не проще ли написать скрипт? Ты походу микроскопом гвозди заколачиваешь.
692 439742
>>39648

>Допустим по умолчанию уи создано под вертикальную ориентацию, и как теперь быть когда нужно в горизонтальную?


Можно универсальный UI запилить например

>>39648

>Под андроид можно 2 лейаута использовать для каждой из ориентаций


Можешь и тут 2 лейаута навелосипедить

>>39648

>А тут то как делать?


Где тут то, йоба? Мы не экстрасенсы
693 439744
>>39733
Спасибо, запишем.
245.jpg23 Кб, 400x406
694 439752
Ютуб выдал мне в "рекомендованных", прости господи, туториал длиною в два часа, в котором школьник из ассетов лепит ХОРАР. 100к просмотров, пачка лайков, восторженные комментарии, в которых на одно слово 10 ошибок, и около 27к подписоты.
Видео — это просто пиздец, как говна поел. И это я его листал, если б целиком посмотрел, то, наверное, сознание бы потерял.
Я это к чему. Теперь я понимаю откуда у юнити такая репутация. Они ж реально думают что это готовая игра, билдят её и потом срут этим в сеть.
Ах да, этот урок или, как его именует "автор", КУРС изначально был ПЛАТНЫМ.
696 439755
>>39754
Этот "Калобок" — шедевр геймдева по сравнению с тем, что я посмотрел.
https://www.youtube.com/watch?v=cnEr4P6gGWo
697 439760
>>39755

> видео


блять сука блять сука блять сука блять сука
698 439762
Игрок - инстанциируемый, в начале сцены, префаб. Камера должна находить игрока и цепляться к нему. Этого естественно не происходитobject reference not set to an instance of an object.

Скрипт для камеры:
public GameObject player;
private Vector3 offset;

void Start () {
player = GameObject.FindGameObjectWithTag("Player");
offset = transform.position - player.transform.position;
}
void LateUpdate () {
if (player == true)
{
transform.position = player.transform.position + offset;
}

Полагаю, камера появляется первой в сцене, когда ещё нет объекта с тегом "Player". Попробовал засунуть в Update() - у камеры сбиваются координаты по Z. Где я проебланил?
699 439763
>>39762

> инстанциируемый, в начале сцены


Нахуя? Ставь его на сцену ручками. К чему этот пердолинг?
700 439766
701 439768
>>39762
Скрипт, который интсантит игрока, пихай в Awake, а прицеп камеры - в Start.
702 439770
>>39755

> апдейт выполняется то ли каждую секунду, то ли вообще каждый кадр


Сука, и этот человек ещё с кого-то деньги берёт за ОБУЧЕНИЕ
703 439771
>>39768
Благодарствую. Доделаю свою парашу, получу работу, проставлю пиво всем треду - вы охуенные.
704 439784
>>39726
>>39725
Спасибо, господа. Какой у вас тред адекватный.
705 439788
>>39752

>Теперь я понимаю откуда у юнити такая репутация


Репутация БЕСПЛАТНОГО движка. Ибо ты не сможиш слепить такую игорь, чтобы пробить потолок в 50к по обороту.

Ты не одиног 2bqh

тут некоторые щитают, что получив свет изкорёпки от уеча, им тут же задонатят 3к
706 439789
>>39059
Я-таки захайрил двух подающих надежды на апуорке.
а ты злой
707 439790
>>39788
Ну тот же уеч вроде тоже бесплатный. Но то ли там СЛОЖНА, то ли плюсы все позабыли, но там такого школотронства не наблюдается.
708 439792
>>39790
Уеч бесплатный до того щасливава момента, когда внезапно твою игру начнут донатить. А это значит, что 5% ты внезапно должен отстегнуть.

У юнети первая гроница лежит на 100к 35$ в месяц
709 439793
Хорошие вроде как видео гайдики спираченые, по дефолту курс за 200 бачей.
https://rutracker.org/forum/viewtopic.php?t=5426859
710 439794
>>39790

>такого школотронства


В юнети проще втянуться. Полный магаз ассетов, включая полные проекты игорь с видео-тьюториалами. И сами оффицыальные тьюториалы от создателей юнети.

Не удевитильно, что школоло пойдёт проторённой дорожкой.

но свет в уече лучше из коробки, дела не в крестах, а хитровыебанности игровой механики в уече
711 439795
>>39792

> Generally, you are obligated to pay to Epic 5% of all gross revenue after the first $3,000 per game or application per calendar quarter

712 439796
>>39793

> 200 бачей.


Столько получит кирил из мухосранска за неделю работы на мой говнопроджект upwork dot com
713 439797
>>39795

>after the first $3,000


Я под этим и понимал внезапно
Читай: первые 3к начего не платишь. После первых 3к отстёгиваешь ежеквартально 5%
714 439799
>>39797
русня ебаная, после $3,000 заработаных за квартал платишь проценты в этом квартале. т.е. с вечноговна они процент не берут. и что юнетивские 100к бачей, что анрильские 3к в реалиях /gd/ совершенно недостижимы, не волнуйся.
715 439807
>>39793
Выглядит неплохо. Скачаю, проверю, отпишусь, как оно для нуба зайдет.
716 439809
Привет.
Супернубский вопрос.
Почему меши из ассетстора не ведут себя как гейм-обжект?
Т.е. я настроил так, чтобы игрок не мог проходить через стены/пол и мог стрелять в них. Но загруженные модельки бестелыею

1-день-в-юнити-кун
717 439810
>>39809
Чего блять?
718 439811
>>39809
гугли mesh collider
719 439813
>>39809
Поставь галку Convex на меш-коллайдере, если вообще нет коллайдера - прилепи какой-нибудь. Прилепи так же rigidbody на все что движется. Неподвижное - статик коллайдер.
720 439815
>>39811
>>39813
Спасибо. Все заработало.
721 439816
InverseTransformPoint предположительно пиздит... Нахуй я вообще туда полез, как будто проблема отнять один вектор от другого.
722 439827
>>39816
ебанашка ты хоть знаешь что такое матрицы вообще?
723 439845
>>39827
Ну кстати да, пизжу все-таки я. Но при чем здесь твой вопрос?
724 439847
Господа, пытаюсь немного разобраться с юнити, путем разработки простенькой игры. Допустим мне нужно чтобы у меня была определенная кучка объектов которые обладают различным поведением(какие-то взрываются, какие-то стреляют), так же есть различные условия срабатывания данных действий(таймер, попадание в определенный радиус действия, или комбинация этих условий). Хочу обстряпать все так, чтобы я мог потом комбинируя данные данные характеристики получать новые виды объектов. Соответственно также нужны некие фабрики. Была идея описать данные характеристики отдельными компонентами унаследованными от MonoBehavior, собирать их в одном GameObject, и еще один скрипт вещать который координирует работу этих компонентов. Как в таком случае обстряпать фабрики. Может есть у кого схожие примеры, как реализовывали? Как вообще в юнити лучше делать подобное? Может я изначально на неверном пути?
725 439848
Кстати, вдруг кто не знает, Visual Studio Code неплохая замена Монодевелопу для тех, кто по каким-то причинам не хочет ставить старшую Студию. Еще там можно сделать интеллектуальные подсказки на все функции типа FixedUpdate и на коллбеки типа OnTriggerEnter и т.д. Мелочь а приятно. В аддонах поищите по слову Unity.
726 439849
>>39848

> Еще там можно сделать интеллектуальные подсказки на все функции типа FixedUpdate и на коллбеки типа OnTriggerEnter и т.д.


ОКАЗУАЛЕЛЕ!
727 439869
Может быть, это тупой вопрос, но почему объект из сцены не хочет прикрепляться к префабу? Всегда, блядь, прикреплялись, а теперь нет, в чём может быть проблема?
728 439871
>>39869
Нормально объясняй. На твоих скринах ни объекта ни префаба нет, только компонент и окно поиска.
729 439873
>>39871
Сейчас гифку кину
730 439874
>>39869
Потому что к префаб знает только о тех компонентах, которые к нему самому прикреплены(или к его дочерним объектам). Чтобы взаимодействовать со сценой, нужно либо искать объект на сцене через GamObject.Find, либо через Instance(синглетон) как описано выше >>39621, либо еще как-то...
731 439875
>>39874
Точно, спасибо, ебать, я долбаеб, братишка, земля мне пухом
732 439877
>>39874
Спасибо тебе ещё раз, у меня все проблемы разом решились. И, кстать, префаб ещё знает о других префабах
733 439885
>>39877
Да, но именно как о префабах. Если ты инстанциируешь из них объекты, придется связывать их во время исполнения.
734 439888
>>39848
Добавлю для порядка, что у меня возникли проблемы с дебаггером, при попытке поставить брейкпоинты. Если что имейте в виду. Может быть не у всех это вылезает, я хз.
735 439914
>>39755
Прошвырнулся по ютубу, посмотрел подобные ролики (только не такие длинные, я ебал), оказывается я ещё ничё так. Показать ничего готового пока, к сожалению, нечего (потому как "сделал - удалил, сделал - удалил", тупо руку набиваю), но я просто бог моделлинга и скриптинга на фоне тех идиотов, которые просто стандартные ассеты по сцене раскидывают и готовые скрипты к объектам лепят, а им в комментах поют оды и кричат "чувак, ты крут!". А я-то думал что я дно коим я и являюсь, да.
736 439924
>>39914
Ну в плане ассетов их можно понять. Я вот начал недавно, и сначала как-то мало внимания обратил на проблему моделек и анимаций. А оказалось это самый большой затык для начинающего - годные ассеты стоят дохуя, да и не факт что подберешь, художники еще дороже, а самому нормально нарисовать - это нужны годы практики. В основном модели, созданные самодельщиками, это тот еще шок-контент.
737 439927
>>39924

> Ну в плане ассетов их можно понять


Это "уроки", понимаешь? Чему ты научишь своим "уроком", в котором ты просто таскаешь ассеты по сцене? Ладно бы это были видео "я изучаю юнити с записываю это бэндикамом", так нет, это "смотрите как это делается и запоминайте".
Ничему так не научишь.
1365331490x7b1135a6.jpg19 Кб, 313x250
738 439963
Подскажите идиоту - как правильнее реализовывать милишный комбат? Поначалу думал нацепить триггер и махать им, аки дубиной. Вроде как самое естественное поведение и легкая подстройка АоЕ. Но триггер на большой скорости пролета демонстрирует странное поведение... На пути триггера, только часть тростинок из пучка падает, другие рандомно падают при последующих ударах(из той же точки).

Хитбоксы при помощи всяких OverlapSphere - геморно настраивать форму АоЕ хитбокса, под длину и замах оружия. Не самое естественное поведение. Но работают стабильно.

Еще вариант - пускать несколько штук рейкастов из основания оружия по его длине, скажем треугольником, каждый фиксед апдейт. Может это норм? Тоже легко настраивать длину.
739 439965
>>39963
смотря че ты там собрался делать. советую воспользоваться https://docs.unity3d.com/ScriptReference/Rigidbody.SweepTest.html
740 440016
>>39799
Маня не может в английский, маня игори пилит
741 440018
>>39847

>путем разработки простенькой игры


И начинаешь с непонятного ни тебе, ни другим
742 440020
>>40016
Тут расписано. Тот злой анон был прав: 5% в случае, когда за квартал оборот больше 3000$

У юнети граница в 10 раз выше (100к против 12к в год)
744 440089
Выпросил у мамки 200 бачей на юнети.
Каких ассетов загрузить посоветуете?
745 440098
>>40089
ZdelatPizdato.unitypackage
746 440139
Оказывается, можно делать ИИ на Меканиме(StateMachineBehaviour).
748 440158
>>40143
В смысле "зачем делать ИИ на стейт машине?"?
750 440180
>>40158
да, зачем делать ИИ на меканиме? ну тоесь конечно можно сделать какое-то примитивное говно из пары нод и оно будет работать и это адекватно, хоть и глупо. но что-то сложное как делать то? а что если ноды требуют параметры? ебаться через StateMachineBehaviour и чтобы узнать чем нода А отличается от ноды Б надо кликать на неё? через меканим и диалоговую систему можно сделать с таким-же успехом и много чего требующего бихейвор три, но пользоваться этим можно только в очень малых масштабах.
751 440182
>>40180
Ты не сказал главного: какие альтернативы?
752 440185
>>40182
альтернативы зависят от задачи, разумеется
и это не уклончивый ответ. уже готовых платных и бесплатных имплементаций ИИ хватает. всякие reGOAP, RAIN и прочее.
753 440189
>>40185
RAIN
Глючное говно, которое не поддерживается уже давно.
Только время зря на него потратил. Из полезных фич только простое создание зоны видимости/слышимости персонажа и случайный перебор точек маршрута.

В итоге накатил Playmaker и вполне доволен. В нем есть ноды для работы со встроенным в юнити Navigator. Легко обмениваться данными с меканимом и скриптами.
754 440190
>>40185
Если бы вопрос сводился чисто к тому, что стоит ли велосипедить, то, конечно, нет, а следовало бы сначала примерить имеющиеся решения (RAIN бесплатен) к своей задаче.

Решение через меканим подкупает тем, что
1. это полноценная FSM
2. наглядно дебажится
3. состояния логично собираются в группы
4. надо ивенты - пожалуйста
755 440191
>>40190
Ага, только все это есть в плеймейкере.
756 440193
>>40191
погромист сможет в логику плеймейкера?

я пытался в блюпринтс уеча - послал к хуям. Ведь функции надо все равно знать на зубок
757 440194
>>40193
Если дохуя программист, то не пользуешься встроенными переменными и экшонами плеймейкера, а пишешь скрипт и экшон, который будет этот скрипт из ноды вызывать.
Но если ты такой программист, который не знает все нужные для работы классы в unity api, то лучше встроенные экшоны использовать, они интуитивные, с подсказками, легко запоминаются.
758 440208
И так допустим у вас есть персонаж, у него есть два слота под левую руку и под правую, и есть два типа оружия - одноручное и двуручное. Под эквип у меня сейчас запилена такая структурка и обьект типа этой струры лежит в Character:
[Serializable]
public struct Equipment_struct
{
public HelmentItem helment;
public MailItem mail;
public HandSlotItem left_hand_slot;
public HandSlotItem right_hand_slot;
}
Хенд слот итем:
public class HandSlotItem : Item {
public bool one_handed;
public int condition;
public int fatigue_cost;
}
public class WeaponeItem : HandSlotItem{
public int min_dmg;
public int max_dmg;
public bool melee;
public int accuracy;
public int attak_range;
//public skills[] skills;
}
Наследую чтобы запилить еще щит потому что у него статы как у армора а берется он в руку.
public class ShieldItem : HandSlotItem {
public int melee_deff;
public int range_deff;
new public bool one_handed = true;
//public skills[] skills;
}

Сейчас пишу функцию эквипа оружия, и при эквипе двуруча я не могу придумать не костыльный метод, пока приходит в голову только эквипать двуруч в обе руки и скипать его в одной из рук при подсчетах статов и при снятии, но это же просто пиздец костыль. Поделитесь мудростью как это лучше сделать.
758 440208
И так допустим у вас есть персонаж, у него есть два слота под левую руку и под правую, и есть два типа оружия - одноручное и двуручное. Под эквип у меня сейчас запилена такая структурка и обьект типа этой струры лежит в Character:
[Serializable]
public struct Equipment_struct
{
public HelmentItem helment;
public MailItem mail;
public HandSlotItem left_hand_slot;
public HandSlotItem right_hand_slot;
}
Хенд слот итем:
public class HandSlotItem : Item {
public bool one_handed;
public int condition;
public int fatigue_cost;
}
public class WeaponeItem : HandSlotItem{
public int min_dmg;
public int max_dmg;
public bool melee;
public int accuracy;
public int attak_range;
//public skills[] skills;
}
Наследую чтобы запилить еще щит потому что у него статы как у армора а берется он в руку.
public class ShieldItem : HandSlotItem {
public int melee_deff;
public int range_deff;
new public bool one_handed = true;
//public skills[] skills;
}

Сейчас пишу функцию эквипа оружия, и при эквипе двуруча я не могу придумать не костыльный метод, пока приходит в голову только эквипать двуруч в обе руки и скипать его в одной из рук при подсчетах статов и при снятии, но это же просто пиздец костыль. Поделитесь мудростью как это лучше сделать.
759 440209
>>40208
На //public skills[] skills; не обращайте внимание, со временем у меня пушки будут давать скилы, но вопрос не об этом.
760 440219
>>40208
По идее, это должны быть два разных слота (в смысле класса), потому что разницы между головой, правой и левой рукой с точки зрения логики надевания предметов нет, а у головы отдельный класс.

Хотя по-моему лучше сделать один класс SlotItem, которому добавить идентификатор конкретной части тела в виде простого enum.
Я бы прикостылил требования внутрь самого предмета, чтобы он требовал наличия списка (или одного) свободных слотов с нужными айди, а в методе экипировки просто проверял, что у персонажа свободные слоты удовлетворяют требованиям предмета.
выаaersdefdfrdsdва.png347 Кб, 1143x846
761 440250
>>40208
По моему эквипить в обе руки - норм идея. А что бы не скипать костыльно - не обрабатывай руки как отдельные сущности. Обрабатывай человека. А он там сам разберется что за говно у него в руках.
762 440370
>>40219

> разницы между головой, правой и левой рукой с точки зрения логики надевания предметов нет


там есть разница в том что я так сделал чтобы даже через эдитор нельзя было засунуть в слот шлема броню, но твоя мысль по поводу идентификаторов мне нравится, спасибо за ответ.
>>40250
Я так и делаю, но с "он там сам разберется что за говно у него в руках" как раз и возникают костыли.
image.png217 Кб, 590x330
763 440374
>>40370
Oтклеилось
image.png287 Кб, 879x803
764 440375
Сап, юнитаны.
Есть вот эта хуйня на пикче - здание в горах, так сказать. На здание кинул меш коллайдер и ригидбади, на плеера - соответственно, тоже.
Так вот, если меш-коллайдер повторяет форму здания, игрок через него спокойно проходит. Если поставить галку конвекс - врезается и отскакивает, как и положено, только вот коллайдер тогда у нас в форме куска говна (см. пик), и в здание зайти нельзя.
Неужели придется городить кучу коллайдеров-паралелепипедов вокруг всех стен и углов, чтобы они повторяли форму здания? Я ж заебусь. А как с землей тогда быть? С ней та же самая проблема, а она вообще довольно сложной формы, хоть и состоит из здоровенных полигонов. Или мне эти модельки разрезать на кучу выпуклых мешей, чтобы конвекс-коллайдеры им назначить? Подскажите, плиз.

Еще проблема - ебанутая скорость прокрутки мышью во вьюпорте. Могу либо с такого расстояния смотреть, либо уже внутри здания, один поворот колесика мышки на 300 метров перемещает. Это оттого что меши здания и земли (гор) у меня нехуево так заскейлены?
765 440377
>>40375
Не работал с 3д в юнити но в поле меш в меш коллайдере попробуй перетащить свою модельку здания.
766 440379
>>40375
Чем не нравится идея напихать бокс коллайдеров, куда надо? А куда не надо - не пихать. Меш коллайдер придется самому рисовать(упрощенный), я так понимаю у тебя его нет.
767 440380
>>40377
Он уже там, см. пик. Так как я назначаю меш-коллайдер этому мешу, естественно что он берет форму этой модельки.
>>40379
Долго, я думал есть варианты попроще. Да и с чересчур отзывчивым вьюпортом это будет сложновато. Алсо, открыт вопрос, что делать с коллайдером для модельки земли, см. пик. 2
Единственное что приходит мне в голову с учетом открывшихся ограничений - переделать все нахуй, вообще убрать всякие там двухэтажные здания, сделать землю ровной как стол и разделить ее по уровням, и все это закидывать бокс-коллайдерами... но это кажется как-то тупо.
768 440381
>>40380
Есть еще такой стул https://www.assetstore.unity3d.com/en/#!/content/4596 можешь попробовать напиратить где то либо разобраться как они его запилили.
769 440382
>>40380
Там же есть встроенный земляной коллайдер. Можно в принципе из модели сделать terrain http://wiki.unity3d.com/index.php?title=Object2Terrain

Алсо, пробовал делать коллайдер здания статиком(без твердого тела и без конвекса)?
770 440383
>>40380
Кстати, у тебя игрок кинематика наверное? Не кинематика не должна проходить через обычный меш коллайдер.
image.png84 Кб, 705x334
771 440389
>>40382

>Там же есть встроенный земляной коллайдер.


И правда, думал что он только для созданного в юнити террейна подходит.
>>40383
Нет, галочку is kinematic первым делом везде проверил.
В общем, с землей вроде нормально все, а здания значит буду переделывать с учетом нюансов.
772 440390
>>40389
У тебя коллайдер-капсула, а не CharacterController? Он странно ведет себя в связке с физическим телом. Не должна она проходить через меш коллайдер. В Standard Assets Example Project там все по этим мешам гоняет, шарики всякие, и люди.
773 440392
>>40390
Капсула, капсула.
Ради интереса я только что создал в юньке плоскость, куб, кинул на куб меш-коллайдер, набежал на куб плеером, и о чудо! все работает!
Чем ему не угодила моя моделька - не пойму. Попробую экспортировать по-другому.
774 440409
>>40219
Закодил как ты советовал, но всплыла противоположная проблема, что ставить одноручному оружию в требуемые слоты? Можно левую и правую и флажок что это одноручное, но это снова костыль.
775 440415
>>40409
Одноручное - один слот(правый или левый), двуручное - два(один из них - заглушка).

мимокрок
776 440416
>>40415
Но у меня по необходимым слотам очищает то что уже надето, и как туда засунуть без кучи ифов еще логику или или я не могу придумать.
777 440418
>>40416
Не понимат. Допустим у тебя на болванчике слоты, каждый итем занимает N слотов. Скажем, если надета шапка, она не мешает надеть ботинки. Может у тебя совсем другая система какая-то.
monsters2.gif6 Кб, 185x255
778 440437
Аноны. У меня тут возникла проблема с осознанием того, что я вообще не понимаю что такое система событий, и как ее использовать.

У меня просто весь код пишется на отъебись. Допустим есть 5 объектов и на каждом висит скрипт, где в апдейте высчитывается куда было нажатие мыши. А я только сейчас понимаю, что это неправильно, и скорее всего должен быть один скрипт, где бы считалось куда кликнули мышкой, а затем уже выполнялось то или иное действие. Или нет?

Ну или мне постоянно нужно высчитывать время. Так вот у меня может быть по 10 скриптов, где в каждом имеется таймер time= time+time.deltatime. А ведь это скорее всего перегружает саму игру?

Или я ошибаюсь?

Ну суть в том, что может вы знаете годные видео гайды или ресурсы, где про это разжевывают, именно разжевывают, что и как лучше делать, а что лучше не делать. Желательно с примерами.
779 440447
>>40409
Юзай что-то вроде этого для хранения данных:
enum InventorySlotID {
rightHand,
leftHand,
Jopa
}
struct Item {
string name = "Dildak"
List<InventorySlotID> requiredSlots = {0, 2};
string meshData = "Resources/Dildak.mesh";
string matData = "Resources/DildakMaterial.mat"
int damage = 5;
int length = 50;
}

bool Equip(Item item) {
foreach (InventorySlotID id in item.requiredSlots) {
if (!character.SlotIsFree(id)) {
return false;
}
}
character.Equip(item);
return true;
}

Алсо, итемы можно загружать из JSON и хранить во внешних текстовых файлах, можно будет читерить себе всякое на ходу.
779 440447
>>40409
Юзай что-то вроде этого для хранения данных:
enum InventorySlotID {
rightHand,
leftHand,
Jopa
}
struct Item {
string name = "Dildak"
List<InventorySlotID> requiredSlots = {0, 2};
string meshData = "Resources/Dildak.mesh";
string matData = "Resources/DildakMaterial.mat"
int damage = 5;
int length = 50;
}

bool Equip(Item item) {
foreach (InventorySlotID id in item.requiredSlots) {
if (!character.SlotIsFree(id)) {
return false;
}
}
character.Equip(item);
return true;
}

Алсо, итемы можно загружать из JSON и хранить во внешних текстовых файлах, можно будет читерить себе всякое на ходу.
780 440448
>>40437

>где в апдейте высчитывается куда было нажатие мыши


Там есть метод OnMouseOver, который отрабатывает когда мышь над объектом.

>Ну или мне постоянно нужно высчитывать время.


Лично я для этого навелосипедил TimeController, который считает время и дает остальным DateTime gameTime, fixedGameTime, NextFixedGameTime.

>знаете годные видео гайды или ресурсы


https://www.youtube.com/channel/UCPXOQq7PWh5OdCwEO60Y8jQ
781 440492
Есть одна модель из блендера, внутри просто 2 куба, один серый, другой белый синий и полупрозрачный. Экспортирую FBX 7,4 бинарным экспортером. В юнити гружу через Resources.Load.

В итоге ряд проблем.
1. Все размеры кубов из блендера игнорируются, юнити рисует мне просто ёбаный куб! Какие бы размеры в блендере ни были, в Юньке просто куб каждый раз! ВТФ? Родителей у объекта нет, просто на сцене висит.

2. Грузит только первый меш-куб, второго нет. Resources.LoadAll тоже не пашет. Я уже хз, что делать.

При этом когда смотрю в самом редакторе папку Resources, там и размеры и сабмешы нормально показываются.
782 440494
А, да! И к чему я про цвета говорил - материалы ведь тоже не импортируются! В инспекторе всё норм, а при загрузке и добавлении в MeshFilter нихренашечки!

>>40492 - кун
783 440499
>>40492
Ctrl-a Scale делал?
Материалы не экспортируются, нужно запекать в текстуры.
784 440527
>>40492
ctrl+j нажми, чмоха
785 440560
>>40527
Уебывай, мудила токсичный.
786 440569
>>40560
Уебал тебе за щеку
787 440591
Зочем юнети, если есть бажесвеный Playmaker!

Спосибо, добрый антон >>40194 за хароши савет

А вы ебитесь тут с сисярпом!
788 440621
Здарова, как скопировать компонент одного GameObject'а на другой GameObject, через код офк?
789 440637
Ребята, я новичёк в юнити, подскажите, как плавно переместить объект в определенные координаты и с поворотом через transform.RotateAround(). Знаю, что плавное передвижение делается с помощью Lerp или Translate, но не знаю как реализовать.
Так вот, нужно, чтобы при нажатии, допустим, на пробел камера облетала куб чуть выше его и остановилась в той точке, которую нам надо, а не рандомом подгонять значения для Mathf.Lerp().
790 440644
>>40637

> нужно, чтобы при нажатии, допустим, на пробел камера облетала куб чуть выше его и остановилась в той точке, которую нам надо


Не нужен тебе ни транслейти ни лерп, используй анимацию.
791 440646
>>40644
Я уже и сделал анимацию, но в процессе работы понял, что мне нужна привязка к объекту, вокруг которого камера будет двигаться. А с помощью анимации такого не сделать. Или сделать?
792 440655
>>40621
public GameObject yoba1;
this.GetComponent<YobaComponent>() = yoba1.GetComponent<YobaComponent>()
793 440657
>>40621
через сериализацию, гугли unity copy component to other gameobject и не слушай этого накромана >>40655

Но лучше сделай по-другому, у меня за 3 года на юнити ни разу такой потребности не возникало
794 440658
>>40646
Сделай пустой объект, на него аниматор, а камеру внутрь. Потом добавляешь этот объект в любой другой, а анимация сохраняется относительно локальных координат

Алсо, у вектора есть методы вроде SmoothDamp для плавного передвижения, почитай
Screenshot26.png3 Кб, 315x161
795 440666
Поясните за настройку управления. Хочу, чтобы как у белых людей можно было открыть меню настроек посреди игры и перебиндить кнопки движения/взаимодействия/дрочения.
Все, что я нашел — это костыль на пикрелейтед. В настройках проверяются ивенты, если ивент — нажатие клавиши, то spinYoba приравнивается к ней.
796 440667
Поясните за XML/Json vs ScriptableObjects для хранения инфы по итемам в игре. Возможно есть еще какие-то варианты, нашел идеально подходящий мне гайдик но там чувак делает все на хмльках, я понимаю их преймущество в том что можно легко менять статы и т д после того как игра уже скомпилена, но в скриптбл обджектах если я захочу добавить еще какое-то поле в итем, я просто добавлю его и оно появится во всех созданых ранее итемах, + их легко создавать просто через CreateAssetMenu и потом прямо в эдиторе забивать поля + можно наследовать и выстраивать из них иерархию. Вобщем нужны мысли более опытных анонов. Вот гайдик о котором я говорил - https://www.youtube.com/watch?v=FcqW5Nmh6Qs&list=PLX-uZVK_0K_7V8z0lfuC9680FnCWoYdbb&index=16
798 440669
>>40668
От души, пойду ковырять.
Я уж подумал, что ты призываешь меня потратить 15 долларов.
799 440692
Хочу запилить РПГшку в мультяшной графике (примерно как в расте). Сейчас немного знаю с++, на уровне консоли и создания простых приложений под винду. Посоветуйте движок пж - unreal или unity?
800 440698
>>40692
Советую сначала выучить язык получше.
801 440703
>>40698
Буду учить по ходу.
Я просто для того и решил пилить игру, потому иначе мне как-то медленно и лениво это, а так будет желание разбираться по ходу.
802 440704
>>40692
А где контент для игры будешь брать, покупать, или сам моделишь и рисуешь?
803 440705
>>40692
да без разницы. в юнити первый результат получишь быстрей.
804 440706
>>40704
Буду все делать сам, супердолго, учиться по ходу.
805 440707
>>40703
Крайне высок шанс того, что тебе станет похуй. Это гавно вообще как качели: то пиздец интересно, то нахуй все, лучше подрочить на игры, из-за которых ты решил сделать так же, только заебись.
roadmap.jpg215 Кб, 855x711
806 440720
>>40707
Чтобы такого не было, надо наметить роадмап с достижимыми шагами, и делать их один за одним. Охуеваешь от трудности чего-то одного, переключаешься на какую-нибудь задачу полегче, чтобы отдохнуть.
И системы контроля версий еще помогают, потому что дают уверенность, что если нахуевертишь изменений, то можно откатиться на предыдущий чекпоинт.
807 440721
>>40720

> Охуеваешь от трудности чего-то одного, переключаешься на какую-нибудь задачу полегче


Не в трудностях дело, просто надоедает. Я вот могу по две-три недели часов по 14 целый день хуярить, аж дым идёт, но потом недели на полторы забиваю хуй, ибо заебало неимоверно.
808 440722
>>40720
спасибо за совет!
пока что наяриваю туториалы на ютабе на скорости 2.0
809 440723
>>40706
Кстати по 3д моделлингу не меньше хуевых туториалов, чем по Юнити. Так что будь настороже. Выше кидали пару нормальных каналов, еще официальные туториалы Юнити и ворованные/покупные уроки годятся. А что по Блендеру посмотреть из бесплатного - сам вот не знаю.
810 440725
>>40447
Ребят, может кто объяснить нубу, что этот анон написал?
how-to-model-a-dog-in-Blender.png295 Кб, 1456x672
811 440728
>>40722
Короче не жри все подряд туториалы типа пикрелейтед. А по кодингу посмотри конвенции нейминга и написания кода, и когда видишь, что чувак пишет совсем не так, от балды, то скорее всего не стоит его смотреть. То же самое, если явно игнорирует рекомендации Юнити, и делает кривую хрень.
image.png23 Кб, 845x190
813 440732
>>40731
Я просто хочу понять, зачем создавать переменные внутри функций и что значит enum и struct?
2a9762df8e86faa84a981701c2336908.png26 Кб, 660x422
815 440735
>>40732

> что значит enum


Пиздец, ты в гугле забанен?
Первая же ссылка.
816 440736
>>40732

> зачем создавать переменные внутри функций


Чтобы они хранили в себе значение.

> что значит enum


Перечисление.

> и struct


Структура.
817 440738
>>40736
в смысле это только для удобства нужно? практической пользы в этом нет?
818 440739
>>40738

> в смысле это только для удобства нужно?


Конечно нахуй не нужно. Можно вообще забить хуй на переменные и пользоваться магическими числами. И вообще код в одну строчку писать. И корутинами не пользоваться, а ебаться с флажками в апдейте.
819 440740
>>40739
А я то гадал, зачем нужны корутины. Хорошо, спасибо
14205117567140.jpg106 Кб, 707x682
820 440741
822 440799
>>40667
Юзал джейсоны, перекатился на скриптабл обджекты. Батя говорит "Молодца", тянки боятся, быдло завидует, зависимость есть. Можешь свои редакторы для скриптабл обджектов писать.
823 440810
Салам, гдач!

Смотри, я импортнул модельку, в редакторе отображается обьект с названием модельки, который имеет только трансформ, и его чайлды - два GameObject с MeshFilter, MeshRender всё как положено.

Есть ли способ из коробки, чтобы Transform этого родительского GameObject рассчитывался таким образом, чтобы типа BoundBox вокруг этих child-mesh строился?
Или самому писать?

Грубо говоря, два куба стоят размером 1, один слева, другой правее. Мне надо чтобы родительский ГО свой трансформ делал типа 2,1,1. Тогда я бы смог накинуть на него куб-коллайдер и он бы принял габариты охватывающие все меши в модельке.
d4072d787199447293122af68c5b0006.png257 Кб, 850x344
824 440817
Завезли свежий шарп и разных ништяков. https://habrahabr.ru/company/everydaytools/blog/336714/
825 440818
>>40810
Ебанутый чухан, что ты делаешь?
826 440823
>>40818
Ты опять выходишь на связь, мудило?
827 440829
>>40817
Говорят, крашится часто. Ссыкотно ставить.
828 440838
>>40799
Я так и думал, спасибо за ответ, побежал радовать батю.
829 440846
>>40817
вся суть хуюнити
теперь юнетидетям даже ассет таскать не нужно чтобы навесить ВАУ-ПОЦЭФФЕКТЫ. тепреь они РЕАЛЬНЫЕ ИГРОДЕЛЫ.
4144183+e521245a4344c2822a913236edb4b776.png45 Кб, 317x266
830 440850
>>40846

> не написал движок с нуля — нимужик


Тут люди на коленке ковыряют шарп, о каком графоне может идти речь?
831 440851
>>40846
Кто-то делает игры, кто-то рендерит треугольники. А теперь съеби.
832 440854
>>40817
Это ж ещё с июля вроде.
833 440890
>>34038
Лол, зашёл чтобы задать тот же вопрос.
Видимо ответа пока нет, во всяком случае здесь.
Тоже распаковал *assets, нашёл там файл без расширения с текстом игры (мне даже проще - весь текст в одном файле) и дальше тупик.
Короче ты это я.
834 440960
>>40890
Вы чо совсем ебобо без доступа к Гуглу?
http://www.zoneofgames.ru/forum/index.php?showtopic=36240
835 440968
В Unity можно как-то сделать, чтобы от объектов на сцене отражалась нижняя часть комнаты, например пол? Как бы не пытался добавить отражения на объекты, они отражают только верх, только небо, только Аллаха.
836 440970
>>40960

Спасибо.
Снимок экрана 2017-08-31 в 2.21.51.png189 Кб, 1870x622
837 440996
Этот вопрос знатокам прислал Макар из города Велосипедска.
Хочу редактировать ивенты через кастомный инспектор. Сделал, как на пикче, все отображается, ивенты редактируются. Но есть одна проблема, не сериализуются поля ивента. То есть они сериализуются, но только если я метод заново назначаю.
https://youtu.be/u2E_rLuF-PY
838 441007
>>40996
Ты в курсе что ОнИнспекторГуи вызывается не один, а каждый раз когда надо перерисовать панельку? У тебя там new SerializedObject при каждом чихе создается, по нескольку раз в секунду.
839 441008
>>41007
Да, в курсе, в любом случае инициализация проперти в OnEnable проблемы не решает.
840 441034
>>40996
Вроде должно сохранять, но почитай на всякий случай про EditorUtility SetDirty
841 441062
Есть ли сервисы по сетапу популярных в юнити основ под ммо (либо любой другой клиентсерверной хуйни) в один клик?

Для сайтов такое есть у многих хостеров - выбираешь фреймворк, оно тебе само устанавливает зависимости, генерит репо со всеми нужными хуками, и дальше ты просто коммитишь туда и в хуй не дуешь.
842 441073
>>41062
Нет.
843 441075
Где можно глянуть реализацию простенького GameManager и SceneManager ?
844 441076
>>41075
Можно.
845 441080
>>41034
это для файлов в проекте. для файлов в сцене https://docs.unity3d.com/ScriptReference/Undo.RecordObject.html
image.png33 Кб, 636x370
846 441102
Скачал Sdk-tools. Не понимаю где тут manager. И вообще все выглядит не так как в туторах
848 441104
>>41103
Мне не смешно.
unitywtf.PNG234 Кб, 1314x726
849 441118
Привет поцоны. Столкнулся в юнити то ли с багами, то ли с собственной тупостью, потому что я абсолютли ньюфаг со стажем неделя.

1) После перезагрузки сцены - перестают работать элементы интерфейса (кнопки, слайдеры). При чем хоть все скрипты убирай, хоть что делай - они тупо не функционируют, не прожимаются, не крутятся.

2) Сейчас разбираюсь с 3D звуком, тещу его функции. И вот у меня случилась такая мертвая зона в игре. Я сделал три колонки (просто кубы, в которых вшита музыка). Но звук распространяется только в одну сторону от объекта, а не вокруг. Как-будто кубы стоят не по центру распространения звука, а у самого края. Но позиционка звука не настраивается же, если просто использовать как компонент к объекту. Так что я теперь нихера не понимаю, в чем дело.
850 441120
>>41118

> абсолютли ньюфаг со стажем неделя


> разбираюсь с 3D звуком


Ты б основы сначала поковырял.
851 441121
>>41120
Так я все подряд ковыряю. Уже много чего научился делать. Я учусь по урокам Стрима, как-раз проходил звук. И вот обратил внимание на такой нюанс, и не понимаю, как это настроить.

Алсо, первый вопрос отменяется - это моя тупость.
852 441122
>>41121

> Я учусь по урокам Стрима


А, видать я тебе его на днях и кидал, лол.
853 441123
>>41122
Да, скорее всего. Охуенные уроки, спасибо. Круто, что не просто код копируешь, а реально понимаешь и свои скрипты пробуешь. Пока что дошел до интерфейса (пропустил анимацию, считаю ее не такой пока что важной).
854 441124
>>41123
Да на здоровье.
Действительно хороший материал в русскоязычном сегменте.
855 441125
>>41124
А можешь что посоветовать не из русскоязычного? Я язык знаю.
856 441127
>>41125
Элементарно можешь штудировать официальные уроки на сайте юнити. Если ты совсем новенький, то много полезного узнаешь.
Но они суховаты, да. Стрим более такой, "чувак", так сказать.
Англоязычных таких "чуваков" не подскажу, но, думаю, за меня кто-то подскажет.
857 441134
public class button_testing : MonoBehaviour {
GameObject enemy;

void Start () {

enemy = GameObject.FindGameObjectWithTag ("FearOfSun");

}

public void slay (float param) {

if (enemy != null) {

if (param > 5f) {

Destroy (enemy);
}

Привет еще раз. Смотрите, что хочу сделать. Привязываю скрипт к слайдеру и к объекту с тэгом. Хочу, чтобы при значении слайдера > 5 уничтожался объект. Однако, это не работает. Что я сделал не так? Компилится нормально.
858 441135
>>41134

> public void slay (float param)


> float param


Что и откуда ты туда передаёшь?
859 441136
>>41102
Последний андроид СДК консольный, а так открывать батник
860 441139
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
Debug.Log("ENEMY");
}
Rigidbody, коллайдеры и теги на месте, везде 2d. Но всё равно не работает. В чём может быть проблема? Вопрос распространенный.Нас даунов много
861 441140
>>41135

Я брал пример из урока:

public void slay (float param) {

transform.localScale = new Vector 3 (1f, param, 1f); }

Скрипт привязывается к слайдеру, и param передается от value слайдера. Но когда я захотел что-то поменять - получилось нихуя.
862 441141
>>41140
Блять, откуда ты param передаёшь? Ты вообще видишь что у тебя в коде?
864 441151
>>41140
У тебя максимальное значение слайдера не 1 случайно? К onValueChanged цепляешь свою функцию? Посмотри в дебаггере что там происходит, не равна ли null ссылка на объект.
865 441154
hui.jpg224 Кб, 1092x780
866 441159
Чуваки, я тут после работы взялся моделить всякую хуйню.
Пикрилейтед - попытка винтажного холодильника. Завтра доделывать\красить, но вот вопрос. Если не для графонистой хайполи игры, а сорт оф икском, нужно ли делать ретопологию, или вообще похуй?
Не сглаженная 768 полигонов, на сглаженной 6100.
868 441166
>>40996
Если кому мнтересно, решил проблему с помощью SerializedObject.ApplyModifiedProperties.
870 441177
>>41164

>...


Че сказать-то хотел? Сити генератор? Самописный? А дальше что?
871 441185
>>41159
А не много для коробки?
872 441186
>>41185
Согласен, немного убрать можно. Но немного. Много лупов для корректного смуфа, и чтобы вообще сетка по пизде не пошла. Я начинал делать на отьебись, чтобы в минимум полигонов убраться, но в финале столкнулся с тотальным пиздецом, что пришлось переделать с нуля.
Но таки интересно за юнити.

И еще есть пара вопросов юнити. Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать?
Я просто хз как это все устроено.
873 441187
>>41186

> Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать?


Не совсем понял чё ты хочешь. Юнька отдельно хавает карту нормали, спекуляр и так далее. Так что красишь свой холодильник, всё запекаешь в текстурах и свободен.
874 441209
>>41177

> Сити генератор?


Пак зданий.
875 441214
>>41186

> Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать?


в максе вообще ничего не крась, макс ебанутый и озалупился со своими ебанутыми материалами. у него даже нормали через жопу отображатся, и это не просто Y+/Y- а что-то иное.
красить модельки нужно в специально предназначенных для этого приложениях.
876 441218
Чому в шапке треда нет Clustertruck, SUPERHOT, Firewatch? Уж эти тайтлы круче, чем блицкриг какой-то.
877 441227
>>41214

> у него даже нормали через жопу отображатся


Не пизди мне тут.

> и это не просто Y+/Y- а что-то иное.


красить модельки нужно в специально предназначенных для этого приложениях.

Не слушайте его, он - ебанашка.
>>41186

>И еще есть пара вопросов юнити. Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать?



Для спека, хейд мап, ао- отдельно будешь настраивать в самом unity.
3ds max тебе разве что автоматически сгенерирует дифуз/альбедо и нормал мап.
878 441228
>>41227
Добавлю.
Вообще, ты можешь моделировать хоть в сие царском, королевском 3ds max.
Ну или blender, maya.
Главное, сделай норм модель и развёртку.
Что бы можно было в пейнтере текстурировать.
879 441229
>>41227

> Не пизди мне тут.


нет это ты не пизди мне тут.

> Что бы можно было в пейнтере текстурировать.


> красить модельки нужно в специально предназначенных для этого приложениях.


зачем ты повторяешь что я сказал? ты попугай?
880 441230
>>41229

> нет это ты не пизди мне тут.


нет это ты не пизди мне тут

>зачем ты повторяешь что я сказал? ты попугай?


Нет это ты попугай
881 441231
>>41230

> нет это ты не пизди мне тут


нет это ты пиздишь

> Нет это ты попугай


нет это ты попугай
882 441232
>>41231

>> нет это ты пиздишь


Нет это ты пиздишь

> нет это ты попугай


Нет это ты попугай
883 441233
>>41231
>>41232
Харош щитпостить, заебали.
884 441234
>>41232

> Нет это ты пиздишь


нет это ты пиздишь

> Нет это ты попугай


нет это ты попугай
885 441235
>>41233
Нет это ты заебал
886 441236
>>41233
скажи кто пиздит а кто попугай, мы и закончим.
887 441237
>>41235
а ты попугай
888 441238
>>41234

> Нет это ты пиздишь



Нет это ты пиздишь

> Нет это ты попугай


Нет это ты попугай
889 441239
>>41236
Он пиздит и попугай.
890 441240
>>41237
Нет это ты попугай
891 441241
>>41239
нет это ты пиздишь и ты попугай
попугай
892 441243
>>41241
нет это ты пиздишь и ты попугай
я не попугай
893 441244
>>41243
ты пиздишь что ты попугай
попугай
894 441245
>>41244
ты пиздишь что я попугай
я не попугай
895 441246
>>41245
ты не попугай и не пиздишь
пиздун
896 441247
>>41246
да я не попугай и не пизжу.
я красавчик
That+cat+on+the+top+looks+like+a+ewok+1bbc6e5868c08d55b7cfd[...].jpg270 Кб, 1013x896
897 441249
Поясните по юнити. Реально с нуля за неспешные полгода в одиночку наваять несложную ламповую игрушку, способную получить зелёный свет в стиме?
898 441250
>>41249

> зелёный свет в стиме


Наркоман ебучий, гринлайт ещё с июня новые проекты не принимает.
image.png437 Кб, 1280x1024
899 441251
>>41249
за джве недели
sage 900 441262
Что вы тут за херню развели?
901 441278
Тупой вопрос такой тупой.

Делаю простое зеркало через камеру + рендер.текстуру.
Зеркало получается обратным - персонаж идет направо, в зеркале движется налево. Как поправить?
902 441280
>>41278
Я дебил, простите.
903 441281
>>41278
По иксу в -1 ебани.
904 441282
>>41278
http://wiki.unity3d.com/index.php/MirrorReflection4
а твои махинации применением камеры это костыль.
905 441283
Как сделать расположение интерфейса, скейлящееся под разрешение? В юньке все нормально, когда билдю игру - все элементы интерфейса сбиваются в кучу.

Алсо, звуки, которые звучали с нормальной громкостью в редакторе - в готовой игре звучат ОЧЕНЬ тихо.
906 441285
>>41283
1. Не проебываешь анчоры на канвасе
2. Правильно выбираешь относительный, либо абсолютный размер ui элементов.
3. ????
4. Профит
907 441286
>>41283
Якоря для кого, блджад?
908 441308
>>41249

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



Зависит от того, что ты хочешь.
909 441309
>>41249
Гринлайт всё. Теперь это называется Steam Direct и туда принимают любое говно, надо только заплатить взнос в размере $100 и пройти проверку на вирусы.

Вопрос только в том, сделаешь ты вообще что-то или нет.
910 441311
КТо-то итт юзал DevXUnity ?
Чё, реально можно распаковать билд обратно в проект?
30$ лично мне жаль на проверку.
инби4 разраб DevXUnity
911 441312
>>41311
Ты долбоёб? Вот только честно.
912 441313
>>41312
Ты нормально объясни, чего ругаешься сразу.
Все ж мы люди.
913 441343
Поясните ньюфагу:
гугл на вопрос об иоке мне говорит "юзай зенджект, сука", но в нем конфигурация только через код, а я хочу через хмл/джсон/йамл. Насколько сложно подключить левый нетовский контейнер, есть ли какие-нибудь подводные?
914 441346
Как заново перезапустить анимационный клип?
915 441350
Пилю скролл-шутер в ГП по вечерам. Сделал геймплей. Мыслить стараюсь реально, поэтому хочу ПОЧУВСТВОВАТЬ СЕБЯ ГЕЙДЕВЕЛОПЕРОМ и получить прибыль с рекламы хотя бы на полторашку большой кружки. Значит нужно удержать игрока для показов. Пока пришел к магазину с кораблями. Разница будет в хп, скорости, вооружении. И вот тут пошли вопросы. Как это реализовать? Сделать для каждого корабля свой скрипт? Так отличие в паре строк. Юзать один скрипт и менять параметры через свичкейз в зависимости от корабля? Куда копать. Алсо, есть тут успешные девелоперы в ГП, которые могут дать советы кроме очевидного: НЕ ЛЕЗЬ ДЕБИЛ СУКА по продвижению проекта?
916 441352
>>41343

> но в нем конфигурация только через код


Язык учи.
917 441355
>>41352
Читать учись.
918 441356
Пацаны, можно ли в юнити в сцене использовать видеофрагменты? Mov?
919 441357
>>41356
Все, поостерегусь в следующий раз задавать вопросы, предварительно не залезая в гугл. Извините.
920 441359
>>41355
Читать я научился когда ты ещё у папы в яйцах чесался.
Но если ты упираешься в код, то учи код.
921 441367
>>41359
Значит хуево научился, учись еще.
Подсказка: конфиги (и все константы вообще) выносят в отдельные файлы без лишнего синтаксиса не потому что упираются в код, а потому что это удобнее.
922 441368
>>41367
Странно, с идиотским вопросом врываешься ты, а чёто там хуёво читаю я, ага.
923 441371
>>41311

Вот где я наебался - эта киллер фича стоит у разраба 200$.

> - Generate Unity3D project (from win, mac, APK) (scenes, sripts, resources) - Currently not full implementation (Is being finalized)!


Бесплатный вьювер показывает ресурсы игры офигенно, я будто смотрю проект в юнити (загружаю во вьювер exe игры, остальное прога подтягивает сама).
Но 200 баксов лишних у меня конечно нет.
Как и кейгена.
924 441427
>>41371
Блядь, вот что надо было делать, а я-то всё думал, как лучше всего на юнити-лошках бабла срубить. Как всегда все самые прибыльные идеи реализуют до нас.
925 441428
>>41427
Почему ты такой токсичный? Этот тред создан для высмеивания? И этот же вопрос я задавал постов 70 назад и никто не ответил, если ты такой знаток то поделись.
мимопроходил
926 441440
>>41427
Хуй знает что ты хотел этим сказать.
Программки для работы с *assets (просмотр, распаковка, перепаковка) - их есть 2-3 штуки как минимум, неплохих и бесплатных.
DevXUnity стоит на много уровней выше, это как хуй с пальцем сравнить. По твоему легко реализовать такое:

> Generate Unity3D project (from win, mac, APK)


100% оно коряво это делает и всё потом нужно доделывать руками, но хоть что-то.
Сделай аналог дешевле, разбогатеешь.
С другой стороны хорошо, что у школьников нет возможности получить проект из чужой игры.
927 441449
Как переместить объект, у которого включена анимация, при этом не выключая её?
928 441452
>>41449
Не то, чтобы я в принципе использовал анимацию, но почему она должна выключаться, если ты её просто перемещаешь каким-нибудь Rigidbody.velocity
929 441454
>>41452
Не равботает
930 441455
>>41454
У этого парня всё работает https://www.youtube.com/watch?v=CAPVBTKk3Ww
931 441456
>>41455
Может таймкод дашь?
932 441457
>>41455
Сделал всё, как он, но не работает, стоит мне выключить анимацию, сразу начинает двигаться
933 441459
>>41457
ёбай онимку на чайлд, а не на сам тот геймобжект что двигаешь
934 441469
>>41371
Чот хуево у них с маркетингом - залили бы чтоли видосов с левого аккаунта с реальными играми, чтобы показать текущие возможности, а то пруфофконцепт две сотни не стоит.
935 441475
Не знаю, глупый это вопрос или нет. Но допустим у меня есть объект, состоящий из нескольких объектов с разными компонентами и скриптами. Могу я, не копируя тот объект, отобразить его копию на сцене?
936 441476
>>41475

> допустим у меня есть объект, состоящий из нескольких объектов


Не может у тебя объект состоять из объектов. Он может быть родителем других объектов, но это всё равно самостоятельный объект.
937 441477
>>41476
Ок, но как мне сделать копию его изображения?
938 441479
>>41477
Добавить вторую камеру и рендерить с неё на текстуру, а текстуру прилепить куда тебе надо.
939 441481
>>41479
Звучит, как костыль. Я слышал, что камеры не лучший способ оптимизировать игру
940 441482
>>41481

>Я слышал


Ну если ты слышал, то тогда конечно. Послушай еще, может услышишь другое решение для твоего ебанутого случая.
941 441485
>>41475
блять, нормально ситуацию объясняй. как вы заебали, сначала костыли выдумываете, а потом спрашиваете А КАКОЙ КОСТЫЛЬ ЗДЕЛАТЬ ЧТОБЫ МОЙ ДРУГОЙ КОСТЫЛЬ ЗАРАБОТАЛ
942 441487
>>41485
Какие костыли? У меня 2д-шный дебил бегает, у него руки, ноги, голова и у всего этого коллайдеры, ригидбоди и скрипты. Мне просто нужно скопировать картинку без всего этого.
943 441493
>>41487
>>41487
Клацни по нему райткликом, сделай дубликат, убери все ненужные компоненты, перетащи в папку с префабами. Потом в коде где то где удобно сделай переменную в класе типа GameObject захуярь туда свой префаб. Потом через https://docs.unity3d.com/ScriptReference/Object.Instantiate.html добавляешь его на сцену.
944 441494
>>41487
я не про то. какова цель коприрования? обьясняй ситуацию в подробностях с предысториями
945 441495
>>41469

> Чот хуево у них с маркетингом


Разработчик русский же.
946 441496
>>41494
Вообще мне нужно, чтобы худ игрока (UI) уехал в одну сторону и выехал из другой. Хочу запариться с пространством свободным на экране. В общем тут показывать надо.
947 441498
>>41496
Просто хочу создать 1 объект, копирующий второй, вместо двух объектов
троллейбус из хлеба-2015-05-02-21-07-00-028-5149.jpg33 Кб, 499x348
948 441499
>>41498
Понятно, ещё один.
949 441500
>>41499
Что плохого в оптимизации?
950 441501
>>41500
Костыли — это не оптимизация.
Ты игру сначала сделай. Слышал про вайтбоксинг, не? Прототипирование там, все дела.
Ты не тем занимаешься.
951 441502
>>41500
1 обьект который копирует второй это два обьекта.
952 441503
>>41502
но он не будет выполнять скрипты
953 441504
>>41503
Кто "он", блять? Скрипты выполняет не объект.
954 441505
>>41504
но скриптов то всё равно больше будет выполняться. они же привязаны к объекту
955 441507
>>41505
Парень, подучи азы сначала, а потом приходи. Ты хуйню несёшь.
956 441508
>>41504
хуле тебе не ясно. есть объект, на нём скрипты. ставим объект на сцену, скрипты выполняются. ставим больше объектов - выполняется больше скриптов
957 441509
958 441510
>>41508
Перестань, я ж соседей разбужу.
959 441511
>>41510
ещё скажи, что не так
960 441512
>>41511
Три раза уже сказал. Не умеешь читать — кодить не берись.
961 441513
>>41512
ты мне скажи, что тебе не нравится, умник
962 441517
>>41513
Короче, пидор. Это можно сделать шейдером, если твой пидор это цельный скиннед меш. Но ты слишком тупой для этого, так что просто иди нахуй.
963 441518
>>41517

> цельный скиннед меш


Он таких слов не знает, пощади.
964 441520
>>41517
Да, только у меня ui и ничего цельного
image.png85 Кб, 538x837
965 441521
>>41517
Это ты сам написал?>>41517
Найти то не проблема, но похоже это не будет работать
966 441523
>>41521

>фикс


>>41521
Это ты сам написал?>>41518
967 441524
>>41523

>блять, фикс


>>41517
Это ты сам написал?>>41518
968 441525
>>41521
>>41523
>>41524
Иди поспи, у тебя уже руки трясутся.
969 441528
>>41525
Они у меня всегда трясутся.
970 441530
>>41517
Ладно, спс за идею, анон, я спать.
971 441548
>>27717 (OP)
Award Winning Idea
Аноны, никто и вас до такого бы не додумался
https://www.youtube.com/watch?v=_4ISYP3P9IU
973 441585
>>41548
Более того - старо как мир. В первый раз подобную штуковину фигачили в интернет-редацкии Times, в виде съемок панорамных видосиков. Около года назад. В итоге чуть-ли не треть пресс-релизов были по поводу этого самого empathy generation. Остальное это философствования по поводу места человека в VR-пространстве и виртуальных изнасилованиях, травле в виртуал-спейсе и других sotial-vr платформах, anti-harasming bubbles.

P.S Короче - в "Кремниевой Долине" полный пиздец и разработчиков VR/AR меньше, чем всяких журналистиков, пихологов, евангелистов, теоретиков, исследователей экспириенса и прочей шелупони

P.S.S я бы с удовольствием показал ей свой код, покопался бы в ее, и научил всяким приемчикам.
974 441604
>>41548

>утю-тю какой милый беззащитный щеночек


>почему он вырос в волкодава


>почему он меня не слушается


>почему он откусил мне руку


>почему я под шконкой

Без имени-1.png47 Кб, 660x675
975 441619
Ребята, которые в шейдорах понимают, тут же были такие, помогите.
Захотел я для стора модели пилить, а чтобы была ФИШЕЧКА решил сделать простой шейдор, который как стандартный, только по альфе диффуза можно цвет менять.
Получился пикрелейтед. Но я, вот, боюсь. А вдруг он не у всех работать будет? Или, может, сломается после какого-нибудь обновления унити?
Metallica-JumpintheFirecover.jpg40 Кб, 300x300
976 441620
Посоны, вопрос: очень заебывает ждать пока юнити соизвилит скомпилировать скрипт для редактора. Еще нихуя не понятн скомпилировал он его заново или нет, так что приходится делать тестовый вывод в духе "compile_version = 33" и пердолить при каждом изменении. В юнити нету кнопки скомпилировать скрипты редактора. А то заебало сидеть ждать каждое изменение.
977 441624
>>41620

> Еще нихуя не понятн скомпилировал он его заново или нет


Чего блять? Если ты скрипт сохранил и перевалился в редактор, то он его начинает компилить, что даже визуально видно по вращающемуся кружочку.
978 441625
>>41624
нихуя, это для обычных скриптов так
а когда делаешь какие-то изменения для скриптов редактора (Editor) то они хуй когда скомпилируются и нихуя это кружечком не показывается

что и бесит дико
979 441657
>>41625
пкм+refresh
981 441716
>>41619
Ну помогите. Меня смущают эти стандартные штуки.
546.PNG3 Кб, 335x154
982 441717
В VS блоки кода под "ненужные" платформы #if ... #endif становятся серыми, обычным текстом, как эту хуйню отключить? Мне надо чтоб подсвечивалось все как обычно.
983 441727
у меня вопрос. А могу ли я проверить работает ли сейчас корутин?
984 441728
>>41727
ну пусть от тебе в концоль пишет, пока работает.
985 441729
>>41728
Не я хочу запускать его только тогда когда он уже закончил работать
986 441730
>>41727
bool rabotaet;

...

IEnumerator blabla
{

rabotaet = true;

... //korutina

rabotaet = false;
}
987 441731
>>41730
Да, у меня все получилось. Спасибо
988 441776
>>38944
Если у кого была такая проблема, решение тут
https://docs.unity3d.com/ScriptReference/CompositeCollider2D.html
989 441778
Через скрипт геймманагера создаю геймобджекты как хранитель, внутри геймобджекты как сущности и раскидываю им компонентом скрипт класса. Затем хочу создать в другом скрипте массив указателей на эти компоненты, чтобы легко к ним обращаться, как это сделать?
Неужели надо каждый раз получать эти обджекты из сцены чтобы при необходимости изменить?

И ещё как сделать переменную в классе, в которую я смогу положить любой существующий класс, что-то уровня void?
990 441792
>>41778
В юнити есть базовый класс object для любых unity объектов.
991 441811
>>41716
Да не ссы ты, все нормально. Не нужно бояться шейдеров.
sage 992 441891
>>41778
Шизик ебаный, ты сам то понял что написал?
993 441959
>>41778

>Затем хочу создать в другом скрипте массив указателей на эти компоненты, чтобы легко к ним обращаться, как это сделать?


без задней мысли, создал да передал.

>как сделать переменную в классе, в которую я смогу положить любой существующий класс


зачем?
994 441960
В чем преимущества и недостатки EventSystem по сравнению с простым рейкастом, в плане взаимодействия с миром? На ум приходит то, что можно не следить за слоями. Есть какие-то подводные?
photofacefuncom1504861368.jpg2 Кб, 189x57
995 441965
Как запустить анимационный клип(пикча) сначала?
996 441970
>>41965

anim.Play("CubeAnimation", <layer#>, 0f);
997 441972
>>41970
Как понять, какой слой использовать?
998 441973
>>41970
А, всё, я определился, спасибо тебе огромное
999 441977
>>41350

> Как это реализовать? Сделать для каждого корабля свой скрипт? Так отличие в паре строк.


ScriptableObject жи.
1000 441978
>>41965
Я конечно не настаиваю, но может тебе изучить аниматор? Переходы там, параметры, эвенты. StateMachineBehavior тоже пригодится. Клип как правило должен запускаться из state machine, а не из рандомного места в коде. Ты рискуешь получить большие трудности с дебагом(если сподобишься соорудить что-то сложнее хеллоуворлда).
1001 441979
Почему некоторые значения в трансформе выделены жирным? В некоторых объектах норм, а в некоторых вот так.
О чём это он мне сигнализирует?
1002 441983
>>41979
Жирным выделены значения, отличающиеся от дефолтных в префабе.
1003 441984
>>41983
А, вон оно как.
Спасибо, братишка.
11681.jpg177 Кб, 620x370
1005 442017
Кто-нибудь решал проблему с толпой NavMeshAgent'ов, мешающих друг другу пройти в точку на карте? Они беспорядочно дрыгаются, не хотят стоять спокойно.

Что я пока придумал - сканировать переднюю полусферу лучами/триггером, проверяя направление пути. Если путь направлен в сторону forward, и триггер сработал - останавливаемся.

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

Плюс включаю NavMeshObstacle и отключаю Navmeshagent по достижении цели. А нет ли случаем "красивых" решений?
1006 442020
Совсем новичок в юнити.

Запилил хп персонажу по слайдбару. И такой скрипт.

public class Fire : MonoBehaviour
private float health = 100;
GameObject player;

В апдейте

if (player != null)
{ float distance = Vector3.Distance(transform.position, player.transform.position);
if (distance < 1.5f)
{ health -= (50f * Time.deltaTime);
slider.value = health;
if (health <= 0)
{ Destroy(player);
} ....

Собственно, этот скрипт висит на каждом препятствии и противнике милишнике. Но дело в том, что для каждого препятствия/врага хп персонажа существует параллельно. Т.е. каждый проверяет состояние хп, которое было при последнем контакте именно с объектом, на который висит скрипт, а не с глобального параметра хп.
Как переписать?
1007 442023
>>42020
Ебать ты задом наперед все сделал. Скрипт игрока сам может следить за своим здоровьем.
Если игрок один, сделай синглтон. А так навесь него что-то типа:
void OnHit(float damage)
{
health -= damage
if (health < 0)
{
OnDeath();
}
}

В противниках у тебя теперь просто будет:
if (distance == ...)
{
player.OnHit(50 * Time.deltaTime);
}

Слайдер хп тоже прописывай в игроке, очевидно же. И максимальное значение не проеби.
А вообще коллайдеры поковыряй.
1008 442024
>>42023
Спасибо, сейчас попробую.
Я сам подозревал, что что-то совсем нелогично, но использовал скрипт из урока, сам пока что еще совсем слабо. Сделал подобные врагам. Чтобы их могли тоже препятствия коцать, вроде все работает.
Но сейчас поковыряю. Опыт в юньке неделя.
1009 442025
>>42024
У меня повреждения через интерфейс
public interface IDamageable {

float CurrentHealth { get; }
void TakeDamage (float amount);
}

потом любая дамажащая хуета проверяет(при попадании лучом или коллайдером в колалйдер)
var hp =otherCollider.GetComponent<IDamageable>();
if(hp != null) {hp.TakeDamage(число);}

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

А как получать дамаг(или не получать), какие эффекты/звуки проигрывать, дамажимый объект решает сам.

мимоанон
1010 442027
>>42024

> Опыт в юньке неделя


Не, тогда не ковыряй ну или ковыряй, я тебя не остановлю. Полистай что-нибудь по шарпу из /pr/ (C# Player's Guide попробуй — еще захочешь), заметно уменьшишь количество новых велосипедов в коде.
>>42025
Двачую, сам так сделал (правда, под предлогом того, что на всякие коробки и табуретки бессмысленно вешать весь класс NPC).
taagdhsh.jpg41 Кб, 684x700
1011 442029
Чому у вас юнити-тред новый не делают?
Полгода назад накодил себе основу для пошаговой стратегии, я тут писал немного и велосипедил. Лето прошло, можно снова садиться за код, и, в общем, решил начать с девконсоли - чтобы в самой игре можно было в нужной точке призывать нужных юнитов, площадки и т.п. Глянул туториалы по этому делу, помедитировал, и понял, что хочу сделать свой велосипед. А для своего велосипеда нужно делать свой велосипедный input field. Ради бога не спрашивайте зачем. Оно и без слов понятно, что из готового можно стяпляпить что-то рабочее и эффективное, просто у меня наполеоновские планы К тому же если я хочу замену определённой последовательности символов на произвольную картинку, то всё равно придётся что-то похожее с нуля кодить. Ричтекст же не работает всё ещё?
Собственно, вопрос: как лучше всего ловить нажатия клавиш? Я знаю про кейкоды и геткейдаун/ап, но я спрашиваю про принцип за ними. Как эта система с переключением языков, шифтами и т.п. вообще работает? Допустим, я напишу класс, в который будет ловиться нажатие клавиши через геткеи и переводить её в нужный формат. Это же совсем пиздец?
1012 442032
1013 442033
>>42032
А поподробнее можно? Нельзя мне куда-нибудь в коде прицепиться, чтобы уже преобразованный текст использовать?
daun.png128 Кб, 400x392
1014 442038
Хотел быстренько отредактировать модель в блендере, сохраняю в fbx, и вот такая хуета с анимациями. Раньше все работало без проблем. Пытался во все форматы сохранять - бесполезно. Блять, и смех и грех. Как пофиксить? Можно конечно взять другую модельку для прототипа, но что за хуйня-то?
1015 442039
>>42038
В голос в этого рептилоида, спасибо, анон.
Без обид.
daun.png21 Кб, 248x364
1016 442040
>>42038
Нашел сам как пофиксить, вдруг кому интересно.

>>42039
Оно еще и анимированное.
1.mp41,8 Мб, mp4,
640x360, 0:30
1017 442041

> Made with Unity

1018 442066
>>42041
дай мне!
1019 442078
Делать систему HP/Damage через EventManager - нормальная практика? Простой платформер с быстрым темпом игры
scrp.png6 Кб, 336x106
1020 442080
Анон, я все сломал
Сделал несколько панелей, написал скрипт. Закинул его в кнопку, там это. Я даже не сразу понял, в чем дело. Пошел проверил старые кнопки, а там такая хуйня. Теперь рядом с названием шестеренка, а не иконка с# и нет никаких функций. Что делать, как чинить?
1021 442106
Подскажите, как сделать поиск путя для вражины? 2D, вид сверху.
1022 442107
>>42106
рейкаст и путь идет к последней точке, где тебя видел/зарейкастил
1023 442116
Есть ли альтернативные физические движки, в которых все действующие на объект силы всегда доступны наружу, или они все как и дефолтный на черной магии работают и дают читать только конечный вектор?
1024 442119
>>42041
Чувак, как стать богом?
1026 442657
Аноны, хелп! Писал на юнити игру с февраля 2017, значит все собрал, все работает и решил я накинуть плагинов с рекламой и достижениями. Выбрал плагин от аподила и плагин от гугла с достижениями. И они вместе никак не хотят работать. Вылетает ошибка unable to convert java dex format. Проблема в том что в папке plugins слишком много плагинов и андроид не может собрать апк. Подскажите, может кто-то с таким сталкивался. Пытался собрать через градл, но там полетело еще больше ошибок. Хочется чтоб и ачивки были, и копеечка с релкамы.
1027 442667
1028 453121
так что это. как тут общаться можно? вопросы задают тут или только за стримерш дрочат?
вопрос: почему в unity отрабатывает ДЕАКТИВИРОВАННЫЙ В ИНСПЕКТОРЕ, но висящий на объекте скрипт?
1029 462223
>>53121
Платиновые вопросы? Галочка вы инспекторе выключает только выполнение Srart, Update и прочего.
Тред утонул или удален.
Это копия, сохраненная 25 июля 2018 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски