порт Корсаров на Андроид

понедельник, 18 августа 2025 г.

Как получить значение переменной из другого скрипта


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

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

═══════⚓═══════

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

Шаги:

1. В скрипте, где находится переменная (например, ScriptA):

2. Объявите переменную как public, чтобы она была доступна из других скриптов.

public class ScriptA : MonoBehaviour

{

public float myFloatValue = 10.0f;

}

3. В скрипте, который получает значение (например, ScriptB) - объявите переменную для хранения ссылки на другой скрипт:

public ScriptA scriptAInstance;
 
// Или другой тип скрипта, который содержит нужную переменную

4. Получите ссылку на экземпляр другого скрипта:

  • Через инспектор: Перетащите объект с ScriptA на слот scriptAInstance в инспекторе ScriptB.
  • Программным путем (например, через FindObjectOfType или GetComponent):
// Пример получения по типу скрипта

scriptAInstance = FindObjectOfType<ScriptA>();

5. Получите значение переменной.

float receivedValue = scriptAInstance.myFloatValue;

Debug.Log("Полученное значение: " + receivedValue);
👉В скрипте ScriptB для использования полученого зачения нужно использовать имя переменой receivedValue, а ни myFloatValue из скрипта ScriptA.

Важно:
  • Убедитесь, что объект, на который ссылается scriptAInstance, существует и имеет прикрепленный ScriptA.
  • При использовании namespaces, в скрипте ScriptB в директиве using необходимо указать выбранное пространсвенное имя заданное в ScriptA, чтобы компилятор мог его найти.
  • Если вы используете FindObjectOfType, убедитесь, что ScriptA был создан и активен на сцене, когда выполняется ScriptB.

суббота, 2 августа 2025 г.

Marine part 0.03 - Wind


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

SeaDogs Android
Визуализация ветра

При этом, не зависимо от того включена визуализация ветра или нет, ветер взаимодействует с кораблем:
  • изменяет скорость, 
  • поворачивает реи при смене галса,
  • разворачивает флаги, 
  • наполняет паруса.
Корсары на Андроид
Поворот рей, левый галс

Download

Системные требования (рекомендуемые):
  • Операционная система: Android версии 11 (API 30) или выше;
  • Процессор: ARM64;
  • Графический API: OpenGL ES 3.0+ или Vulkan;
  • Оперативная память: 1 Gb или больше.

Скачать можно здесь или через приложение Mitch тут. 
  • Вес: 29 Mb

четверг, 17 июля 2025 г.

Морская часть 0.02 - ARM64


Задался вопросом об архитектуре процессора с которым работаю. 64-битные процессоры хороши в 32-битовых вычислениях и без проблем запускают созданную игру, но зачем выпускать 32-битную игру в 64-битоной эре?
  • Процессор: ARMv7 с поддержкой Neon (32-bit) или ARM64что вы думаете по этому поводу?
Download

Скачать можно здесь или через приложение Mitch тут.

четверг, 10 июля 2025 г.

Giscus

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

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

пятница, 20 июня 2025 г.

Морская часть 0.01 - Next Gen

Корсары на Андроиде
Next Gen

Аргх! Кто здесь? А это ты морской волчара... Слышал кому-то не терпится отправиться к далеким берегам Хайрока, Скалшораз и Гранда Авилии. Только не лги, что это не ты и об этом ни чего не знаешь... Я по твоим глазам все вижу...  Ну что ж, если не боишься пройти сквозь шторм Бискайского залива и взять командование кораблем на себя, то это приключение, как раз для тебя!

═══════⚓═══════

Все что здесь увидите, было создано при помощи стандартного конвейер рендеринга BRP, несмотря на то, что Unity в своей шестой версии отказалась от него в пользу URPно обо всём по порядку.

В начале 2020 года Unity презентовала свой новый конвейер рендеринга для мобильных телефонов и портативных консолей URP (Universal Render Pipelineи сделала она это ни кабы как, а при помощи демонстрации его работы в проекте Boat Attack. Это шикарная презентация. Просто шикарная. Особенно, если запускаешь игру на своем телефоне и воочию видишь графику, какую можно получить, да еще в 3D, если использовать URP, даже если у тебя слабое железо (телефон). 

вторник, 11 марта 2025 г.

Парадокс в Next Gen

Как я провел месяц

Возвращаюсь с Unreal обратно в Unity на Built-in. Выбранная стратегия продвижения универсального конвейера рендеринга у Unity - это полный провал.

воскресенье, 23 февраля 2025 г.

Экспорт модели из 3D Max в Unity

Корсары Андроид
Новая модель Николаса Шарпа v 0.5

В 3D Max в отличии от Unity поверхность отображается в обе стороны, а в Unity только в одну

вторник, 11 февраля 2025 г.

30 vs 60 FPS


Вечный холиварн... Одни говорят, что для комфортной игры вполне хватает 30 FPS, киберспортсменам подавай 120  FPS, иначе катку затащить не смогут, любители синематографа вообще утверждают, что человеческий глаз не может распознать более 24 кадров в секунду. Но давайте сначала разберемся, сколько кадров сможет отрисовать наш экран, только уже ни монитора, а нашего телефона. В этом нам поможет AIDA64. Заходим в Отображение и ищем строчку Частота обновления 

Redmi Note 8

Правда, сейчас телефоном с частотой обновления экрана 120 Ghz ни кого не удивишь. Тем не менее, не смотря на все это дело, Unity выставляет частоту обновления экрана для мобильных телефонов - 30 FPS, нет не потому, что разработчики приверженцы одной из сторон спора, это сделано специально, для экономии заряда батареи. В настройках "Player Settings..." параметрами V sync count  частоту обновления экрана уже не изменить, поменять на другое значение можно только через скрипт:
using UnityEngine;

public class My60FPS : MonoBehaviour

{
    void Start()

    {

Application.targetFrameRate = 60;

    }

 }
Вешается на любой объект в сцене, на пример на камеру. В данном случае, частота обновления экрана вместо 30 станет 60 FPS, но следует помнить, что оптимизацию сцены ни кто не отменял, будет 60, если загрузка графического процессора дает возможность это сделать.

пятница, 7 февраля 2025 г.

Итоги пре-афьфа теста

Всем привет! Решил взять отпуск, а по возвращению из него продолжить заниматься портом, а вышло, совсем на оборот, забросил.

"Почему?" - споите вы. Да собственно ответ можно найти в последнем коде этого сообщения, думаю ни кто не обратил на него особого внимания, все прочитали и пошли дальше. Знаете о чем там говориться? Об одном еще одной платформе под названием WebGl, но уже с приставкой mobail. Которое и отбило все желание дальше заниматься портом.

По итогу pre-alpha теста я могу сказать лишь одно, что WebGL для демонстрации, что получается сделать в процессе разработки ни куда не годиться: 

  • Плохая кроссбраузерность, такие браузеры, как Firefox, Opera, вообще отпадают;
  • Плохая производительность, низкий FPS, об этом поговорим чуть позже;
  • Плохая совместимость, если говорить про шейдеры и не приходить на французский, то я лучше воздержусь от комментариев; 
  • Особенности кодирования, вплоть до мозгового штурма, как переделать код, который 5 минут назад корректно работал в десктопной версии, корректно заработал и тут.

пятница, 31 мая 2024 г.

Build престал чесаться


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

Тем не менее:

Проверка доступности сайта в интернете из разных точек - 2ip.ru

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