protected override void Awake() { base.Awake(); _mainCamera = Camera.main; _offsetOnPullToCamera = GalaxyExplorerManager.ForcePullToCamFixedDistance; _manipulationHandler = ManipulationHandler ? ManipulationHandler : GetComponentInChildren <ManipulationHandler>(); Debug.Assert(_manipulationHandler != null, "Force Solver failed to find a manipulation handler"); _attractionCollider = AttractionCollider ? AttractionCollider : GetComponentInChildren <Collider>(); Debug.Assert(_attractionCollider != null, "Force Solver failed to find a attraction collider"); _manipulationHandler.OnManipulationEnded.AddListener(OnManipulationEnd); if (ControllerTracker == null) { Debug.LogWarning(gameObject.name + " ForceSolver no controller tracker transform supplied will instantiate locally"); var controllerTrackerObject = new GameObject(gameObject.name + " ForceSolver autogenerated controller tracker"); ControllerTracker = controllerTrackerObject.AddComponent <ControllerTransformTracker>(); } ControllerTracker.AllTrackingLost += OnControllersLost; }
protected override void Awake() { base.Awake(); _handler = GetComponent <SolverHandler>(); Debug.Assert(_handler != null); if (_controllerTracker == null) { Debug.LogWarning("AttachToControllerSolver missing controller tracker, will create own instance"); _controllerTracker = gameObject.AddComponent <ControllerTransformTracker>(); } switch (_handedness) { case Handedness.None: case Handedness.Other: break; case Handedness.Left: _controllerTracker.LeftTrackingUpdated += UpdateTrackedTransform; _controllerTracker.LeftTrackingLost += LostTracking; break; case Handedness.Right: _controllerTracker.RightTrackingUpdated += UpdateTrackedTransform; _controllerTracker.RightTrackingLost += LostTracking; break; case Handedness.Both: case Handedness.Any: _controllerTracker.TrackingUpdated += UpdateTrackedTransform; _controllerTracker.AllTrackingLost += LostTracking; break; default: throw new ArgumentOutOfRangeException(); } }