コード例 #1
0
ファイル: CameraController.cs プロジェクト: Aulbn/TobiiRPG
    public static void ChangeState(CameraArea newArea)
    {
        Instance.cameraArea    = newArea;
        Instance.cameraState   = newArea.cameraState;
        Instance.followSpeed   = newArea.FollowSpeed;
        Instance.rotationSpeed = newArea.RotationSpeed;

        switch (newArea.cameraState)
        {
        case CameraState.Static:
            Instance.followPosition = newArea.CameraPosition;
            Instance.lookAtPosition = newArea.CenterPosition;
            break;

        case CameraState.Follow:
            Instance.followPosition = PlayerController.Instance.transform.position + newArea.CameraOffset;
            Instance.lookAtPosition = PlayerController.Instance.transform.position;
            break;

        case CameraState.SideScroll:
            Instance.followPosition = newArea.CameraPosition;
            Instance.lookAtPosition = newArea.CenterPosition;
            break;

        default:
            break;
        }
    }
コード例 #2
0
ファイル: CameraControl.cs プロジェクト: nsparisi/n3-games
    void OnTriggerEnter(Collider other)
    {
        bool instant = !CurrentCameraArea;

        CameraArea newArea = other.GetComponent <CameraArea>();

        CurrentCameraArea = newArea;
        if (instant)
        {
            if (target)
            {
                Vector3 position = target.transform.position;
                this.transform.position = position;
                position.z = mainCamera.transform.position.z;
                mainCamera.transform.position = position;
                mainCamera.transform.position = RestrictToArea();
            }
        }
        else
        {
            targetCameraPosition      = RestrictToArea();
            movingToTarget            = true;
            GlobalPauser.actionPaused = true;
        }
    }
コード例 #3
0
        private void notifyClose(CameraPathState state, CameraArea area, int now)
        {
            //可以不通过回调
            if (area == null)
            {
                return;
            }

            setCameraState(state, area.from, now, false);
            //switch (state)
            //{
            //    case CameraPathState.State_ExitCurse:
            //        setCameraState(CameraPathState.State_ExitCurse, area.from, now, false);
            //        //funcs.NotifyCurseCamera(area.from, (int)Math.Floor(pos), false);
            //        break;
            //    case CameraPathState.State_ChongCi:
            //        setCameraState(CameraPathState.State_ChongCi, area.from, now, false);
            //        //funcs.NotifyChongCiCamera(area.from, (int)Math.Floor(pos), false);
            //        break;
            //    case CameraPathState.State_GotWinner:
            //        //funcs.NotifyWinnerCamera(area.from, (int)Math.Floor(pos), false);
            //        setCameraState(CameraPathState.State_GotWinner, area.from, now, false);
            //        break;
            //}
        }
コード例 #4
0
        private void applytempState()
        {
            if (tempState != currentstate)
            {
                int now = (int)Math.Floor(pos);
                if (currentTriggerArea != null)
                {
                    notifyClose(currentstate, currentTriggerArea, now);
                }

                currentstate       = tempState;
                currentTriggerArea = tempArea;

                if (currentTriggerArea != null)
                {
                    notifyEnable(currentstate, currentTriggerArea, now);
                }

                laststate       = currentstate;
                lastTriggerArea = currentTriggerArea;
            }
            tempState = currentstate;
            if (currentTriggerArea == null)
            {
                tempState = CameraPathState.None;
            }
        }
コード例 #5
0
ファイル: CameraControl.cs プロジェクト: nsparisi/n3-games
 void OnTriggerStay(Collider other)
 {
     if (!CurrentCameraArea)
     {
         CameraArea newArea = other.GetComponent <CameraArea>();
         CurrentCameraArea = newArea;
     }
 }
コード例 #6
0
    public void Start()
    {
        CombatSystem = GameObject.FindGameObjectWithTag("CombatSystem").GetComponent <CombatSystem>();
        CameraArea   = GetComponentInChildren <CameraArea>();
        Timer        = GetComponent <Timer>();

        Players    = new GameObject[2];
        Players[0] = GameObject.Find("Sield");
        Players[1] = GameObject.Find("Ganiel");
    }
コード例 #7
0
 private CameraArea handle(CameraArea target, List <CameraArea> data, double pos)
 {
     if (target == null)
     {
         foreach (CameraArea effectArea in data)
         {
             if (effectArea.TriggerEffect(pos))
             {
                 target = effectArea;
                 break;
             }
         }
     }
     else
     {
         if (!target.TriggerEffect(pos))
         {
             target = null;
         }
     }
     return(target);
 }
コード例 #8
0
 private void setTempTriggerArea(CameraPathState state, CameraArea area)
 {
     if (area == null)
     {
         if (currentstate == state)
         {
             int uselessInt = -1;
             notifyClose(state, currentTriggerArea, uselessInt);
             currentTriggerArea = null;
         }
         return;
     }
     //define rules to make transisition happen
     if (state > tempState || state == CameraPathState.None)
     {
         if (tempState != state)
         {
             tempState = state;
             tempArea  = area;
         }
     }
 }
コード例 #9
0
ファイル: CameraCtrl_4.cs プロジェクト: FinishProject/Secreto
    public void ActiveSensor_Retuen(int index, GameObject returnObjet)
    {
        switch (index)
        {
            case 1:
                if (returnObjet != null)
                {
                    cameraArea = returnObjet.GetComponent<CameraArea>();
                    playerDistance = cameraArea.playerDistance;
                    camSpeed = cameraArea.camSpeed;
                }
                break;

            case 2:
                if (returnObjet == null)
                {
                    isNearByWall_L = false;
                }
                else
                {
                    isNearByWall_L = true;
                    NearWallDistance = playerDistance;

                    float sensor_L_EndPos = tr.position.x - (tr.position.x - sensorWall_L.transform.position.x) - (sensorWall_L.transform.localScale.x * 0.5f);
                    float wall_L_EndPos = returnObjet.transform.position.x + (returnObjet.transform.localScale.x * 0.5f);
                    NearWallDistance.x = wall_L_EndPos - sensor_L_EndPos;
                    player_L_EndPos = playerTr.position.x;

                    /*
                    NearWallDistance.x +=
                        (returnObjet.transform.position.x - returnObjet.transform.localScale.x * 0.5f)
                        - (sensorWall_R.position.x - sensorWall_R.localScale.x * 0.5f);
                    */
                }

                break;

            case 3:
                if (returnObjet == null)
                {
                    isNearByWall_R = false;
                }
                else
                {
                    isNearByWall_R = true;
                    NearWallDistance = playerDistance;

                    float sensor_R_EndPos = tr.position.x + (sensorWall_R.transform.position.x - tr.position.x) + (sensorWall_R.transform.localScale.x * 0.5f);
                    float wall_R_EndPos = returnObjet.transform.position.x - (returnObjet.transform.localScale.x * 0.5f);
                    NearWallDistance.x = -(sensor_R_EndPos - wall_R_EndPos);
                    player_R_EndPos = playerTr.position.x;
                    /*
                    NearWallDistance.x += 
                        (returnObjet.transform.position.x - returnObjet.transform.localScale.x * 0.5f)
                        -(sensorWall_R.position.x + sensorWall_R.localScale.x * 0.5f);
                    */
                }
                break;
        }



    }
コード例 #10
0
 void ChangeCameraArea(CameraArea ca)
 {
     cc.currentCTT = myCTT;
     cc.ChangeCameraArea(ca);
 }
コード例 #11
0
 public void ChangeCameraArea(CameraArea ca)
 {
     currentArea = ca;
     transition  = true;
     yTransition = true;
 }