Ejemplo n.º 1
0
        /// <summary>
        /// 开启主相机绕指定点旋转 注意:不要设置在有自转的Transform下
        /// </summary>
        /// <param name="cameraRotateCenter">相机对准物体</param>
        /// <param name="speed"></param>
        public void StartCameraRotateWithCenter(Transform cameraCenter, float duration = 0.5f)
        {
            StopCameraRotateWithCenter();

            if (mainCamera == null)
            {
                mainCamera = MUtility.MainCamera;
            }

            cameraLookToCenter = cameraCenter.gameObject;

            tween =

                //朝向开启再旋转
                mainCamera.transform.DOLookAt(cameraLookToCenter.transform.position, duration).OnComplete(() =>
            {
                dragMouseOrbit = new DragMouseOrbit(cameraCenter, mainCamera.transform);

                EventCameraRotate.AddListener(RotateCameraToCenter);

                mBehaviour = new MBehaviour(ExecutionPriority.High);

                mBehaviour.OnUpdate_MBehaviour(() =>
                {
                    RotateCameraToCenter(inputPointPos);
                });


                isRotateCameraWithCenter = true;

                isRotateCameraWithCenterInitialization = true;

                RotateAndZoomManager.IsDone_StartCameraAroundCenter_Initialization = true;
            });
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 相机绕点转的暂停和重启方法
 /// </summary>
 /// <param name="isenable"></param>
 public void PauseOrRestart_CameraRotateSelf(bool isenable)
 {
     if (!isCameraRotateSelfInitialization)
     {
         return;
     }
     if (isenable)
     {
         EventCameraRotate.AddListener(RotateCameraSelf);
     }
     else
     {
         EventCameraRotate.RemoveListener(RotateCameraSelf);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 相机绕点转的暂停和重启方法
 /// </summary>
 /// <param name="isenable"></param>
 public void PauseOrRestart(bool isenable)
 {
     if (!isRotateCameraWithCenterInitialization)
     {
         return;
     }
     if (isenable)
     {
         EventCameraRotate.AddListener(RotateCameraToCenter);
         mBehaviour.IsEnable = true;
     }
     else
     {
         EventCameraRotate.RemoveListener(RotateCameraToCenter);
         mBehaviour.IsEnable = false;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 开启主相机 绕自身轴转
        /// </summary>
        public void StartCameraSelfRotate()
        {
            rotateCore = new RotateCore();

            if (mainCamera == null)
            {
                mainCamera = MUtility.MainCamera;
            }

            if (otherHelpCameraSelfRotate == null)
            {
                otherHelpCameraSelfRotate = new OtherRotateHelp(cameraSelfRotateXlimits, cameraSelfRotateYlimits, rotateCameraSelfSpeed);
            }

            EventCameraRotate.AddListener(RotateCameraSelf);

            isSelfRotateCameraEnable = true;

            isCameraRotateSelfInitialization = true;
        }
Ejemplo n.º 5
0
        public void StartCameraRotateWithCenter(Transform cameraCenter, Vector3 camerainitialpos, Quaternion camerainitialqua, float duration = 0.5f)
        {
            StopCameraRotateWithCenter();

            if (mainCamera == null)
            {
                mainCamera = MUtility.MainCamera;
            }

            cameraLookToCenter = cameraCenter.gameObject;

            //开启初始化相机位置和角度

            tween =

                mainCamera.transform.DOMove(camerainitialpos, duration / 3);

            mainCamera.transform.DORotate(camerainitialqua.eulerAngles, duration / 3).OnComplete(() =>
            {
                mainCamera.transform.DOLookAt(cameraCenter.transform.position, duration / 3).OnComplete(() =>
                {
                    dragMouseOrbit = new DragMouseOrbit(cameraCenter, mainCamera.transform);

                    EventCameraRotate.AddListener(RotateCameraToCenter);

                    mBehaviour = new MBehaviour(ExecutionPriority.High);

                    mBehaviour.OnUpdate_MBehaviour(() =>
                    {
                        RotateCameraToCenter(inputPointPos);
                    });

                    isRotateCameraWithCenter = true;

                    isRotateCameraWithCenterInitialization = true;

                    RotateAndZoomManager.IsDone_StartCameraAroundCenter_Initialization = true;
                });
            });
        }
Ejemplo n.º 6
0
    void ontest()
    {
        gameObject.AddGrabObject(onGrab);
        gameObject.RemoveGrabObject(onGrab);
        gameObject.RemoveGrabObjectAll();

        gameObject.AddReleaseObject(OnRelease);
        gameObject.RemoveReleaseObject(OnRelease);
        gameObject.RemoveReleaseObjectAll();

        gameObject.AddRayTargetEnter(OnTargetEnter);
        gameObject.RemoveRayTargetEnter(OnTargetEnter);
        gameObject.RemoveRayTargetEnter();


        gameObject.AddRayTargetExit(OnTargetExit);
        gameObject.RemoveRayTargetExit();
        gameObject.RemoveRayTargetExit(OnTargetExit);


        EventHandRay.AddListener(onRay);
        EventHandRay.RemoveListener(onRay);

        EventHandRays.AddListener(OnRays);
        EventHandRays.RemoveListener(OnRays);

        EventHandStart.AddListener(onstart);
        EventHandStart.RemoveListener(onstart);

        EventHandStop.AddListener(onstop);
        EventHandStop.RemoveListener(onstop);

        EventHandUIRay.AddListener(onRay);
        EventHandUIRay.RemoveListener(onRay);

        EventCameraZoom.AddListener(onzoom);
        EventCameraZoom.RemoveListener(onzoom);

        EventCameraRotate.AddListener(onrotate);
        EventCameraRotate.RemoveListener(onrotate);

        EventHandGrabObject.AddListener(ongrabobject);
        EventHandGrabObject.RemoveListener(ongrabobject);

        EventHandReleaseObject.AddListener(onreleaseobject);
        EventHandReleaseObject.RemoveListener(onreleaseobject);

        EventHandGrabObjectKey.AddListener(gameObject, onGrab);
        EventHandGrabObjectKey.RemoveListener(gameObject, onGrab);

        EventHandReleaseObjectKey.AddListener(gameObject, OnRelease);
        EventHandReleaseObjectKey.RemoveListener(gameObject, OnRelease);

        EventHandRayTarget.AddListener(onraytarget);
        EventHandRayTarget.RemoveListener(onraytarget);

        EventHandRayTargetEnter.AddListener(gameObject, OnTargetEnter);
        EventHandRayTargetEnter.RemoveListener(gameObject, OnTargetEnter);

        EventHandRayTargetExit.AddListener(gameObject, OnTargetExit);
        EventHandRayTargetExit.RemoveListener(gameObject, OnTargetExit);

        EventHandUIRayEnter.AddListener(gameObject, onuienter);
        EventHandUIRayEnter.RemoveListener(gameObject, onuienter);

        EventHandUIRayExit.AddListener(gameObject, onuiexit);
        EventHandUIRayExit.RemoveListener(gameObject, onuiexit);

        EventHandUIRay.AddListener(onRay);
        EventHandUIRay.RemoveListener(onRay);
    }