Ejemplo n.º 1
0
 private void UpdateActor()
 {
     //IL_004c: Unknown result type (might be due to invalid IL or missing references)
     //IL_0051: Unknown result type (might be due to invalid IL or missing references)
     //IL_00b1: Unknown result type (might be due to invalid IL or missing references)
     //IL_00c3: Unknown result type (might be due to invalid IL or missing references)
     //IL_00c9: Unknown result type (might be due to invalid IL or missing references)
     //IL_00d9: Unknown result type (might be due to invalid IL or missing references)
     //IL_00df: Unknown result type (might be due to invalid IL or missing references)
     //IL_00e4: Unknown result type (might be due to invalid IL or missing references)
     for (int i = 0; i < this.actorInfo.Length; i++)
     {
         ActorInfo actorInfo = this.actorInfo[i];
         if (actorInfo != null)
         {
             if (actorInfo.animator.HasState(0, CUT_STATE_HASH[cutNo]))
             {
                 actorInfo.obj.SetActive(true);
                 AnimatorStateInfo currentAnimatorStateInfo = actorInfo.animator.GetCurrentAnimatorStateInfo(0);
                 if (currentAnimatorStateInfo.get_shortNameHash() != CUT_STATE_HASH[cutNo])
                 {
                     actorInfo.animator.Play(CUT_STATE_HASH[cutNo]);
                     CutSceneData.ActorData keyData = actorInfo.keyData;
                     Transform parentNode           = GetParentNode(keyData.attachmentType, keyData.nodeName);
                     if (parentNode != null)
                     {
                         actorInfo.obj.get_transform().set_parent(parentNode);
                     }
                     actorInfo.obj.get_transform().set_localPosition(keyData.position);
                     actorInfo.obj.get_transform().set_localRotation(Quaternion.Euler(keyData.rotation));
                 }
             }
             else
             {
                 actorInfo.obj.SetActive(false);
             }
         }
     }
 }
Ejemplo n.º 2
0
    public void Play(Action _onComplete = null)
    {
        //IL_001c: Unknown result type (might be due to invalid IL or missing references)
        //IL_0029: Expected O, but got Unknown
        //IL_00eb: Unknown result type (might be due to invalid IL or missing references)
        //IL_0264: Unknown result type (might be due to invalid IL or missing references)
        //IL_0269: Expected O, but got Unknown
        //IL_0285: Unknown result type (might be due to invalid IL or missing references)
        //IL_028a: Expected O, but got Unknown
        //IL_02c7: Unknown result type (might be due to invalid IL or missing references)
        //IL_02de: Unknown result type (might be due to invalid IL or missing references)
        //IL_02e3: Unknown result type (might be due to invalid IL or missing references)
        //IL_03d6: Unknown result type (might be due to invalid IL or missing references)
        //IL_046b: Unknown result type (might be due to invalid IL or missing references)
        //IL_0507: Unknown result type (might be due to invalid IL or missing references)
        //IL_050c: Expected O, but got Unknown
        //IL_0528: Unknown result type (might be due to invalid IL or missing references)
        //IL_052d: Expected O, but got Unknown
        //IL_05c4: Unknown result type (might be due to invalid IL or missing references)
        //IL_05dc: Unknown result type (might be due to invalid IL or missing references)
        //IL_05e1: Unknown result type (might be due to invalid IL or missing references)
        //IL_06b3: Unknown result type (might be due to invalid IL or missing references)
        //IL_06cd: Unknown result type (might be due to invalid IL or missing references)
        //IL_06d4: Unknown result type (might be due to invalid IL or missing references)
        //IL_06ec: Unknown result type (might be due to invalid IL or missing references)
        //IL_06f3: Unknown result type (might be due to invalid IL or missing references)
        //IL_06f8: Unknown result type (might be due to invalid IL or missing references)
        //IL_0724: Unknown result type (might be due to invalid IL or missing references)
        //IL_0729: Unknown result type (might be due to invalid IL or missing references)
        //IL_0733: Unknown result type (might be due to invalid IL or missing references)
        //IL_0738: Unknown result type (might be due to invalid IL or missing references)
        if (cutSceneData == null)
        {
            MonoBehaviourSingleton <GameSceneManager> .I.ExecuteSceneEvent("InGameMain", this.get_gameObject(), "HOME", null, null, true);

            _onComplete?.Invoke();
        }
        else
        {
            onComplete  = _onComplete;
            isPlaying   = true;
            cutNo       = 0;
            playingTime = 0f;
            oldTime     = 0f;
            MonoBehaviourSingleton <SoundManager> .I.TransitionTo(cutSceneData.mixerName, 1f);

            if (cutSceneData.bgm != 0)
            {
                SoundManager.RequestBGM(cutSceneData.bgm, true);
            }
            cameraAnimator.set_cullingMode(0);
            cameraAnimator.set_runtimeAnimatorController(cutSceneData.cameraController);
            cameraAnimator.Play(CUT_STATE_HASH[cutNo]);
            UpdateCamera();
            MonoBehaviourSingleton <InGameCameraManager> .I.cameraTransform.get_gameObject().SetActive(false);

            for (int k = 0; k < this.playerInfo.Length; k++)
            {
                this.playerInfo[k] = null;
            }
            for (int l = 0; l < cutSceneData.playerData.Length; l++)
            {
                CutSceneData.PlayerData playerData = cutSceneData.playerData[l];
                if (playerData != null)
                {
                    if (!MonoBehaviourSingleton <StageObjectManager> .IsValid())
                    {
                        break;
                    }
                    StageObjectManager i2     = MonoBehaviourSingleton <StageObjectManager> .I;
                    Player             player = null;
                    if (playerData.type == CutSceneData.PlayerData.TYPE.MY_CHARACTER)
                    {
                        player = i2.self;
                    }
                    else
                    {
                        if (i2.playerList.Count <= (int)playerData.type)
                        {
                            continue;
                        }
                        int num = 0;
                        for (int m = 0; m < i2.playerList.Count; m++)
                        {
                            if (!(i2.playerList[m] is Self))
                            {
                                if ((int)playerData.type <= num)
                                {
                                    player = (i2.playerList[m] as Player);
                                    break;
                                }
                                num++;
                            }
                        }
                        if (player == null)
                        {
                            for (int n = 0; n < i2.playerList.Count; n++)
                            {
                                if ((int)playerData.type <= num)
                                {
                                    player = (i2.nonplayerList[n] as Player);
                                    break;
                                }
                                num++;
                            }
                        }
                        if (player == null)
                        {
                            continue;
                        }
                    }
                    PlayerInfo playerInfo = new PlayerInfo();
                    playerInfo.obj                = player.get_gameObject();
                    playerInfo.animator           = player.animator;
                    playerInfo.originalController = player.animator.get_runtimeAnimatorController();
                    playerInfo.keyData            = playerData;
                    player.ActIdle(false, -1f);
                    player._collider.set_enabled(false);
                    player._rigidbody.set_constraints(126);
                    player._transform.set_position(playerData.startPos);
                    player._transform.set_rotation(Quaternion.AngleAxis(playerData.startAngleY, Vector3.get_up()));
                    player.animator.set_cullingMode(0);
                    player.animator.set_runtimeAnimatorController(playerData.controller);
                    player.animator.Rebind();
                    this.playerInfo[l] = playerInfo;
                }
            }
            for (int num2 = 0; num2 < this.playerInfo.Length; num2++)
            {
                if (this.playerInfo[num2] != null && !(this.playerInfo[num2].obj == null))
                {
                    List <StageObject> playerList = MonoBehaviourSingleton <StageObjectManager> .I.playerList;
                    int i;
                    for (i = 0; i < playerList.Count; i++)
                    {
                        PlayerInfo playerInfo2 = Array.Find(this.playerInfo, delegate(PlayerInfo info)
                        {
                            //IL_0024: Unknown result type (might be due to invalid IL or missing references)
                            if (info == null)
                            {
                                return(false);
                            }
                            return(info.obj == playerList[i].get_gameObject());
                        });
                        if (playerInfo2 == null)
                        {
                            playerList[i].get_gameObject().SetActive(false);
                        }
                    }
                    List <StageObject> npcList = MonoBehaviourSingleton <StageObjectManager> .I.nonplayerList;
                    int j;
                    for (j = 0; j < npcList.Count; j++)
                    {
                        PlayerInfo playerInfo3 = Array.Find(this.playerInfo, delegate(PlayerInfo info)
                        {
                            //IL_0024: Unknown result type (might be due to invalid IL or missing references)
                            if (info == null)
                            {
                                return(false);
                            }
                            return(info.obj == npcList[j].get_gameObject());
                        });
                        if (playerInfo3 == null)
                        {
                            npcList[j].get_gameObject().SetActive(false);
                        }
                    }
                }
            }
            if (cutSceneData.enemyData != null && MonoBehaviourSingleton <StageObjectManager> .IsValid())
            {
                CutSceneData.EnemyData enemyData = cutSceneData.enemyData;
                EnemyInfo enemyInfo = new EnemyInfo();
                Debug.Log((object)enemyData.startPos.y);
                Enemy boss = MonoBehaviourSingleton <StageObjectManager> .I.boss;
                enemyInfo.obj                = boss.get_gameObject();
                enemyInfo.animator           = boss.animator;
                enemyInfo.originalController = boss.animator.get_runtimeAnimatorController();
                enemyInfo.keyData            = enemyData;
                this.enemyInfo               = enemyInfo;
                if (boss.controller != null)
                {
                    boss.controller.set_enabled(false);
                    if (boss._rigidbody != null)
                    {
                        boss._rigidbody.set_constraints(126);
                    }
                }
                boss.ActIdle(false, -1f);
                boss.animator.set_cullingMode(0);
                boss.animator.set_runtimeAnimatorController(enemyData.controller);
                boss.animator.Rebind();
                boss._transform.set_position(enemyData.startPos);
                boss._transform.set_rotation(Quaternion.AngleAxis(enemyData.startAngleY, Vector3.get_up()));
                boss.animator.Play(CUT_STATE_HASH[cutNo]);
            }
            for (int num3 = 0; num3 < actorInfo.Length; num3++)
            {
                if (actorInfo[num3] != null)
                {
                    actorInfo[num3].obj.SetActive(true);
                    bool flag = actorInfo[num3].animator.HasState(0, CUT_STATE_HASH[cutNo]);
                    if (flag)
                    {
                        actorInfo[num3].obj.SetActive(flag);
                        CutSceneData.ActorData keyData = actorInfo[num3].keyData;
                        Transform parentNode           = GetParentNode(keyData.attachmentType, keyData.nodeName);
                        if (parentNode != null)
                        {
                            actorInfo[num3].obj.get_transform().set_parent(parentNode);
                        }
                        actorInfo[num3].obj.get_transform().set_localPosition(keyData.position);
                        actorInfo[num3].obj.get_transform().set_localRotation(Quaternion.Euler(keyData.rotation));
                        SkinnedMeshRenderer[] componentsInChildren = actorInfo[num3].obj.GetComponentsInChildren <SkinnedMeshRenderer>();
                        for (int num4 = 0; num4 < componentsInChildren.Length; num4++)
                        {
                            componentsInChildren[num4].set_localBounds(new Bounds(Vector3.get_zero(), Vector3.get_one() * 10000f));
                        }
                        actorInfo[num3].animator.Play(CUT_STATE_HASH[cutNo]);
                    }
                }
            }
        }
    }
Ejemplo n.º 3
0
    private IEnumerator InitImpl(string cutSceneDataPath, Action <bool> _onComplete)
    {
        LoadingQueue loadQueue = new LoadingQueue(this);

        if (!string.IsNullOrEmpty(cutSceneDataPath))
        {
            LoadObject loadedCutSceneObj = loadQueue.Load(RESOURCE_CATEGORY.CUTSCENE, cutSceneDataPath, false);
            if (loadQueue.IsLoading())
            {
                yield return((object)loadQueue.Wait());
            }
            cutSceneData = (loadedCutSceneObj.loadedObject as CutSceneData);
        }
        if (cutSceneData == null)
        {
            _onComplete?.Invoke(false);
        }
        else
        {
            for (int n = 0; n < cutSceneData.seDataList.Count; n++)
            {
                loadQueue.CacheSE(cutSceneData.seDataList[n].seId, null);
            }
            for (int m = 0; m < cutSceneData.effectKeyData.Count; m++)
            {
                loadQueue.CacheEffect(RESOURCE_CATEGORY.EFFECT_ACTION, cutSceneData.effectKeyData[m].effectId);
            }
            for (int k = 0; k < 2; k++)
            {
                if (cameras[k] == null)
                {
                    CutSceneCamera cutSceneCamera = new CutSceneCamera();
                    GameObject     cameraObj      = new GameObject("cut_scene_camera_ " + k.ToString());
                    cutSceneCamera.camera    = cameraObj.AddComponent <Camera>();
                    cutSceneCamera.transform = cameraObj.get_transform();
                    cutSceneCamera.transform.set_parent(_transform);
                    cameraObj.SetActive(false);
                    cameras[k] = cutSceneCamera;
                }
            }
            playerInfo = new PlayerInfo[4];
            enemyInfo  = new EnemyInfo();
            actorInfo  = new ActorInfo[cutSceneData.actorData.Length];
            effectInfo = new EffectInfo[cutSceneData.effectKeyData.Count];
            seInfo     = new SeInfo[cutSceneData.seDataList.Count];
            for (int l = 0; l < cutSceneData.actorData.Length; l++)
            {
                CutSceneData.ActorData actorData = cutSceneData.actorData[l];
                actorInfo[l]         = new ActorInfo();
                actorInfo[l].keyData = actorData;
                actorInfo[l].obj     = Object.Instantiate <GameObject>(actorData.prefab);
                actorInfo[l].obj.get_transform().set_parent(_transform);
                actorInfo[l].animator = actorInfo[l].obj.GetComponent <Animator>();
                actorInfo[l].animator.set_cullingMode(0);
                actorInfo[l].animator.set_runtimeAnimatorController(actorData.animatorController);
                actorInfo[l].animator.Rebind();
                actorInfo[l].obj.SetActive(false);
            }
            for (int j = 0; j < cutSceneData.effectKeyData.Count; j++)
            {
                EffectInfo effect = new EffectInfo
                {
                    keyData = cutSceneData.effectKeyData[j]
                };
                effectInfo[j] = effect;
            }
            for (int i = 0; i < cutSceneData.seDataList.Count; i++)
            {
                SeInfo se = new SeInfo
                {
                    keyData = cutSceneData.seDataList[i]
                };
                seInfo[i] = se;
            }
            if (loadQueue.IsLoading())
            {
                yield return((object)loadQueue.Wait());
            }
            _onComplete?.Invoke(true);
        }
    }