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;
        }
示例#3
0
        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));
            }
        }