private RaycastObjectInfo GetRaycastInfo(bool isHit, RaycastHit hit, RaycastObjectInfo info) { if (!isHit) { return(new RaycastObjectInfo()); } GameObject hitObj = hit.collider.gameObject; OvrAvatar ovrAvatar = hitObj.GetComponent <OvrAvatar>(); if (ovrAvatar == null) { ovrAvatar = hitObj.GetComponentInParent <OvrAvatar>(); } if (ovrAvatar != null) { info.ObjectName = "Player Avatar"; info.OriginalObjectOwner = photonToParticipantDictionary[ovrAvatar.GetComponent <PhotonView>().Owner.ActorNumber].ToString(); info.ObjectOwner = info.OriginalObjectOwner; info.ObjectID = ""; return(info); } Chart chart = hitObj.GetComponent <Chart>(); if (chart == null) { chart = hitObj.GetComponentInParent <Chart>(); } if (chart != null) { info.ObjectName = "Chart"; info.OriginalObjectOwner = photonToParticipantDictionary[chart.OriginalOwner.ActorNumber].ToString(); info.ObjectOwner = photonToParticipantDictionary[chart.photonView.OwnerActorNr].ToString(); info.ObjectID = chart.ID; return(info); } Panel panel = hitObj.GetComponent <Panel>(); if (panel == null) { panel = hitObj.GetComponentInParent <Panel>(); } if (panel != null) { info.ObjectName = "Panel"; info.OriginalObjectOwner = photonToParticipantDictionary[panel.OriginalOwner.ActorNumber].ToString(); info.ObjectOwner = info.OriginalObjectOwner; info.ObjectID = ""; return(info); } return(new RaycastObjectInfo()); }
private void LogPlayerData(PhotonMessageInfo info) { if (isLogging && playerStreamWriter != null) { headPos = headset.position; headRot = headset.rotation; leftPos = leftController.position; leftRot = leftController.rotation; rightPos = rightController.position; rightRot = rightController.rotation; gazeHit = Physics.Raycast(headset.position, headset.forward, out gazeRaycast); leftHit = Physics.Raycast(leftController.position, leftController.forward, out leftRaycast); rightHit = Physics.Raycast(rightController.position, rightController.forward, out rightRaycast); gazeInfo = GetRaycastInfo(gazeHit, gazeRaycast, gazeInfo); leftInfo = GetRaycastInfo(leftHit, leftRaycast, leftInfo); rightInfo = GetRaycastInfo(rightHit, rightRaycast, rightInfo); playerStreamWriter.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}\t{11}\t{12}\t{13}\t{14}\t{15}\t{16}\t{17}\t{18}\t{19}\t{20}\t{21}\t{22}\t{23}\t{24}\t{25}\t{26}\t{27}\t{28}\t{29}" + "\t{30}\t{31}\t{32}\t{33}\t{34}\t{35}\t{36}\t{37}\t{38}\t{39}\t{40}\t{41}", (info.SentServerTime - startTime).ToString("F3"), // Head position headPos.x.ToString(format), headPos.y.ToString(format), headPos.z.ToString(format), // Head rotation headRot.x.ToString(format), headRot.y.ToString(format), headRot.z.ToString(format), headRot.w.ToString(format), // Left controller position leftPos.x.ToString(format), leftPos.y.ToString(format), leftPos.z.ToString(format), // Left controller rotation leftRot.x.ToString(format), leftRot.y.ToString(format), leftRot.z.ToString(format), leftRot.w.ToString(format), // Left controller events leftControllerEvents.triggerClicked.ToString(), leftControllerEvents.gripClicked.ToString(), leftControllerEvents.touchpadPressed.ToString(), leftControllerEvents.touchpadPressed ? leftControllerEvents.GetTouchpadAxisAngle().ToString(format) : "-1", // Right controller position rightPos.x.ToString(format), rightPos.y.ToString(format), rightPos.z.ToString(format), // Right controller rotation rightRot.x.ToString(format), rightRot.y.ToString(format), rightRot.z.ToString(format), rightRot.w.ToString(format), // Right controller events rightControllerEvents.triggerClicked.ToString(), rightControllerEvents.gripClicked.ToString(), rightControllerEvents.touchpadPressed.ToString(), rightControllerEvents.touchpadPressed ? rightControllerEvents.GetTouchpadAxisAngle().ToString(format) : "-1", // Raycasting gazeInfo.ObjectName, gazeInfo.OriginalObjectOwner, gazeInfo.ObjectOwner, gazeInfo.ObjectID, leftInfo.ObjectName, leftInfo.OriginalObjectOwner, leftInfo.ObjectOwner, leftInfo.ObjectID, rightInfo.ObjectName, rightInfo.OriginalObjectOwner, rightInfo.ObjectOwner, rightInfo.ObjectID ); playerStreamWriter.Flush(); } }