1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qingfeng346-Scorpio-CSharp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

sco — это реализация скриптового языка на C#, который представляет собой эффективный, лёгкий и встраиваемый скриптовый язык. Его синтаксис похож на JavaScript, а тип является слабым. Он работает путём интерпретации байт-кода с использованием стекового виртуального интерпретатора.

Скрипт Unity

Пример использования sco в Unity можно найти по ссылке: https://github.com/qingfeng346/ScorpioUnitySample.

VSCode

Существует плагин для подсветки синтаксиса sco для VSCode, доступный по адресу: https://marketplace.visualstudio.com/items?itemName=while.scorpio.

NuGet

Адрес NuGet: https://www.nuget.org/packages/Scorpio-CSharp.

Gitee

Gitee адрес: http://git.oschina.net/qingfeng346/Scorpio-CSharp.

Установка sco

Windows

  • Способ 1 (рекомендуется):
  • Способ 2:
    • Используйте winget (доступно в Windows 10 версии 1709 и выше) для установки. Выполните команду (рекомендуется).
winget install Scorpio.sco

Mac

  • Способ 1 — установка через brew (рекомендуется):
brew tap qingfeng346/brew
brew install sco
  • Способ 2:
    • Загрузите сжатый пакет из раздела «Release» на GitHub и добавьте переменные окружения.

Linux

  • Способ 1:
    • Загрузите сжатый пакет из раздела «Release» на GitHub и добавьте переменные окружения.
  • Способ 2 (для машин с установленным PowerShell Core):
pwsh -Command "Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://qingfeng346.gitee.io/installsco.ps1'))"

Импорт в Unity

UPm (рекомендуется)

// Добавляем адрес https://github.com/qingfeng346/upm.git?path=/Packages/com.scorpio.sco#sco/[version]
// Пример:
"dependencies": {
    "com.scorpio.sco": "https://github.com/qingfeng346/upm.git?path=/Packages/com.scorpio.sco#sco/2.3.5",
}

OpenUPm (рекомендуется)

openupm install com.scorpio.sco

Исходный код

Импортируйте исходный код из каталога Scorpio/src. Различные версии доступны для скачивания в разделе «Release» на GitHub.

Совместимость с .NET

Поддерживаются следующие платформы .NET:

  • Unity 2018 и более поздние версии;
  • .NET Framework 4.0 и более поздние версии;
  • .NET Standard 2.0 и более поздние версии;
  • .NET Core 2.0 и более поздние версии;
  • ASP.NET;
  • ASP.NET Core;
  • Mono;
  • Xamarin.

Unity-специфичные функции

  • Поддерживаемые версии Unity: Unity 2018 и более поздние. В настройках PlayerSetting установите уровень совместимости API на .NET Standard 2.0.

  • Поддерживаемые платформы Unity:

    • ПК, Mac & Linux Standalone (включая IL2CPP);
    • iOS (включая IL2CPP);
    • Android (включая IL2CPP);
    • UWP (поддерживает только IL2CPP);
    • WebGL.

Замечания

  • Текстовые файлы скриптов должны быть закодированы в формате utf8 без BOM (беззнаковый utf8).
  • Для импорта класса C# используйте функцию importType, параметры которой аналогичны параметрам функции Type.GetType. Например: TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly или TopNamespace.Sub+Namespace.ContainingClass+NestedClass,MyAssembly.
  • Все экземпляры C# в скрипте, кроме базовых типов (bool, number, string, enum), являются ссылками, включая структуры.
  • Операции += и -= для событий могут быть заменены функциями add_[event переменная] и remove_[event переменная].
  • Функции расширения C# должны быть сначала вызваны с помощью importExtension("тип").
  • После использования IL2CPP в Unity некоторые классы и функции Unity3D не могут быть отражены. Необходимо настроить link.xml или использовать функцию быстрого отражения.
  • При использовании IL2CPP функции genericMethod и genericType могут вызвать ошибки при генерации типов, которые не были объявлены.

Перегрузка операторов в C#

Оператор Название функции отражения Поддержка в скрипте
+ op_Addition Да
- op_Subtraction Да
* op_Multiply Да
/ op_Division Да
% op_Modulus Да
| op_BitwiseOr Да
& op_BitwiseAnd Да
^ op_ExclusiveOr Да
> op_GreaterThan Да
>= op_GreaterThanOrEqual Да
< op_LessThan Да
<= op_LessThanOrEqual Да
== op_Equality Да
!= op_Inequality Нет, скрипт != будет инвертировать ==
[] get_Item (получение переменной) Да, если ключ не является строкой
[] set_Item (установка переменной) Да, если ключ не является строкой

Быстрое отражение

Быстрое отражение позволяет создавать классы для отражения объектов C#.

  • Генерация классов быстрого отражения:
    • С помощью командной строки можно создать файл класса быстрого отражения. Пример команды:
sco fast -dll [путь к файлу dll] -class [полное имя класса] -output [каталог вывода]
  • Использование классов быстрого отражения:
    • Например, класс быстрого отражения для UnityEngine.GameObject называется ScorpioClass_UnityEngine_GameObject. Затем в C# вызывается:
Scorpio.Userdata.TypeManager.SetFastReflectClass(typeof(UnityEngine.GameObject), new ScorpioClass_UnityEngine_GameObject(script))
``` Скачать
--|--|--
[Dragonscapes](https://www.centurygames.com/games/dragonscapes-adventure/) | [![Dragonscapes](https://github.com/qingfeng346/qingfeng346.github.io/raw/master/img/dragonscapes.png)](https://www.centurygames.com/games/dragonscapes-adventure/) | [![](https://github.com/qingfeng346/qingfeng346.github.io/raw/master/img/GooglePlay200.png)](https://play.google.com/store/apps/details?id=com.dragonscapes.global)<br>[![](https://github.com/qingfeng346/qingfeng346.github.io/raw/master/img/AppStore200.png)](https://apps.apple.com/app/dragonscapes-adventure/id1515511378)

## Спонсируйте автора
---
![](https://github.com/qingfeng346/qingfeng346.github.io/raw/master/img/wx.jpg)
![](https://github.com/qingfeng346/qingfeng346.github.io/raw/master/img/zfb.jpg)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Скрипт горячего обновления для игр Unity. Развернуть Свернуть
C# и 3 других языков
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/qingfeng346-Scorpio-CSharp.git
git@api.gitlife.ru:oschina-mirror/qingfeng346-Scorpio-CSharp.git
oschina-mirror
qingfeng346-Scorpio-CSharp
qingfeng346-Scorpio-CSharp
v2.0