void initialize() { if (mInitialized) return; if (ARCameraPrefab == null) throw new System.Exception("ARCameraPrefab has to be set in ARScene"); mARCamera = (Instantiate(ARCameraPrefab.gameObject) as GameObject).GetComponent<ARCameraBehaviour>(); mARCamera.name = "ARCamera(Global)"; mARCamera.transform.parent = this.transform; mInitialized = true; ARScene.relocateBehaviour(this); }
ARSceneBehaviour takeOverScene(ARSceneBehaviour previous) { //Ensure that the previous was initialized previous.initialize(); //takeover the old ARCamera mARCamera = previous.mARCamera; mARCamera.transform.parent = this.transform; //Disable the old scene so nothing of it will get in our way previous.gameObject.SetActive(false); previous.clearDataSets(); Destroy(previous.gameObject); //Set this to initialized, otheriwse the next takeover would start an initialization on this mInitialized = true; return this; }
void Awake() { mCamera = this.GetComponent<Camera>(); mCamera.enabled = false; mARCamera = ARScene.Behaviour.ARCameraBehaviour; if (ImprintOnGlobalCamera) { ARCamera.transform.position = transform.position; ARCamera.transform.rotation = transform.rotation; } transform.position = ARCamera.transform.position; transform.rotation = ARCamera.transform.rotation; if (AutoApplyLocalCullingMask) { applyLocalCullingMask(ARCamera.Camera); } mCachedCullingMask = Camera.cullingMask; }