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); } } }
public void SetUnityObj(GameObject obj, JanusRoom room) { unityObj = obj; Transform trans = obj.transform; Vector3 position = trans.position; Quaternion rot = trans.rotation; if (room.UseEulerRotations) { Vector3 euler = JanusUtil.ConvertEulerRotation(rot.eulerAngles); rotation = JanusUtil.FormatVector3(euler, JanusGlobals.DecimalCasesForTransforms); } else { Vector3 xDir = JanusUtil.ConvertDirection(rot * Vector3.right); Vector3 yDir = JanusUtil.ConvertDirection(rot * Vector3.up); Vector3 zDir = JanusUtil.ConvertDirection(rot * Vector3.forward); xdir = JanusUtil.FormatVector3(xDir, JanusGlobals.DecimalCasesForTransforms); ydir = JanusUtil.FormatVector3(yDir, JanusGlobals.DecimalCasesForTransforms); zdir = JanusUtil.FormatVector3(zDir, JanusGlobals.DecimalCasesForTransforms); } pos = JanusUtil.FormatVector3(JanusUtil.ConvertPosition(position, room.UniformScale), JanusGlobals.DecimalCasesForTransforms); Vector3 sca = trans.lossyScale; if (sca.x < 0 || sca.y < 0 || sca.z < 0) { cull_face = "front"; } scale = JanusUtil.FormatVector3(trans.lossyScale * room.UniformScale, JanusGlobals.DecimalCasesForTransforms); if (obj.isStatic && room.LightmapType != LightmapExportType.None) { lighting = false; } else { lighting = true; } }