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; } }
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; } }
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; //} }
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; } }
void OnTriggerStay(Collider other) { if (!CurrentCameraArea) { CameraArea newArea = other.GetComponent <CameraArea>(); CurrentCameraArea = newArea; } }
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"); }
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); }
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; } } }
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; } }
void ChangeCameraArea(CameraArea ca) { cc.currentCTT = myCTT; cc.ChangeCameraArea(ca); }
public void ChangeCameraArea(CameraArea ca) { currentArea = ca; transition = true; yTransition = true; }