void Update() { if (!isLocalPlayer) { return; } #if UNITY_EDITOR || UNITY_STANDALONE var x = Input.GetAxis("Horizontal") * Time.deltaTime * 150.0f; var z = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; Vector3 oldPos = transform.position; Quaternion oldRot = transform.rotation; transform.Rotate(0, x, 0); transform.Translate(0, 0, z); m_Position = transform.position; m_Rotation = transform.rotation; if (m_Position != oldPos || m_Rotation != oldRot) { m_MainCamera.transform.position = m_Position; m_MainCamera.transform.rotation = m_Rotation; if (isServer) { UpdateClientsPos(); } else { CmdMove(m_Position, m_Rotation); } } #elif UNITY_IOS || UNITY_ANDROID Vector3 oldPos = transform.localPosition; Quaternion oldRot = transform.localRotation; Vector3 camPos = m_MainCamera.transform.position; Quaternion camRot = m_MainCamera.transform.rotation; camPos += m_MainCamera.transform.up * .2f; Matrix4x4 cloudSpace = ARHelper.ToCloudSpace(camPos, camRot, m_Loc.position, m_Loc.rotation); m_Rotation = cloudSpace.rotation; m_Position = cloudSpace.GetColumn(3); if (m_Position != oldPos || m_Rotation != oldRot) { transform.localPosition = m_Position; transform.localRotation = m_Rotation; if (isServer) { UpdateClientsPos(); } else { CmdMove(m_Position, m_Rotation); } } #endif }