Везде пишут, что GetComponent в Update плохо. Как тогда избежать этого, если нужно взять динамическую переменную из другого скрипта?
Если юзаю GetComponent в Start, а потом подцепляю в Update, то её значение не меняется, хотя в родительском скрипте всё работает нормально, как и при использовании GetComponent в Update.
>>263198770 (OP) Очень затратная по мощностям компьютера, плюс update это проверка каждый кадр, физику или другие ёмкие по мощностям задачи лучше писать в FixedUpdate. Мимо индиразраб
>>263200139 Да, да ,да, НО как это сделать правильно? Допустим, есть скрипт генератор залуп + скрипт жопа, при определённом количестве залуп жопа взрывается как это сделать без GetComponent(количество залуп) в Update жопы?
>>263198770 (OP) Пиздец, пориджи уже настолько одебилели, что в бэ вместо стаковерфлоу пишут.
Во-первых ваще никогда не юзай напрямую компоненты из других компонентов (даже если это есть в туториалах), юзай связующие сервисы. Во-вторых либо ты сохранил в старте не ссылку на компонент, а его значение, либо ты проебался по лайфсайклу, и второго компонента еще не существовало на момент старта первого.
>>263201189 Соглы, поскорее бы все боги-программисты с СНГ свалили в США и забили на парашу нахуй. А те, кто остался пусть получают 500к в наносек. Аминь!
>>263201139 А ну брысь отсюдова, если бы у тебя была ещё работа а не сидение на мамкиной шее, понял бы как тяжко думать после 8 часов ебания мозгов на РАБоте
>>263198770 (OP) Каждые n секунд генерируешь объект и нужно взять в нем скрипт? Бери. Не важно где. Имеют в виду, что GetComponent медленный и каждый кадр (Update) что-то брать нецелесообразно, если можно закешировать единожды на старте. Еще, возможно, тебе помогут пулы. Не бойся, ими легко пользоваться на самом деле.
var ballPool = new ObjectPool(Создать, Взять, Вернуть);
Когда нужен новый мяч, вызываешь ballPool.Get(). Нужно уничтожить мяч - ballPool.Release(ball). Это подразумевает, что у тебя будет какой-то общий мееджер этих мячей, который спаунит, хранит и возвращает эти мячи. То есть использование пула еще и вынуждает писать нормальную архитектуру системы.
Ты небось записываешь переменную куда-то, вместо того чтобы читать каждый раз из скрипта. Потому что невозможное такое чтобы переменная не апдейтилась. Ты шота не то сдилол. Но без кода трудно сказать или примерного наброска кода.
Блядь, я когда-то сделаю свою игру? Изучаю всякую хуйню, а что делать тупо не знаю. Какой-то импотент безталанный. Думаю какую-то хуйню для мобилок сделать, но клонировать готовые идеи не очень хочется, а свое придумать такое чтобы был вау эффект не могу. Но я пока что доучусь, а там подумаю уже хорошенько. Хотя бы создавать графику сам смогу.
Учил Юнити с 2018 (понятно, что я мало времени ему уделял, т. к. есть ещё учёба, хобби и т. д.), хотя помимо него другие языки задрачивал, но до сих пор не могу вкатиться именно в Юнити. На собесе начинают заёбывать вопросами по его кишочкам и коммерческому опыту.
Почему ёбаные дауны в Юнити могут вкатываться, а норм поцы со знанием других языков - нет? Почему на работу на Юнити настолько тяжелее попасть? При этом, платят гораздо меньше, чем другим погромиздам, а работа заёбистее.
Запорол уже 15 собесов примерно (правда, в пару мест позвали всё-таки, но мы с ними на деньгах не сошлись).
>>263209048 >Сколько предлагали? Проект не денежный, но интересный? Бля, да предлагали и 80, и 100, и 200к (некоторые даже писали вилку от 150 до 600к, лол), но сразу же начинали ныть, мол БАЗУ не знаю. Хотя они сами мне написали и предложили мгновенно собес. Я своими делами был занят, помогал тётке диплом писать, к собесам не готовился, а они начали меня спрашивать всякую хуйню по методам рендеринга, хуендеринга и т. д. В остальном спрашивали реально базу, но я на все вопросы отвечал (правда, мне по итогам некоторых собесов говорили, что нет, но это наглый пиздёж). Где-то приходил к ответу вместе с интервьюером, спрашивая, мол, если он это имеет в виду, то вот так, а если это, то вот эдак.
Один чел сказал, что на миддла меня не готов взять, т. к. не хватает знаний, но на джуна возьмёт легко (это где-то 50-60к, я полагаю), только вакансия пока не появилась, но как появится - он мне сразу же напишет.
>>263209134 >Потому что у тебя психология раба. Знаешь юнити - пили свои игры и знать всякую хуйню не нужно. Самыми мразотными, кстати, оказались еблорусские зумеры. Более неприятных интервьюеров я не видел. "Чеееел, ты..." и вот это всё. Тьфу, блядь. Во-первых, очень долго отвечали мне, во-вторых, вопрошающие сами нихуя своего же стэка не знают, а вопросики черпали в гугле и, в-третьих, хотели реально раба себе найти. Ну и общались неуважительно как-то. Я даже отморозился и начал гуглить ответы на некоторые вопросы, лол, от чего у них бомбануло и они перешли на такой оскорбительный тон.
Сам бы я мог клепать проекты на Юнити, но мне щас конкретная работа нужна. Мне деньги нужны. А если я буду сидеть хуйнёй страдать месяцами, то мне вафли. У меня денег на жизнь уже нет банально.
>>263209742 >Пытайся ещё. Ну вот щас ебисофт дал хуй пойми как составленное тз - повторить одну их мобильную игру. Они чё там, ебанутые? Я заболел, во-первых, слёг нахуй, во-вторых, уже все сроки закончились. Есть ли смысл делать и отправлять ТЗ после погоревшего дедлайна вообще?
>>263210115 >Сразу иди нахуй, я бы тебя в этот же момент обоссал на собеседовании. Чудище буйное, чего ты доебалось? Очевидно же, что в Юнити скрипты на C# написаны, и MonoBehaviour, от которого наследуются все дочерние классы - это местная имплементация .NET.
>>263210506 Как я и угадал. Апдейтится переменная только та что в скрипте Если ты создаешь новую переменную и записываешь туда ту что апдейтится, то она не будет синхронизироваться с источником, а просто создаст отдельную переменную. "Синхронизируются с источником" только переменные классы, а не переменные простых типов.
>>263211503 Кароче, чтобы все решить надо создать отдельную переменную для класса того скрипта что тебе нужен. И уже с этой переменной класса доставать переменную простого типа. В старте создаешь переменную класса/скрипта: script = GameObject.Find("shit").GetComponent<ShitScript>();
А в апдейт достаешь переменную из скрипта: script.variable
1. если хочешь обрабатывать какие-то динамические обновления из другого класса, то можно использовать ивенты. как раз не придется каждый кадр проверять сделала ли твоя "ass" какой-нибудь Fart()
[SerializedField] private Ass _ass
private void Start() { _ass.OnFart += Sniff; //Можно сделать либо через Action<int>, либо через event и delegate, гугли }
2. a = GameObject.Find("anon") не самый лучший вариант кеширования переменной, имя "anon" поменяется на "zalupa" и все сломается. Подтягивай переменные либо через editor, либо через ивенты, если объекты создаются динамически. либо еще как-то, вариантов дохуя, зависит от конкретной реализации
>>263209553 иди на джуна, через полгода либо разберешься в КиШоЧкАх и попросишь зарплату мидла, либо просто набьешь коммерческий опыт и без проблем попадешь на любую другую галеру
>>263214407 Чем абстрактный класс отличается от интерфейса? Бочку делаешь? Любимый альбом Уильяма Басински? Кто заражён в конце "Нечто" Джона Карпентера?
>>263198770 (OP) >Везде пишут, что GetComponent в Update плохо. Как тогда избежать этого, если нужно взять динамическую переменную из другого скрипта? Делать GetComponent и хранить ссылку на нее в переменной?