示例#1
0
        public void Process(Component[] comps)
        {
            float uniformScale = room.UniformScale;

            for (int i = 0; i < comps.Length; i++)
            {
                Component comp = comps[i];
                if (!comp)
                {
                    continue;
                }

                if (comp is JanusVREntryPortal)
                {
                    JanusVREntryPortal portal          = (JanusVREntryPortal)comp;
                    Transform          portalTransform = portal.transform;

                    Vector3 portalPos = JanusUtil.ConvertPosition(portal.GetJanusPosition(), uniformScale);
                    Vector3 xDir, yDir, zDir;

                    Quaternion rot = portalTransform.rotation;
                    //rot.eulerAngles += new Vector3(0, 180, 0);
                    JanusUtil.GetJanusVectors(rot, out xDir, out yDir, out zDir);

                    room.PortalPos  = portalPos;
                    room.PortalXDir = xDir;
                    room.PortalYDir = yDir;
                    room.PortalZDir = zDir;
                }
                else if (comp is JanusVRLink)
                {
                    JanusVRLink link = (JanusVRLink)comp;

                    Transform trans = link.transform;
                    Vector3   pos = JanusUtil.ConvertPosition(link.GetJanusPosition(), uniformScale);
                    Vector3   sca = trans.localScale;
                    Vector3   xDir, yDir, zDir;
                    JanusUtil.GetJanusVectors(trans.rotation, out xDir, out yDir, out zDir);

                    LinkObject linkObj = new LinkObject();
                    linkObj.pos   = pos;
                    linkObj.xDir  = xDir;
                    linkObj.yDir  = yDir;
                    linkObj.zDir  = zDir;
                    linkObj.col   = link.Color;
                    linkObj.scale = sca;
                    linkObj.url   = link.url;
                    linkObj.title = link.title;
                    //linkObj.image_id = link.url;

                    Material mat = link.meshRenderer.sharedMaterial;
                    Texture  tex = mat.mainTexture;
                    if (tex != null)
                    {
                    }

                    room.AddLinkObject(linkObj);
                }
            }
        }
示例#2
0
 public void AddLinkObject(LinkObject linkObj)
 {
     LinkObjects.Add(linkObj);
     RoomElements.Add(linkObj);
 }