private void UDPMessageReceivedHandler(NetInMessage message) { message.ResetIndex(); MessageType.Command command = (MessageType.Command)message.ReadInt32(); if (command == MessageType.Command.Data) { for (int i = 0; i < 5; i++) { int fingerIndex = message.ReadInt32(); float plotValue = message.ReadFloat(); FingerForceGraphs[fingerIndex].value = Mathf.FloorToInt(plotValue); forceScalingNoteActivators[fingerIndex].GetComponent <ForceScalingNoteActivatorController>().SetForcePercentage(plotValue); } } else if (command == MessageType.Command.Control) { MessageType.ControlType controlType = (MessageType.ControlType)message.ReadInt32(); if (controlType == MessageType.ControlType.PlaySong) { int songIndex = message.ReadInt32(); audioSource.clip = songList.songs[songIndex].audioClip; audioSource.loop = false; audioSource.Play(); } else if (controlType == MessageType.ControlType.StopSong) { audioSource.Stop(); noteSpawner.DeleteAllNotes(); } else if (controlType == MessageType.ControlType.SpawnNote) { int spawnIndex = message.ReadInt32(); float duration = message.ReadFloat(); Vector3 locationInNoteLane = message.ReadVector3(); noteSpawner.SpawnHoldNote(spawnIndex, locationInNoteLane, duration); } else if (controlType == MessageType.ControlType.SpawnForceScalingNote) { int spawnIndex = message.ReadInt32(); float duration = message.ReadFloat(); Vector3 locationInNoteLane = message.ReadVector3(); float noteScaleX = message.ReadFloat(); noteSpawner.SpawnForceScalingNote(spawnIndex, locationInNoteLane, noteScaleX, duration); } else if (controlType == MessageType.ControlType.InitVisualizations) { for (int i = 0; i < 5; i++) { int fingerIndex = message.ReadInt32(); float minTargetValuePercentage = message.ReadFloat(); float maxTargetValuePercentage = message.ReadFloat(); FingerForceGraphs[fingerIndex].minTargetValue = Mathf.FloorToInt(minTargetValuePercentage); FingerForceGraphs[fingerIndex].maxTargetValue = Mathf.FloorToInt(maxTargetValuePercentage); forceScalingNoteActivators[fingerIndex].GetComponent <ForceScalingNoteActivatorController>().SetForceRangePercentage(minTargetValuePercentage, maxTargetValuePercentage); } } else if (controlType == MessageType.ControlType.PressKey) { KeyCode key = (KeyCode)message.ReadInt32(); CustomInput.PressKey(key); } else if (controlType == MessageType.ControlType.ReleaseKey) { KeyCode key = (KeyCode)message.ReadInt32(); CustomInput.ReleaseKey(key); } else if (controlType == MessageType.ControlType.ChangeForceScalingMode) { int isForceScalingMode = message.ReadInt32(); SetForceScalingModeValue(isForceScalingMode == 1); } } }
private void UDPMessageReceivedHandler(NetInMessage message) { int commandInt = message.ReadInt32(); MessageType.Command command = (MessageType.Command)commandInt; if (command == MessageType.Command.Data) { for (int i = 0; i < 5; i++) { int fin_num = message.ReadInt32(); float velocity = message.ReadFloat(); Cylinders[fin_num].transform.localScale = new Vector3(CyliSize * velocity, 0.003f, CyliSize * velocity); } } else if (command == MessageType.Command.Control) { //MidiDebug.text = "Command: Control"; MessageType.ControlType controlType = (MessageType.ControlType)message.ReadInt32(); if (controlType == MessageType.ControlType.SpawnNote) { int NoteCount = message.ReadInt32(); DestroyScore(Origins); //Debug.Log("notecount = " + NoteCount); //MidiDebug.text = "Control Type: SpawnNote"; for (int i = 0; i < NoteCount - 1; i++) { //Debug.Log(i); Vector3 NoteInfo = message.ReadVector3(); GameObject note = Instantiate(note_obj); note.transform.SetParent(Origins[(int)NoteInfo.x].transform); note.GetComponent <RectTransform>().localPosition = new Vector3(0, NoteInfo.y, 0); note.GetComponent <RectTransform>().sizeDelta = new Vector2(0.02f, NoteInfo.z); note.GetComponent <RectTransform>().localRotation = Quaternion.Euler(Vector3.zero); note.GetComponent <RawImage>().color = FingerColor[(int)NoteInfo.x]; } //MidiDebug.text = "count = " + NoteCount; message.ReadVector3(); int LastTime = message.ReadInt32(); for (int i = 0; i < LastTime; i++) { for (int j = 0; j < 5; j++) { GameObject bar = Instantiate(bar_obj); bar.transform.SetParent(Origins[j].transform); bar.GetComponent <RectTransform>().localPosition = new Vector3(0, i / scale, 0); //bar.GetComponent<RectTransform>().sizeDelta = new Vector2(0.03f, 1 / scale); bar.GetComponent <RectTransform>().localRotation = Quaternion.Euler(Vector3.zero); bar.transform.SetAsFirstSibling(); } } } else if (controlType == MessageType.ControlType.DestroyNote) { } else if (controlType == MessageType.ControlType.PlaySong) { tempo = message.ReadFloat(); GetComponent <Move>().PlayMusic(tempo); } else if (controlType == MessageType.ControlType.StopSong) { GetComponent <Move>().ResetPosition(); } else if (controlType == MessageType.ControlType.ChangeColor) { int fin_num = message.ReadInt32(); Vector3 RGB = message.ReadVector3(); Cylinders[fin_num].GetComponent <Renderer>().material.color = new Color(RGB.x, RGB.y, RGB.z, 1.0f); } else if (controlType == MessageType.ControlType.ChangeTempo) { tempo = message.ReadFloat(); MidiDebug.text = "tempo = " + tempo; GetComponent <Move>().ChangeDy(tempo); } } }
private void UDPMessageReceivedHandler(NetInMessage message) { MessageType.Command command = (MessageType.Command)message.ReadInt32(); if (command == MessageType.Command.Control) { MessageType.ControlType controlType = (MessageType.ControlType)message.ReadInt32(); if (controlType == MessageType.ControlType.SpawnObstacle) { float yPos = message.ReadFloat(); float gapSize = message.ReadFloat(); GameObject obstacleObj = m_obstacleSpawner.SpawnObstacle(yPos, gapSize); Vector3 upperPipeScale = message.ReadVector3(); Vector3 lowerPipeScale = message.ReadVector3(); ObstacleController obstacle = obstacleObj.GetComponent <ObstacleController>(); obstacle.upperPipe.transform.localScale = upperPipeScale; obstacle.lowerPipe.transform.localScale = lowerPipeScale; } else if (controlType == MessageType.ControlType.PlayerPosition) { Vector3 playerPosition = message.ReadVector3(); m_playerController.transform.localPosition = playerPosition; } else if (controlType == MessageType.ControlType.Start) { m_gameState.isGameOver.Value = false; m_gameState.score.Value = 0; m_obstacleSpawner.ResetState(); } else if (controlType == MessageType.ControlType.TriggerGameOver) { m_gameState.isGameOver.Value = true; } else if (controlType == MessageType.ControlType.UpdateScore) { int score = message.ReadInt32(); m_gameState.score.Value = score; } else if (controlType == MessageType.ControlType.ChangeActiveFingers) { int numActiveFingers = message.ReadInt32(); List <int> activeFingers = new List <int>(); for (int i = 0; i < numActiveFingers; i++) { int activeFingerIndex = message.ReadInt32(); activeFingers.Add(activeFingerIndex); } for (int i = 0; i < fingerIndicators.Count; i++) { bool isFingerActive = activeFingers.Contains(i); fingerIndicators[i].IsVisible = isFingerActive; if (isFingerActive) { fingerIndicators[i].SetIsOn(true); } } } } }