JustPlay-Max / PluginYG

Creative Commons Zero v1.0 Universal
59 stars 10 forks source link

Ошибка билда на не WebGL платформе #8

Open SergunWE opened 7 months ago

SergunWE commented 7 months ago

Если попробовать сбилдить проект с плагином на любую платформу, кроме WebGL, то попытка завершается ошибкой. Это происходит из-за [DllImport("__Internal")], т. к. он просто не находит эти методы на других платформах. Хотя я, вроде как, от всех ссылок в сценах избавился, но сбилдить на Android не получилось.

Как я это решил

Изменил конструктор DefineSymbols на такой (хотя я не нашёл, где используется YG_PLUGIN_YANDEX_GAME)

static DefineSymbols()
        {
            if (EditorUserBuildSettings.selectedBuildTargetGroup == BuildTargetGroup.WebGL)
            {
                AddDefine("YG_PLUGIN_YANDEX_GAME");
            }
        }

И для всех extern методов добавил

#if YG_PLUGIN_YANDEX_GAME
        [DllImport("__Internal")]
#endif

Также изменил PostProcessBuild, чтобы он не вызывался

public class PostProcessBuild : IPreprocessBuildWithReport
    {
        public int callbackOrder
        {
            get { return 0; }
        }

        public void OnPreprocessBuild(BuildReport report)
        {
#if YG_PLUGIN_YANDEX_GAME
            string buildPatch = report.summary.outputPath + "/index.html";

            if (File.Exists(buildPatch))
            {
                File.Delete(buildPatch);
            }
#endif
        }

        [PostProcessBuild]
        public static void ModifyBuildDo(BuildTarget target, string pathToBuiltProject)
        {
#if YG_PLUGIN_YANDEX_GAME
            ModifyBuildManager.ModifyIndex(pathToBuiltProject);
            ArchivingBuild.Archiving(pathToBuiltProject);
            BuildLog.WritingLog(pathToBuiltProject);
#endif
        }
    }

Не знаю, на сколько это костыльно, но это помогло.

JustPlay-Max commented 6 months ago

Спасибо! Займусь этим для версии 2.0

JSBmanD commented 5 months ago

@SergunWE на 1.6.2 кажется нужно что-то еще сделать, может есть где-то форк с исправлениями?

SergunWE commented 5 months ago

@SergunWE на 1.6.2 кажется нужно что-то еще сделать, может есть где-то форк с исправлениями?

@JSBmanD Можешь отсюда скопировать https://github.com/Dkyot/FH_puzzle