Exemplo n.º 1
0
    public void LoadAssets(string modelId, List <string> donotUnloadIds)
    {
        _donotUnloadIds = donotUnloadIds;
        if (_modelId != null)
        {
            UnloadAsset();
        }

        _modelId        = modelId;
        _expressionList = new List <string>();
        _motionList     = new List <string>();

        var data = Live2DFramework.GetPlatformManager().loadString(AssetLoader.GetLive2dModelJsonById(modelId));

        Init(data, modelId);
    }
Exemplo n.º 2
0
    public void UnloadAsset()
    {
        if (CanUnload() == false)
        {
            return;
        }

        _baseDir = AssetLoader.GetLive2dDirById(_modelId) + "/";

        IPlatformManager pm = Live2DFramework.GetPlatformManager();

        pm.UnloadBytes(AssetLoader.GetLive2dModelJsonById(_modelId));

        // Live2D Model
        if (modelSetting.GetModelFile() != null)
        {
            pm.UnloadBytes(_baseDir + modelSetting.GetModelFile());

            var len = modelSetting.GetTextureNum();
            for (int i = 0; i < len; i++)
            {
                pm.UnloadTexture(_baseDir + modelSetting.GetTextureFile(i));
            }
        }

        // Expression
        if (modelSetting.GetExpressionNum() != 0)
        {
            var len = modelSetting.GetExpressionNum();
            for (int i = 0; i < len; i++)
            {
                pm.UnloadBytes(_baseDir + modelSetting.GetExpressionFile(i));
            }
        }

        // Physics
        if (modelSetting.GetPhysicsFile() != null)
        {
            pm.UnloadBytes(_baseDir + modelSetting.GetPhysicsFile());
        }

        // Pose
        if (modelSetting.GetPoseFile() != null)
        {
            pm.UnloadBytes(_baseDir + modelSetting.GetPoseFile());
        }


        string[] motionGroup = modelSetting.GetMotionGroupNames();

        for (int i = 0; i < motionGroup.Length; i++)
        {
            int num = modelSetting.GetMotionNum(motionGroup[i]);
            if (num != 0)
            {
                for (int j = 0; j < num; j++)
                {
                    pm.UnloadBytes(_baseDir + modelSetting.GetMotionFile(motionGroup[i], j));
                }
            }
        }

        _modelId = null;
    }
Exemplo n.º 3
0
    public static bool HasResource(string modelId)
    {
        string data = Live2DFramework.GetPlatformManager().loadString(AssetLoader.GetLive2dModelJsonById(modelId));

        return(!string.IsNullOrEmpty(data));
    }