В основу материала положена статья Lizzie Stark, Elin Nilsen and Trine Lise Lindahl. Прочитать статью на английском языке можно здесь.
Что такое скрипт?
Скрипт — это текст игры, который включает в себя инструкции мастерам игры, игрокам, перечень упражнений (если они есть), список того, что необходимо для проведения игры, а также персонажи игры.
Для чего нужен скрипт?
- Скрипт позволяет провести игру не только ее авторам, но и всем желающим, так как грамотно составленный скрипт служит инструкцией по ее проведению и организации.
- Скрипт помогает сохранить игру. Скрипт позволяет вернуться к игре позже, чтобы что-либо доделать или переделать.
- Написание скрипта позволяет авторам игры взглянуть на игру «извне», получить чье-либо мнение или критику: часто то, что написано, не похоже на то, что мы произносим вслух.
- Если у игры есть скрипт, то она имеет возможность быть проигранной много раз совершенно разными людьми.
Что нужно указать в скрипте?
Unity урок, Изменение параметров материала через скрипт
Укажите в описании общее виденье игры, ее цель и задачи. Опишите сюжет, а также сеттинг игры.
Пример: «Игра «The Touch Of Your Voice» была написана командой ларперов в рамках проекта Larp Exchange Academy в Осло в апреле 2013 года. Данная игра посвящена проблеме взаимодействия и общения людей, которые либо были слепыми с детства, либо стали такими. Игра рассчитана на 7 участников. Длительность игры — 3 часа.»
Опишите этап подготовки к игре. Укажите, что нужно для проведения игры. Это касается как вещей, к которым нужно готовится заранее, так и то, что нужно сделать непосредственно перед игрой.
Укажите структуру ларпа, то, из чего игра состоит.
Пример, игра состоит из 3 актов, начало и конец которых обозначается выключением света.
Укажите основные правила игры, включая правило «Stop/break».
Заслуживает упоминания то, что может «сломать» игру или сделать ее проигрыш невозможным.
Пример: «В «Танго для двоих» каждый персонаж отыгрывается 2 игроками – один играет Оно, другой – Я. Вместе они образуют индивид (от англ. Individual – неделимый).»
Пример: «Пол игрока. В реальности не было батальонов, укомплектованных женщинами, но в этой игре предлагается отступить от истории и не обращать внимание на пол игрока. Для игры это не существенно.»
- Подробное описание каждого элемента игры
Опишите в подробностях (желательно с указанием временных интервалов) всю игру, включая воркшопы (если есть) до игры и дибрифинг или упражнения после игры.
Сюда относятся описание персонажей (роли), любой раздаточный материал, который нужен игрокам, текст вводной или описания игры.
Скачать текст в формате pdf — Как написать скрипт игры.
Источник: larpstudio.wordpress.com
Как добавить свой материал? | Roblox Studio
Добавить кастомный js-код на сайт (различные метрики и др.)
Довольно часто у владельцев сайтов возникает потребность разместить на сайте кастомный js-код. Это могут быть различные метрики или вспомогательные скрипты. Рассмотрим наиболее популярные варианты.
Способ 1: кастомный блок
- Идем в «Схему блоков -> Пользовательские блоки»
- Создаем новый блок
- Переключаем редактор в режим «источник» и размещаем код
- Идем в «Схему блоков» и размещаем блок в регион
Плюсы данного метода:
- Прост как 5 копеек, любой контентщик/сайтбилдер справится
Минусы данного метода:
- Скрипты, добавленные таким образом, не будут сжиматься (агрегироваться). При большом обилии таких скриптов не ждите 100 баллов в google pagespeed
- Контентщик/сайтбилдер может случайно удалить блок и скрипт пропадет (были такие случаи)
- Некоторые форматы ввода или визуальные редакторы могут съедать код.
Способ 2: правка шаблона темы оформления
- Идем в каталог с шаблонами темы оформления
- Редактируем шаблон, например html.html.twig
- Добавляем в шаблон необходимый код
Плюсы данного метода:
- Возможность быстро добавить скрипты на все страницы сайта и не переживать что контентщик/сайтбилдер случайно удалит их
Минусы данного метода:
- Скрипты, добавленные таким образом, не будут сжиматься (агрегироваться). При большом обилии таких скриптов не ждите 100 баллов в google pagespeed
- Контентщик/сайтбилдер не сможет самостоятельно добавить/удалить эти скрипты без привлечения разработчика
Способ 3: модуль интеграции
- Ищем на https://drupal.org необходимый модуль интеграция
- Устанавливаем и настраиваем его
Плюсы данного метода:
- Скрипты, добавленные таким образом, будут сжиматься (агрегироваться)
- Простота настройки (хотя это зависит от модуля интеграции)
Минусы данного метода:
- Он всего один. Модуля-интеграции для вашего скрипта может и не быть
Способ 4: программный
- Описываем наш .js файл в файле MYTHEME|MYMODULE.libraries.yml
- Включаем его на нужных страницах добавив [ ‘#attached’ ] [ ‘library’ ] [ ] =. в любом удобном хуке.
Плюсы данного метода:
- Скрипты, добавленные таким образом, будут сжиматься (агрегироваться)
- Можно очень тонко настроить на каких страницах скрипт будет подключаться
Минусы данного метода:
- Нужно немножко уметь программировать (или хотя бы копипастить) на PHP.
Способ 5: Google Tag Manager
- Ставим Google Tag Manager (хоть этим модулем или этим, хоть в теме)
- И уже там добавляем все скрипты без программиста и затрагивания кода сайта.
Плюсы данного метода:
- Контентщик/сайтбилдер сможет самостоятельно добавить/удалить эти скрипты без привлечения разработчика
Минусы данного метода:
- Нужно иметь аккаунт Google
Авторы
ivnish Drupal FullStack Developer
marassa Друпалист-любитель
pselfin Разработка и поддержка сайтов на Drupal. Интернет-маркетинг под ключ
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Блог
Комментарии
marassa 29 июля 2020 в 18:59
Способ 4: программный
1. Описываем наш .js файл в файле MYTHEME|MYMODULE.libraries.yml
2. Включаем его на нужных страницах добавив [ ‘#attached’ ] [ ‘library’ ] [ ] =. в любом удобном хуке.
Плюсы данного метода:
- Скрипты, добавленные таким образом, будут сжиматься (агрегироваться)
- Можно очень тонко настроить на каких страницах скрипт будет подключаться
Минусы данного метода:
- Нужно немножко уметь программировать (или хотя бы копипастить) на PHP.
ivnish 29 июля 2020 в 19:06
А слона-то я и не приметил) Добавил, спасибо!
jura12 1 августа 2020 в 0:37
заработал 1й способ. мешал модуль Content Security Policy
Ставим ГТМ (хоть этим модулем или этим, хоть в теме) и уже там добавляем все скрипты без программиста и затрагивания кода сайта.
ivnish 3 августа 2020 в 11:59
Спасибо, добавил в мануал
Попросили уточнить немного.
Так как по друпалу все просто — поставили модуль, указали ID тегменеджера или вставили код, то по самому менеджеру немного хитрее. Дам ссылки на хорошие материалы:
— Обзор, установка и настройка Google Tag Manager
— https://analytics-tips.com/
На этих сайтах много дополнительных инструкций по разным задачам — как поставить метрику, настроить цели разного вида, менять контент и с помощью ГТМ и тд.
Некоторые скрипты через гтм не работают. Но это скорее редкость.
Rama 3 сентября 2021 в 12:49
У меня сработал только этот модуль GoogleTagManager
Источник: drupal.ru
Применение материала к нескольким объектам
На самом деле, заголовок не полностью отображает возможности этого скрипта — изменять можно не только материал, а вообще производить над объектами какие-либо манипуляции: изменение параметров, добавление компонентов, и т. д. Нужно лишь немного изменить код.
Суть в том, что когда сцена построена, а вам необходимо применить изменения к 30 объектам (или больше), то это может занять время. Конечно, нужно обязательно все делать через префабы, чтобы такие случаи свести к минимуму, но все же, ситуации бывают разные.
using UnityEngine; using System; using UnityEditor; using UnityEngine.UI; public class AssignMaterial : ScriptableWizard < public bool isRecursively = true; public Material material; string label = «Select Game Objects»; GameObject[] objects; void OnWizardUpdate () < helpString = label; isValid = (material != null); >void OnWizardCreate () < objects = Selection.gameObjects; foreach (GameObject go in objects)< changeMaterial(go); >> void changeMaterial (GameObject go) < if (go.GetComponent()) < go.GetComponent< YOUR_COMPONENT>().material = material; > if (isRecursively) < for (int i = 0; i < go.transform.childCount; i++) < changeMaterial(go.transform.GetChild(i).gameObject); >> > [MenuItem («Custom/Assign Material», false, 4)] static void assignMaterial () < ScriptableWizard.DisplayWizard («Assign Material», typeof(AssignMaterial), «Assign»); >>
Создав такой скрипт и положив его в папку Editor вы создадите свой пункт в главном меню Unity. Выбираете Custom → Assign Material и появляется окно применения материала. Выбираете нужный материал, а на сцене объекты к которым его применить и жмете Assign. Готово.
В данном примере, я применял новый материал к компоненту Image.
Источник: mopsicus.ru
