ParseRecording() 공개 정적인 메소드

Parses a Recording from saved JSON string
public static ParseRecording ( string jsonRecording ) : Recording,
jsonRecording string /// JSON recording ///
리턴 Recording,
예제 #1
0
    private IEnumerator Player()
    {
        Recording recording = playerVCR.GetRecording();

        if (recording == null)
        {
            yield break;
        }

        Debug.Log(recording.ToString());
        curPlayer = (InputVCR)Instantiate(playbackCharacterPrefab, recordingStartPos, recordingStartRot);
        curPlayer.Play(Recording.ParseRecording(recording.ToString()));
        SwapTex();

        float playTime = recording.recordingLength;
        float curTime  = 0f;

        isPlaying = true;
        while (curTime < playTime)
        {
            if (isPlaying)
            {
                curTime += Time.deltaTime;
            }

            yield return(0);
        }

        // Play finished
        isPlaying = false;
        Destroy(curPlayer.gameObject);
        curPlayer = null;
        SwapTex();
    }
예제 #2
0
    private void LoadNextTest()
    {
        string path;

        if (Params.TESTS[currentTest] == "Volley_Test" || Params.TESTS[currentTest] == "Send_Shoot_Test")
        {
            path = String.Format("exports/Recordings/Tests/{0}_{1}.json", Params.TESTS[currentTest], playerId);
        }
        else
        {
            path = String.Format("exports/Recordings/Tests/{0}.json", Params.TESTS[currentTest]);
        }

        using (StreamReader r = new StreamReader(path))
        {
            string    json      = r.ReadToEnd();
            Recording recording = Recording.ParseRecording(json);
            StartPlayback(recording);
        }
    }
예제 #3
0
        private IEnumerator Player()
        {
            // Get the previous recording
            Recording recording = playerVCR.GetRecording();

            // Gets selected length and cuts it down if too long
            int framePos = recording.frames.Count - playFrom;

            if (framePos != 0)
            {
                recording.frames.RemoveRange(0, framePos);
            }

            playFrom = 0;

            Debug.Log("Testing - There are " + recording.frames.Count + " recorded! - Spawning");

            // Add previous recording to list
            playerRecordings.Add(recording);

            // Start new recording after delay
            StartCoroutine(StartRecordingDelay(2f));


            if (recording == null)
            {
                yield break;
            }

            Debug.Log("Recording Start Pos: " + recordingStartPos + " Recording Start Rot: " + recordingStartRot);
            Debug.Log("Num of Frames Rec: " + recording.frames.Count);

            // Creates the clone
            Debug.Log(recording.ToString());
            curPlayer = Instantiate(GameObject.Find("Player"));
            curPlayer.GetComponent <PlayerBehaviour>().isClone = true;

            Destroy(curPlayer.GetComponent <playerTutorial>());
            curPlayer.GetComponent <Timeline>().mode           = TimelineMode.Global;
            curPlayer.GetComponent <Timeline>().globalClockKey = "RecordedClones";
            curPlayer.transform.Find("Animator").GetComponent <Timeline>().mode           = TimelineMode.Global;
            curPlayer.transform.Find("Animator").GetComponent <Timeline>().globalClockKey = "RecordedClones";
            curPlayer.GetComponent <PlayerBehaviour>().ResetRigidBody();

            curPlayer.tag = "RecordedPlayer";

            curPlayer.transform.Find("Camera").gameObject.SetActive(false);
            Destroy(curPlayer.transform.Find("InputRecorder").gameObject);

            GameObject displayName, cloneDigitalCode;

            displayName = Instantiate(displayNameObject);
            displayName.transform.SetParent(curPlayer.transform);
            displayName.transform.rectTransform().localPosition = new Vector3(0, 2.079996f, 0);
            displayName.name = "DisplayInfoAbove";


            Material[] ghostMaterials = new Material[] { ghostMaterial, ghostMaterial, ghostMaterial, ghostMaterial, ghostMaterial, ghostMaterial, ghostMaterial };

            curPlayer.transform.FindDeepChild("VBOT_:VBOT_LOD3").transform.parent = curPlayer.transform.Find("Animator");
            curPlayer.transform.FindDeepChild("VBOT_:VBOT_LOD3").GetComponent <Renderer>().materials = ghostMaterials;
            curPlayer.transform.FindDeepChild("VBOT_:VBOT_LOD3").gameObject.AddComponent <Outline>();
            curPlayer.transform.FindDeepChild("VBOT_:VBOT_LOD3").name = "PlayerMesh";
            Destroy(curPlayer.transform.FindDeepChild("Mesh_LOD").gameObject);

            cloneDigitalCode = Instantiate(cloneDigitalCodeObject);
            cloneDigitalCode.transform.SetParent(curPlayer.gameObject.transform.FindDeepChild("PlayerMesh"), false);
            cloneDigitalCode.name = "DigitalCodeGhostParticles";


            // Sets the starting camera rotation
            float cameraX = playerVCR.gameObject.transform.FindDeepChild("Z").transform.rotation.x;
            float cameraZ = playerVCR.gameObject.transform.FindDeepChild("Y").transform.rotation.y;

            curPlayer.gameObject.GetComponent <CameraBehaviour>().SetRotationX(cameraX);
            curPlayer.gameObject.GetComponent <CameraBehaviour>().SetRotationZ(cameraZ);

            // Set Health & Energy
            curPlayer.gameObject.GetComponent <PlayerBehaviour>().life   = playerVCR.gameObject.GetComponent <PlayerBehaviour>().life;
            curPlayer.gameObject.GetComponent <PlayerBehaviour>().energy = playerVCR.gameObject.GetComponent <PlayerBehaviour>().energy;


            curPlayer.GetComponent <InputVCR>().Play(Recording.ParseRecording(recording.ToString()));

            recPlayerNum++;
            curPlayer.name = "RecordedPlayer" + recPlayerNum;

            curPlayer.GetComponent <InputVCR>().recordingNumber = recPlayerNum;
            curPlayer.GetComponent <InputVCR>().startPos        = recordingStartPos;
            curPlayer.GetComponent <InputVCR>().startRot        = recordingStartRot;

            displayName.transform.FindDeepChild("RecordingNumber").GetComponent <FaceObject>().SetRecordingText(curPlayer.gameObject.GetComponent <InputVCR>().recordingNumber);

            CreateCurrentCloneCopy();

            float playTime = recording.recordingLength;
            float curTime  = 0f;

            isPlaying = true;
            while (curTime < playTime)
            {
                if (isPlaying)
                {
                    curTime += Time.deltaTime;
                }

                yield return(0);
            }
        }
예제 #4
0
 private void ExecuteControls()
 {
     if (Input.GetKeyDown(KeyCode.A))
     {
         playerAIEnabled = true;
         CmdTeamAIActivate(true);
     }
     if (Input.GetKeyDown(KeyCode.Y))
     {
         CmdRequestOffensiveTroopSpawn(0, 0);
     }
     else if (Input.GetKeyDown(KeyCode.J))
     {
         CmdRequestOffensiveTroopSpawn(0, 1);
     }
     else if (Input.GetKeyDown(KeyCode.N))
     {
         CmdRequestOffensiveTroopSpawn(0, 2);
     }
     else if (Input.GetKeyDown(KeyCode.B))
     {
         CmdRequestOffensiveTroopSpawn(0, 3);
     }
     else if (Input.GetKeyDown(KeyCode.G))
     {
         CmdRequestOffensiveTroopSpawn(0, 4);
     }
     else if (playbackTester.GetKeyDown(Params.SK_KEY) || playbackTester.GetKeyDown(Params.SK_KEY_ALT))
     {
         CmdRequestOffensiveTroopSpawn(0, laneId);
     }
     else if (playbackTester.GetKeyDown(Params.VOLLEY_KEY) || playbackTester.GetKeyDown(Params.VOLLEY_KEY_ALT))
     {
         CmdVolley();
     }
     else if (playbackTester.GetKeyDown(Params.LEFT_KEY))
     {
         crossbowMotor.MoveLeft();
     }
     else if (playbackTester.GetKeyDown(Params.RIGHT_KEY))
     {
         crossbowMotor.MoveRight();
     }
     else if (playbackTester.GetKeyDown(Params.SHOOT_KEY))
     {
         Shoot();
     }
     else if (Input.GetKeyDown(Params.START_RECORDING_KEY))
     {
         CmdStartRecording();
     }
     else if (Input.GetKeyDown(Params.STOP_RECORDING_KEY))
     {
         CmdStopRecording();
     }
     else if (Input.GetKeyDown(Params.PLAYBACK_KEY))
     {
         string path = String.Format("exports/player{0}.json", id);
         Debug.Log("attempt to playback: " + path);
         using (StreamReader r = new StreamReader(path))
         {
             string    json      = r.ReadToEnd();
             Recording recording = Recording.ParseRecording(json);
             playbackTester.StartPlayback(recording);
         }
     }
     else if (Input.GetKeyDown(Params.TEST_KEY))
     {
         CmdStartTesting();
     }
 }