//! function parsing received message and executing change //! @param message message string received by server public void parseTransformation(string message) { string[] splitMessage = message.Split('|'); if (splitMessage.Length > 1) { if (splitMessage[2] == "cam") { if (!camObject.GetComponent <Renderer>().enabled) { camObject.GetComponent <Renderer>().enabled = true; } lastNcamReceivedTime = Time.time; switch (splitMessage[1]) { case "t": if (splitMessage.Length == 6) { if (receiveNcam) { Camera.main.transform.position = new Vector3(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); } else { camObject.position = new Vector3(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); } } break; case "r": if (splitMessage.Length == 7) { Quaternion quat = new Quaternion(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5]), float.Parse(splitMessage[6])); Vector3 rot = quat.eulerAngles; if (receiveNcam) { Camera.main.transform.rotation = Quaternion.Euler(new Vector3(rot.x, -rot.y, -rot.z + 180)); } else { camObject.rotation = Quaternion.Euler(new Vector3(rot.x, -rot.y, -rot.z + 180)); } } break; case "f": if (splitMessage.Length == 4) { if (receiveNcam) { Camera.main.fieldOfView = float.Parse(splitMessage[3]); } } break; default: break; } } else { Transform obj = getOjectFromString(splitMessage[2]); if (obj && obj != currentlyLockedObject && splitMessage[0] != id) { switch (splitMessage[1]) { case "t": if (splitMessage.Length == 6) { if (obj.GetComponent <SceneObject>()) { obj.GetComponent <SceneObject>().tempLock = true; } try { // obj.position = new Vector3(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); obj.localPosition = new Vector3(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); } catch {} } break; case "r": if (splitMessage.Length == 7) { if (obj.GetComponent <SceneObject>()) { obj.GetComponent <SceneObject>().tempLock = true; } try { // obj.rotation = new Quaternion(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5]), float.Parse(splitMessage[6])); obj.localRotation = new Quaternion(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5]), float.Parse(splitMessage[6])); } catch {} } break; case "s": if (splitMessage.Length == 6) { try { obj.localScale = new Vector3(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); } catch {} } break; case "c": if (splitMessage.Length == 6) { try { obj.GetChild(0).GetComponent <Light>().color = new Color(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); //obj.GetComponent<Light>().color = new Color(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); //obj.GetChild(0).GetComponent<Renderer>().material.color = new Color(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5])); } catch {} } break; case "i": if (splitMessage.Length == 4) { try { obj.GetChild(0).GetComponent <Light>().intensity = float.Parse(splitMessage[3]); } catch {} } break; case "a": if (splitMessage.Length == 4) { try { obj.GetChild(0).GetComponent <Light>().spotAngle = float.Parse(splitMessage[3]); } catch {} } break; case "d": if (splitMessage.Length == 4) { try { obj.GetChild(0).GetComponent <Light>().range = float.Parse(splitMessage[3]); } catch {} } break; case "k": if (splitMessage.Length == 4) { try { obj.GetComponent <SceneObject>().setKinematic(bool.Parse(splitMessage[3]), false); } catch {} } break; case "l": if (splitMessage.Length == 4) { if (bool.Parse(splitMessage[3])) { mainController.unselectIfSelected(obj); } } try { obj.GetComponent <SceneObject>().locked = bool.Parse(splitMessage[3]); } catch {} break; case "b": // move bbox/collider if (splitMessage.Length == 6) { try { obj.GetComponent <SceneObject>().colliderOffset(new Vector3(float.Parse(splitMessage[3]), float.Parse(splitMessage[4]), float.Parse(splitMessage[5]))); } catch { } } break; case "m": // trigger mocap data if (splitMessage.Length == 4 && obj.GetComponent <SceneObjectServer>() != null) { try { obj.GetComponent <SceneObjectServer>().AnimatorCommand(int.Parse(splitMessage[3])); } catch { } } break; default: break; } } } } }