Вторник, 16 Сентября 2025, 09:51

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
alexsilentДата: Пятница, 02 Ноября 2018, 14:45 | Сообщение # 201 | Тема: Лёгкая Архитектура кода для не программиста
почти ветеран
Сейчас нет на сайте
Цитата pixeye ()
Простейшим решением будет настроить Edit->Project Settings->Script Execution Order

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


Сообщение отредактировал alexsilent - Пятница, 02 Ноября 2018, 14:46
alexsilentДата: Пятница, 02 Ноября 2018, 11:49 | Сообщение # 202 | Тема: Лёгкая Архитектура кода для не программиста
почти ветеран
Сейчас нет на сайте


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

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

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

И чтобы она выглядела просто даже для художника.

PS Пока что у меня такая хаостектура:


Сообщение отредактировал alexsilent - Пятница, 02 Ноября 2018, 13:29
alexsilentДата: Четверг, 01 Ноября 2018, 00:06 | Сообщение # 203 | Тема: Почему Visual Studio настолько много весит
почти ветеран
Сейчас нет на сайте
Цитата seaman ()
Так переключи. Английский должен автоматом ставится!

почему-то после установки был всего один язык, русский,
ну я с помощью установщика докачал английский позже
alexsilentДата: Среда, 31 Октября 2018, 10:45 | Сообщение # 204 | Тема: Почему Visual Studio настолько много весит
почти ветеран
Сейчас нет на сайте
Андрюх, спасибо гляну)

Добавлено (31 Октября 2018, 10:47)
---------------------------------------------
А он реально для юнити пойдёт?
И походу он платный, пишут про Free Trial 30 days


Сообщение отредактировал alexsilent - Среда, 31 Октября 2018, 10:48
alexsilentДата: Среда, 31 Октября 2018, 06:35 | Сообщение # 205 | Тема: Почему Visual Studio настолько много весит
почти ветеран
Сейчас нет на сайте
Разобрался как сделать для одной версии notepad++, а для другой версии Visual Studio,
поставил в настройках юнити External Script Editor: "open by file extension"

Только непонятно почему по умолчанию мне русский язык на Visual Studio поставили,
вчера весь день пытался смутно постичь почему я не понимаю, что написано в интерфейсе,
а просто не привык к русскому языку в редакторах, все эти необычные слова: "правка", "отладка" и прочее,
сегодня поставлю английский язык, а то по 3-5 минут торможу в редакторе из-за непривычности слов.

Добавлено (31 Октября 2018, 06:38)
---------------------------------------------
Ещё понравилась быстрая вставка кода: snippets,
но там нужно знать XML, мне очень тяжело даётся чтение и написание такого кода,
жаль нельзя конвертировать из обычного текста в такую версию на лету в Visual Studio:

Код

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
  <Header>
   <Title>class</Title>
   <Shortcut>class</Shortcut>
   <Description>Фрагмент кода для класса</Description>
   <Author>Microsoft Corporation</Author>
   <SnippetTypes>
    <SnippetType>Expansion</SnippetType>
    <SnippetType>SurroundsWith</SnippetType>
   </SnippetTypes>
  </Header>
  <Snippet>
   <Declarations>
    <Literal>
     <ID>name</ID>
     <ToolTip>Имя класса</ToolTip>
     <Default>MyClass</Default>
    </Literal>
   </Declarations>
   <Code Language="csharp"><![CDATA[class $name$
    {
  $selected$$end$
    }]]>
   </Code>
  </Snippet>
    </CodeSnippet>
</CodeSnippets>

Добавлено (31 Октября 2018, 09:47)
---------------------------------------------
Нашёл плагин Snippet Designer, ещё не пробовал, но по описанию выглядит неплохо

Сообщение отредактировал alexsilent - Среда, 31 Октября 2018, 06:45
alexsilentДата: Вторник, 30 Октября 2018, 15:50 | Сообщение # 206 | Тема: Почему Visual Studio настолько много весит
почти ветеран
Сейчас нет на сайте
В конечном итоге придётся пока пользоваться Notepad++, потому-что в настройках External Script Editor разных версий юнити нельзя поставить разные редакторы, а Visual Studio не работает с яваскриптом. А мои старые проекты все поголовно написаны на юнити скрипте, печалька, либо придётся каждый раз переключать руками при заходе в разные версии юнити, что немного геморно.

Сообщение отредактировал alexsilent - Вторник, 30 Октября 2018, 15:51
alexsilentДата: Вторник, 30 Октября 2018, 13:27 | Сообщение # 207 | Тема: Почему Visual Studio настолько много весит
почти ветеран
Сейчас нет на сайте
Перехожу на C# с юнити скрипта, и первый раз в жизни качаю Visual Studio из сборки юнити при установке 2018.2,
раньше всегда пользовался Notepad ++ для яваскрипта. И Notepad с поддержкой тонны языков весит копейки,
а Visual Studio весит так, как будто у него там куча графики и звуковых файлов,
почему оно такое большое?
И нет ли где ссылки на минимальный вес, где только самое важно в Visual Studio, без лишнего?
c моим диском в 500 гб, лишние гигабайты не бывают лишними.

PS и можно ли в Visual Studio, как в Notepad ++ искать по всем скриптам проекта какое-то слово?
Этой функцией я очень часто пользуюсь, полезно узнать сколько раз я использовал функцию или переменную
вообще в проекте. А то может проще остаться на Notepad++


Сообщение отредактировал alexsilent - Вторник, 30 Октября 2018, 13:48
alexsilentДата: Понедельник, 29 Октября 2018, 12:55 | Сообщение # 208 | Тема: Можно ли поменять границу спрайта не меняя Pivot позицию
почти ветеран
Сейчас нет на сайте
Можно ли поменять границу спрайта не меняя Pivot позицию в Sprite Editor? (может быть есть такой режим?)

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

Добавлено (29 Октября 2018, 13:01)
---------------------------------------------
Вот пример, сейчас мне нужно чуть бордюр шеи увеличить, потому-что я увеличил рисунок шеи, но если я начну сдвигать
барьер спрайта, то ось опять окажется смещена, и придётся очень долго подгонять это дело,



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


Сообщение отредактировал alexsilent - Понедельник, 29 Октября 2018, 13:02
alexsilentДата: Пятница, 26 Октября 2018, 16:43 | Сообщение # 209 | Тема: Проводим конкурс среди сообщества
почти ветеран
Сейчас нет на сайте
ну хэллоуин скоро будет, но похоже конкурс как раз после хэллоуина и стартанёт, но однако можно всё равно тему ужастиков предложить в духе праздника всех святых

Сообщение отредактировал alexsilent - Пятница, 26 Октября 2018, 16:43
alexsilentДата: Среда, 24 Октября 2018, 11:35 | Сообщение # 210 | Тема: Проводим конкурс среди сообщества
почти ветеран
Сейчас нет на сайте
Цитата pixeye ()
Чем необычный?) слишком широкая тема))


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


Сообщение отредактировал alexsilent - Среда, 24 Октября 2018, 11:36
alexsilentДата: Вторник, 23 Октября 2018, 13:03 | Сообщение # 211 | Тема: Не будет ли проблем с моим кодом?
почти ветеран
Сейчас нет на сайте
Цитата pixeye ()
Для того что ты хочешь используется Scriptable Object - читай о них в документации юнити.

Попробовал я этот Scriptable Object, как на примере в видео юнити, каждая строчка кода идентичная, и данные тупо не сохраняются, через некоторое время объект становится пустым, нашёл куча жалоб, что у народа тоже не сохраняется инфа и нужно делать что-то типа SetDirty или как-то так, и я так и не смог это повторить, как в примере юнити.
Короче это намного усложняет проект, чем если я просто изменю префаб без всяких дополнительных скриптов он сохранится сразу же

Добавлено (23 Октября 2018, 13:05)
---------------------------------------------
Цитата SnakeR ()
Да вы батенька изобрели синглтон, надо же)

С синглтоном я пока тоже не разобрался, как-то там сложно всё выглядит, наверное с непривычки , я ещё только перехожу с яваскрипта на C#, хотя может там такое тоже было, но я не встречал

Добавлено (23 Октября 2018, 13:06)
---------------------------------------------
Цитата pixeye ()
на поясницу?

:) ну главная причина, что в статичных функциях нельзя локальные переменные ставить

просто я подумал, если у меня будет 40 статических функций в скрипте,
то может проще сам скрипт сделать статическим, а функции обычные
ну так и получилось сделать такой велосипед)

PS ну то есть можно смело пользоваться таким велосипедом?


Сообщение отредактировал alexsilent - Вторник, 23 Октября 2018, 13:15
alexsilentДата: Вторник, 23 Октября 2018, 12:38 | Сообщение # 212 | Тема: Проводим конкурс среди сообщества
почти ветеран
Сейчас нет на сайте
Круто , я за) Движухи много не бывает)
alexsilentДата: Понедельник, 22 Октября 2018, 10:30 | Сообщение # 213 | Тема: Не будет ли проблем с моим кодом?
почти ветеран
Сейчас нет на сайте
Последнее время отказываюсь от Static функций, хотя бы потому-что в них нельзя держать локальные переменные.
А ещё кажется, что чем больше статичных функций, тем больше нагрузка.
Вместо этого я делаю префаб, куда запихиваю весь скрипт со Static переменной it.

К примеру:

Код

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

public class MyScript : MonoBehaviour {

    static public MyScript it;

    // Use this for initialization
    public void Init() {
          it = this;
    }

    public void GetPrint() {
         print("It's Okay!");
    }
}


И потом, из одного скрипта один раз за всю игру инициирую этот скрипт из префаба с помощью функции Init
(префаб не создаю в уровне, он просто указан, будет ли тут проблема? например для каких-то других платформ не ПК),



И потом когда нужны функции этого скрипта или данные я обращаюсь к этому скрипту вот так:

MyScript.it.GetPrint();



Сообщение отредактировал alexsilent - Понедельник, 22 Октября 2018, 11:00
alexsilentДата: Четверг, 11 Октября 2018, 18:42 | Сообщение # 214 | Тема: кэширование Transform в 2018-м
почти ветеран
Сейчас нет на сайте
Раньше, когда ещё можно было обращаться напрямую к rigidbody вот так
Код
rigidbody.velocity = new Vector(1,1,0);


разработчики юнити, говорили, что надо кэшировать transform, то есть писать на старте
Код

MyTransform = transform;


иначе доступ к transform.position был медленнее, чем MyTransform.position (почему-то)

Но в новых версиях избавились вроде от лишнего мусора, и теперь к rigidbody нужно обращаться как к компоненту,
через GetComponent, но я до сих пор кэширую по привычке transform, мой код выглядит примерно так:
Код

Transform trans;
void Start() {
   trans = transform;
}
void Update() {
   trans.position = new Vector3(1,1,0);
}


Стоит ли кэшировать Transform теперь, ведь скорее всего код юнити давно претерпел какие-то критические изменения?!

PS А я только сейчас об этом задумался, лол)


Сообщение отредактировал alexsilent - Четверг, 11 Октября 2018, 18:47
alexsilentДата: Четверг, 11 Октября 2018, 18:04 | Сообщение # 215 | Тема: Как проверить массив и текст в одно условие
почти ветеран
Сейчас нет на сайте
Цитата Psycho ()
Нет, я вот про это:
Цитата alexsilent ()
public class testCsh : MonoBehaviour


А это я просто быстро писал, хотел скорее затестить, обычно я пишу с большой буквы названия всех скриптов (классов),
а тут не заморачивался.

Добавлено (11 Октября 2018, 18:05)
---------------------------------------------

Цитата Psycho ()
Цитата alexsilent ()
не поддерживается особенность ".?"

Не обольщайтесь, это по сути та же проверка "if(string == null)", только записанная короче. Оптимизированнее код от нее не станет.


Тогда не много потеряно, придётся вручную писать, спасибо за разъяснение!
alexsilentДата: Четверг, 11 Октября 2018, 17:36 | Сообщение # 216 | Тема: Как проверить массив и текст в одно условие
почти ветеран
Сейчас нет на сайте
Цитата Psycho ()
Почему в Вашем коде имя класса написано с маленькой буквы, а вот имя функции наоборот с большой?


1) Это про "string" в C# коде? я забыл String пишется с маленькой или с большой в C# коде... Я быстро писал, если б компилятор поругался, то исправил бы, но мне хватило того, что всё равно не поддерживается особенность ".?"

2) Или это про "Manager.it.PoseNum"?
у меня it это глобальная переменная static it - которая обращается к всему скрипту (классу? наверное это так называется в C#) в котором сейчас находится, для удобства быстрого доступа, правда код не на C#, а Яваскрпите пишу, а то я пока не особо привык:

Код
static var it : MyThatScript;
function Init() {
  it = this; // один раз инициировать, и потом можно всегда обращаться к этому скрипту
// даже если этот объект со скриптом вообще не в сцене и не создан, а находится в префабах
}


,


Сообщение отредактировал alexsilent - Четверг, 11 Октября 2018, 18:26
alexsilentДата: Четверг, 11 Октября 2018, 16:31 | Сообщение # 217 | Тема: Как проверить массив и текст в одно условие
почти ветеран
Сейчас нет на сайте
Цитата seaman ()
[url=https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/490acw3e(v%3Dvs.95)]String.IsNullOrEmpty[/url]
?. и ?[]: операторы с условием NULL


seaman, спасибо, крутая опция в C# есть, надо бы погуглить есть ли такое в Яваскрипте (ибо у меня всё ещё остались проекты на юнити на яваскрипте, а на шарп я пока только перехожу).

Добавлено (11 Октября 2018, 16:46)
---------------------------------------------
Жаль, не хочет работать такой код на яваскрипте :(
Код

#pragma strict

function Start () {
    var text : String = null;
    if (text?.length == 0) {
          print("text is empty!");
    }
}


Добавлено (11 Октября 2018, 16:54)
---------------------------------------------
оказывается такой код не работает даже в C# на юнити... (у меня версия 2018.1.8f)

Код

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

public class testCsh : MonoBehaviour {

    void Start () {
        string text = null;
        if (text?.length == 0) {
             print("text is empty!");
        }
    }
}



А компилятор извиняется, что не поддерживает такую особенность о_О
Код

Assets/4 SCRIPTS/testCsh.cs(9,11): error CS1644: Feature `null propagating operator' cannot be used because it is not part of the C# 4.0 language specification


Сообщение отредактировал alexsilent - Четверг, 11 Октября 2018, 17:07
alexsilentДата: Четверг, 11 Октября 2018, 16:14 | Сообщение # 218 | Тема: Как проверить массив и текст в одно условие
почти ветеран
Сейчас нет на сайте
Вообще вина в этом вся компилятора...

1) было бы удобнее, чтобы на строку
Код
if (MyArray.length > 0) {}

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

2) тоже самое и с кодом String
Код
if (MyString != "") {}

не выдавалась бы ошибка, если MyString равен null, по логике всё равно там пусто, ну и согласился бы компилятор с этим условием, а не ругался бы...


Сообщение отредактировал alexsilent - Четверг, 11 Октября 2018, 16:21
alexsilentДата: Четверг, 11 Октября 2018, 15:59 | Сообщение # 219 | Тема: Как проверить массив и текст в одно условие
почти ветеран
Сейчас нет на сайте
Цитата DivES ()
Когда null, речь идёт о пустом текстовом объекте. Когда "" - о пустой строке внутри непустого текстового объекта. Ну это если попытаться объяснить простыми словами

Это я понимаю, просто имел ввиду, что не понятно когда текстовой объект инициирован, а когда нет, поэтому на всякий случай ставлю всегда две проверки, и это немного утомляет
alexsilentДата: Четверг, 11 Октября 2018, 14:59 | Сообщение # 220 | Тема: Как проверить массив и текст в одно условие
почти ветеран
Сейчас нет на сайте
Чтобы проверить, массив, я обычно ставлю два условия:
Код
if (MyArray && MyArray.length > 0)

проверяю инициирован ли массив вообще и потом есть ли у него яйчейки

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


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



****************
Тоже самое и с текстом, иногда не понимаешь когда String имеет свойство null, а когда "", поэтому приходится делать две проверки для этого, вместо одной
Код
if (MyString && MyString != "")

проверяю пустой ли текст null или пустой текст "" , по каким-то странным причинам это два разных условия, можно ли упростить мою проверку?


Сообщение отредактировал alexsilent - Четверг, 11 Октября 2018, 15:14
Поиск:

Все права сохранены. GcUp.ru © 2008-2025 Рейтинг