override protected void Awake() { base.Awake(); _kdTree = KDTree.MakeFromPoints(RailNodes.ToArray()); for (int i = 0; i < CameraTargets.Count; i++) { var railTransform = new GameObject(CameraTargets[i].TargetTransform.name + "_OnRails").transform; _cameraTargetsOnRails.Add( CameraTargets[i], railTransform ); var cameraTarget = ProCamera2D.AddCameraTarget(railTransform); cameraTarget.TargetOffset = CameraTargets[i].TargetOffset; } if (CameraTargets.Count == 0) { enabled = false; } ProCamera2D.AddPreMover(this); Step(); }
/// <summary>Add a target for the camera to follow on rails.</summary> /// <param name="targetTransform">The Transform of the target</param> /// <param name="targetInfluenceH">The influence this target horizontal position should have when calculating the average position of all the targets</param> /// <param name="targetInfluenceV">The influence this target vertical position should have when calculating the average position of all the targets</param> /// <param name="targetOffset">A vector that offsets the target position that the camera will follow</param> /// <param name="duration">The time it takes for this target to reach it's influence. Use for a more progressive transition.</param> public void AddRailsTarget(Transform targetTransform, float targetInfluenceH = 1f, float targetInfluenceV = 1f, Vector2 targetOffset = default(Vector2), float duration = 0f) { if (GetRailsTarget(targetTransform) != null) { return; } var newCameraTarget = new CameraTarget() { TargetTransform = targetTransform, TargetInfluenceH = targetInfluenceH, TargetInfluenceV = targetInfluenceV, TargetOffset = targetOffset }; CameraTargets.Add(newCameraTarget); var railTransform = new GameObject(targetTransform.name + "_OnRails").transform; _cameraTargetsOnRails.Add( newCameraTarget, railTransform ); ProCamera2D.AddCameraTarget(railTransform, targetInfluenceH, targetInfluenceV, duration, targetOffset); enabled = true; }
protected override void OnEnable() { base.OnEnable(); CenterPanTargetOnCamera(1f); ProCamera2D.AddCameraTarget(_panTarget); }
protected override void OnEnable() { base.OnEnable(); _initialCamSize = ProCamera2D.ScreenSizeInWorldCoordinates.y * .5f; ProCamera2D.AddCameraTarget(_panTarget); CenterPanTargetOnCamera(); }
/// <summary>Enables the rails targets. This method is used by the Rails trigger</summary> /// <param name="transitionDuration">The time it takes to enable the targets</param> public void EnableTargets(float transitionDuration = 0f) { for (int i = 0; i < _tempCameraTargets.Count; i++) { ProCamera2D.RemoveCameraTarget(_tempCameraTargets[i].TargetTransform, transitionDuration); ProCamera2D.AddCameraTarget(_cameraTargetsOnRails[CameraTargets[i]], 1, 1, transitionDuration); } _tempCameraTargets.Clear(); }
/// <summary>Disables the rails targets. This method is used by the Rails trigger</summary> /// <param name="transitionDuration">The time it takes to disable the targets</param> public void DisableTargets(float transitionDuration = 0f) { if (_tempCameraTargets.Count != 0) { return; } for (int i = 0; i < _cameraTargetsOnRails.Count; i++) { ProCamera2D.RemoveCameraTarget(_cameraTargetsOnRails[CameraTargets[i]], transitionDuration); _tempCameraTargets.Add(ProCamera2D.AddCameraTarget(CameraTargets[i].TargetTransform, CameraTargets[i].TargetInfluenceH, CameraTargets[i].TargetInfluenceV, transitionDuration, CameraTargets[i].TargetOffset)); } }