private void MoveToTarget() { if (m_RouteIndex >= m_Routes.Length) { Debug.LogError("CameraController_CameraRoutes01:MoveToTarget() m_RouteIndex >= m_Routes.Length"); return; } Vector3 TargetPos = m_Routes[m_RouteIndex].position; Vector3 CameraCurrentPos = m_CameraPtr.transform.position; Vector3 DistanceVecNow = TargetPos - CameraCurrentPos; if (DistanceVecNow.sqrMagnitude < m_CloseDistanceThreasholdSquare) { // 立即抵達 m_CameraPtr.transform.position = m_Routes[m_RouteIndex].position; m_CameraPtr.transform.rotation = m_Routes[m_RouteIndex].rotation; m_CameraState = CameraRoutesState.CheckNextTarget; } else { // 還未抵達,就內差前往 m_CameraPtr.transform.rotation = Quaternion.Lerp(m_CameraPtr.transform.rotation, m_Routes[m_RouteIndex].transform.rotation, Time.deltaTime * m_InterpolateSpeed); m_CameraPtr.transform.position = Vector3.Lerp(CameraCurrentPos, TargetPos, Time.deltaTime * m_InterpolateSpeed); } }
public void StartMove() { if( m_RouteIndex < m_Routes.Length ) { m_CameraState = CameraRoutesState.MoveToTarget ; } }
public void StartMove() { if (m_RouteIndex < m_Routes.Length) { m_CameraState = CameraRoutesState.MoveToTarget; } }
private void MoveToTarget() { if (m_RouteIndex >= m_Routes.Length) { Debug.LogError("CameraController_CameraRoutes01:MoveToTarget() m_RouteIndex >= m_Routes.Length"); return; } Vector3 TargetPos = m_Routes[m_RouteIndex].Position; Vector3 CurrentPos = m_CameraPtr.transform.position; Vector3 DistanceVecNow = TargetPos - CurrentPos; if (DistanceVecNow.sqrMagnitude < m_CloseDistanceThreasholdSquare) { // 立即抵達 m_CameraPtr.transform.position = m_Routes[m_RouteIndex].Position; m_CameraPtr.transform.LookAt(m_Routes[m_RouteIndex].TargetPosition); m_CameraState = CameraRoutesState.CheckNextTarget; } else { // 繼續推進 Vector3 NextPosition = Vector3.Lerp(m_CameraPtr.transform.position, m_Routes[m_RouteIndex].Position, Time.deltaTime * m_InterpolateSpeed); // Debug.Log( m_CameraPtr.transform.position + " " + m_Routes[ m_RouteIndex ].Position + " " + Time.deltaTime * m_InterpolateSpeed + "=>" + NextPosition ) ; m_CameraPtr.transform.position = NextPosition; m_PreviousTarget = Vector3.Lerp(m_PreviousTarget, m_Routes[m_RouteIndex].TargetPosition, Time.deltaTime * m_InterpolateSpeed); m_CameraPtr.transform.LookAt(m_PreviousTarget); } }
private void CheckNextTarget() { ++m_RouteIndex; if (m_RouteIndex >= m_Routes.Length) { m_CameraState = CameraRoutesState.Closed; } else { m_CameraState = CameraRoutesState.MoveToTarget; } }
private void CheckNextTarget() { ++m_RouteIndex; if (m_RouteIndex >= m_Routes.Length) { // the end of story m_CameraState = CameraRoutesState.Closed; } else { // keep move to next position m_CameraState = CameraRoutesState.MoveToTarget; } }
public void StopMove() { m_CameraState = CameraRoutesState.Pause ; }
private void CheckNextTarget() { ++m_RouteIndex ; if( m_RouteIndex >= m_Routes.Length ) { m_CameraState = CameraRoutesState.Closed ; } else { m_CameraState = CameraRoutesState.MoveToTarget ; } }
private void MoveToTarget() { if( m_RouteIndex >= m_Routes.Length ) { Debug.LogError( "CameraController_CameraRoutes01:MoveToTarget() m_RouteIndex >= m_Routes.Length" ) ; return ; } Vector3 TargetPos = m_Routes[ m_RouteIndex ].Position ; Vector3 CurrentPos = m_CameraPtr.transform.position ; Vector3 DistanceVecNow = TargetPos - CurrentPos ; if( DistanceVecNow.sqrMagnitude < m_CloseDistanceThreasholdSquare ) { // 立即抵達 m_CameraPtr.transform.position = m_Routes[ m_RouteIndex ].Position ; m_CameraPtr.transform.LookAt( m_Routes[ m_RouteIndex ].TargetPosition ) ; m_CameraState = CameraRoutesState.CheckNextTarget ; } else { // 繼續推進 Vector3 NextPosition = Vector3.Lerp( m_CameraPtr.transform.position , m_Routes[ m_RouteIndex ].Position , Time.deltaTime * m_InterpolateSpeed ) ; // Debug.Log( m_CameraPtr.transform.position + " " + m_Routes[ m_RouteIndex ].Position + " " + Time.deltaTime * m_InterpolateSpeed + "=>" + NextPosition ) ; m_CameraPtr.transform.position = NextPosition ; m_PreviousTarget = Vector3.Lerp( m_PreviousTarget , m_Routes[ m_RouteIndex ].TargetPosition , Time.deltaTime * m_InterpolateSpeed ) ; m_CameraPtr.transform.LookAt( m_PreviousTarget ) ; } }
public void StopMove() { m_CameraState = CameraRoutesState.Pause; }
private void CheckNextTarget() { ++m_RouteIndex ; if( m_RouteIndex >= m_Routes.Length ) { // end of story m_CameraState = CameraRoutesState.Closed ; } else { // keeep moving m_CameraState = CameraRoutesState.MoveToTarget ; } }
private void MoveToTarget() { if( m_RouteIndex >= m_Routes.Length ) { Debug.LogError( "CameraController_CameraRoutes01:MoveToTarget() m_RouteIndex >= m_Routes.Length" ) ; return ; } Vector3 TargetPos = m_Routes[ m_RouteIndex ].position ; Vector3 CameraCurrentPos = m_CameraPtr.transform.position ; Vector3 DistanceVecNow = TargetPos - CameraCurrentPos ; if( DistanceVecNow.sqrMagnitude < m_CloseDistanceThreasholdSquare ) { // 立即抵達 m_CameraPtr.transform.position = m_Routes[ m_RouteIndex ].position ; m_CameraPtr.transform.rotation = m_Routes[ m_RouteIndex ].rotation ; m_CameraState = CameraRoutesState.CheckNextTarget ; } else { // 還未抵達,就內差前往 m_CameraPtr.transform.rotation = Quaternion.Lerp( m_CameraPtr.transform.rotation , m_Routes[ m_RouteIndex ].transform.rotation , Time.deltaTime * m_InterpolateSpeed ) ; m_CameraPtr.transform.position = Vector3.Lerp( CameraCurrentPos , TargetPos , Time.deltaTime * m_InterpolateSpeed ) ; } }