Ejemplo n.º 1
0
    private IEnumerator DoLoad(int npc_model_id, int layer, bool need_shadow, bool enable_light_probes, SHADER_TYPE shader_type, Action callback)
    {
        loadingQueue = new LoadingQueue(this);
        string     model_name = ResourceName.GetNPCModel(npc_model_id);
        LoadObject lo_model   = loadingQueue.LoadAndInstantiate(RESOURCE_CATEGORY.NPC_MODEL, model_name);
        string     anim_name  = ResourceName.GetNPCAnim(npc_model_id);
        LoadObject lo_anim    = loadingQueue.Load(RESOURCE_CATEGORY.NPC_ANIM, anim_name, new string[1]
        {
            anim_name + "Ctrl"
        }, false);

        if (loadingQueue.IsLoading())
        {
            yield return((object)loadingQueue.Wait());
        }
        model = lo_model.Realizes(this.get_transform(), layer);
        if (model != null)
        {
            head   = Utility.Find(model, "Head");
            facial = model.GetComponentInChildren <NPCFacial>();
            if (facial != null)
            {
                facial.animNode = Utility.Find(model, "Face");
            }
            animator = model.GetComponentInChildren <Animator>();
            if (lo_anim != null && animator != null)
            {
                animator.set_runtimeAnimatorController(lo_anim.loadedObjects[0].obj as RuntimeAnimatorController);
            }
        }
        PlayerLoader.SetLightProbes(model, enable_light_probes);
        renderers = model.GetComponentsInChildren <Renderer>();
        int j = 0;

        for (int i = renderers.Length; j < i; j++)
        {
            if (renderers[j] is SkinnedMeshRenderer)
            {
                (renderers[j] as SkinnedMeshRenderer).set_localBounds(BOUNDS);
            }
        }
        switch (shader_type)
        {
        case SHADER_TYPE.LIGHTWEIGHT:
            ShaderGlobal.ChangeWantLightweightShader(renderers);
            break;

        case SHADER_TYPE.UI:
            ShaderGlobal.ChangeWantUIShader(renderers);
            break;
        }
        if (need_shadow)
        {
            shadow = PlayerLoader.CreateShadow(this.get_transform(), true, -1, shader_type == SHADER_TYPE.LIGHTWEIGHT);
        }
        coroutine = null;
        callback?.Invoke();
    }
Ejemplo n.º 2
0
 public void LoadPlayer(PlayerLoadInfo load_info)
 {
     //IL_002f: Unknown result type (might be due to invalid IL or missing references)
     //IL_003a: Unknown result type (might be due to invalid IL or missing references)
     //IL_004e: Unknown result type (might be due to invalid IL or missing references)
     //IL_0053: Unknown result type (might be due to invalid IL or missing references)
     //IL_0122: Unknown result type (might be due to invalid IL or missing references)
     if (playerShadow == null)
     {
         playerShadow = PlayerLoader.CreateShadow(MonoBehaviourSingleton <StageManager> .I.stageObject, false, -1, false);
         playerShadow.get_transform().set_position(parameter.playerPos + new Vector3(0f, 0.005f, 0f));
     }
     ShaderGlobal.lightProbe = false;
     if (!(playerLoader != null) || !playerLoader.loadInfo.Equals(load_info))
     {
         if (renderTexture != null)
         {
             Object.DestroyImmediate(renderTexture);
         }
         renderTexture = UIRenderTexture.Get(uiTexture, -1f, true, -1);
         renderTexture.Disable();
         renderTexture.nearClipPlane = parameter.renderTextureNearClip;
         int num = -1;
         if (MonoBehaviourSingleton <OutGameSettingsManager> .IsValid())
         {
             num = ((!MonoBehaviourSingleton <OutGameSettingsManager> .I.statusScene.isChangeHairShader) ? (-1) : MonoBehaviourSingleton <UserInfoManager> .I.userStatus.hairColorId);
         }
         playerLoader = renderTexture.modelTransform.get_gameObject().AddComponent <PlayerLoader>();
         PlayerLoader obj = playerLoader;
         int          use_hair_overlay = num;
         obj.StartLoad(load_info, renderTexture.renderLayer, PLAYER_ANIM_TYPE.GetStatus(MonoBehaviourSingleton <UserInfoManager> .I.userStatus.sex), false, false, false, false, false, true, true, true, SHADER_TYPE.NORMAL, delegate
         {
             //IL_0006: Unknown result type (might be due to invalid IL or missing references)
             //IL_0011: Unknown result type (might be due to invalid IL or missing references)
             //IL_0021: Unknown result type (might be due to invalid IL or missing references)
             //IL_0056: Unknown result type (might be due to invalid IL or missing references)
             //IL_00a2: Unknown result type (might be due to invalid IL or missing references)
             //IL_00ad: Unknown result type (might be due to invalid IL or missing references)
             //IL_00b2: Unknown result type (might be due to invalid IL or missing references)
             //IL_00ba: Unknown result type (might be due to invalid IL or missing references)
             //IL_00bf: Unknown result type (might be due to invalid IL or missing references)
             playerLoader.get_transform().set_position(parameter.playerPos);
             playerLoader.get_transform().set_eulerAngles(new Vector3(0f, (viewMode != 0) ? parameter.avatarPlayerRot : parameter.playerRot, 0f));
             if (MonoBehaviourSingleton <UserInfoManager> .IsValid())
             {
                 UserStatus userStatus = MonoBehaviourSingleton <UserInfoManager> .I.userStatus;
                 float num2            = (userStatus.sex != 0) ? parameter.playerScaleFemale : parameter.playerScaleMale;
                 playerLoader.get_transform().set_localScale(playerLoader.get_transform().get_localScale().Mul(new Vector3(num2, num2, num2)));
             }
             renderTexture.Enable(0.25f);
         }, true, use_hair_overlay);
     }
 }