//////////////////////////////////////////////////////////////////////// // BUILDING STRUCTURE //////////////////////////////////////////////////////////////////////// internal void AttachGameObject(GameObject _go) { m_worldGameObject = _go; // Attach projector scripts m_directXProjectorController = m_worldGameObject.AddComponent <CSProjectorController>(); m_directXProjectorController.SetIntrinsics( m_dimensions, m_intrinsics); m_directXProjectorController.InvertImage = false; m_directXProjectorController.ID = 0; // TODO: Get from json m_directXProjectorController.InvertImage = true; // Add frustum intersection component m_frustumIntersections = m_worldGameObject.AddComponent <AARGenerateFrustumIntersections>(); // Add projector visualizer GameObject projectorViz = new GameObject("Projector Visualization"); projectorViz.transform.parent = m_worldGameObject.transform; projectorViz.transform.localPosition = Vector3.zero; projectorViz.transform.localRotation = Quaternion.identity; m_projectorVisualizer = projectorViz.AddComponent <Projector>(); m_projectorVisualizer.aspectRatio = m_directXProjectorController.GetAspectRatio(); m_projectorVisualizer.fieldOfView = m_directXProjectorController.GetFoVDegrees(); m_projectorVisualizer.nearClipPlane = 0.01f; m_projectorVisualizer.farClipPlane = m_directXProjectorController.GetIntrinsics().far; m_projectorVisualizer.ignoreLayers = (~0 ^ LayerMask.GetMask("Spatial Awareness")); Material mat = new Material(Shader.Find("AAR/ProjectorVisualizer")); mat.SetTexture("_ShadowTex", m_directXProjectorController.GetActiveRT()); m_projectorVisualizer.material = mat; m_projectorVisualizer.enabled = m_projectorVisualization; }