2016-05-13 1 views
-1

私は最初のゲームを開発していますので、Unityに少し新しくなりました。だから私の問題は、ボタンを押すだけでターゲットに向かってFpsコントローラを回転しようとしています。私はそれにこのコードを取り付けることにより、一人でカメラを回転させることに成功したが、それは完全に私もFPSコントローラに同じスクリプトを添付しようとしたが、何も起こりません歩い私はFpsコントローラを作ることができますどのようにターゲットを回転させ、ターゲットに直面する

public class PlayerRotate : MonoBehaviour { 

    public Transform target; 

    void Update(){ 
     if(Input.GetKeyDown("r")){ 
      print ("Rotate"); 
      transform.LookAt(target.position); 
     } 
    } 
} 

を台無しにして唯一のカメラが回転します。誰もが助けてくれて大変感謝しています。

+0

GoogleのFPSコントローラースクリプト... http://answers.unity3d.com/questions/700918/how-to-get-my-camera-to-follow-first-person-pov-in。 html –

答えて

0

FPSCaracterController rotationは、そのアセットを組み込んだMouseLook.csスクリプトによって駆動されます。 あなたがそれを開く場合は、回転を制御する機能が表示されます:

public void LookRotation(Transform character, Transform camera) 

をこの方法では、任意の中間の操作なしに、マウスの値を直接回転の値を変更します。したがって、FPControllerの回転を変更したい場合は、このメソッド(またはこのクラス)を変更する必要があります

たとえば、私はこの修正を行って、ユーザーが "U"キーを押すたびにFPControllerを180度回転させます:

public void LookRotation(Transform character, Transform camera) 
{ 
    float yRot = CrossPlatformInputManager.GetAxis("Mouse X") * XSensitivity; 
    float xRot = CrossPlatformInputManager.GetAxis("Mouse Y") * YSensitivity; 

     m_CharacterTargetRot *= Quaternion.Euler(0f, yRot, 0f); 
     m_CameraTargetRot *= Quaternion.Euler(-xRot, 0f, 0f); 

     if (ORPargaModification) 
     { 
      if(Input.GetKeyDown(KeyCode.U)) 
      { 
       Debug.Log("U pressed"); 
       m_CharacterTargetRot *= Quaternion.Euler(0f, 180, 0f); 
      } 
      character.localRotation = m_CharacterTargetRot; 
      camera.localRotation = m_CameraTargetRot; 

     } 
     else 
     { 
      if (clampVerticalRotation) 
      m_CameraTargetRot = ClampRotationAroundXAxis(m_CameraTargetRot); 

      if (smooth) 
      { 
       character.localRotation = Quaternion.Slerp(character.localRotation, m_CharacterTargetRot, 
        smoothTime * Time.deltaTime); 
       camera.localRotation = Quaternion.Slerp(camera.localRotation, m_CameraTargetRot, 
        smoothTime * Time.deltaTime); 
      } 
      else 
      { 
       character.localRotation = m_CharacterTargetRot; 
       camera.localRotation = m_CameraTargetRot; 
      } 

     } 

     UpdateCursorLock(); 
    } 
+0

あなたの返事の人のために多くのおかげで、私は間違いなくそれを試してみましょう –

関連する問題