Exemplo n.º 1
0
    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());
    }
Exemplo n.º 2
0
    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();
        }
    }