void Update() { if (!isLocalPlayer) { return; } if (Application.isEditor) { 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); } } } else { 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; Pose p = m_ArSpace.ToCloudSpace(camPos, camRot); m_Rotation = p.rotation; m_Position = p.position; if (m_Position != oldPos || m_Rotation != oldRot) { transform.localPosition = m_Position; transform.localRotation = m_Rotation; if (isServer) { UpdateClientsPos(); } else { CmdMove(m_Position, m_Rotation); } } } }