2017-09-20 4 views
-2

C#이 단일성을 사용하여 스크립트에서 3 인칭 캐릭터의 카메라를 회전하고 줌하는 방법을 알아야합니다.Unity를 사용하여 C#으로 스크립트에서 메인 카메라를 회전하고 줌하는 방법

글쎄, 나는 Return 키를 눌러 키,이 내 스크립트 때 카메라를 회전해야 유효성 검사 스크립트가 있습니다

public class DialogueTrigger : MonoBehaviour { 
 

 
public Dialogue dialogue; 
 
public GameObject ThirdPersonController; 
 

 
    
 

 

 
void Update(){ 
 
     
 
\t if(ThirdPersonController.transform.position.z > 37.6 && ThirdPersonController.transform.position.z < 38.8){ 
 
\t \t \t 
 
\t \t if (Input.GetKeyDown (KeyCode.Return)) { 
 

 
\t \t \t //ROTATE CAMERA 
 
\t \t \t FindObjectOfType<DialogueManager>().StartDialogue (dialogue); 
 
\t \t \t \t 
 
\t \t 
 

 
\t \t } 
 

 
    } 
 

 
} 
 

 

 

 
\t 
 

 

 
}

고마워, ...)

답변

0

이것 좀보세요 :

https://gist.github.com/JISyed/5017805

이 안내서는 카메라 이동 방법을 보여줍니다.

가이드를 읽은 후이 최적화 된 코드를 사용할 수 있습니다. Transform.position은 귀하의 성격 상 귀하의 성격에 따라 변합니다.

 
using UnityEngine; 

public class CameraMovement : MonoBehaviour { 

    public float turnSpeed = 4.0f; 
    public float panSpeed = 4.0f; 
    public float zoomSpeed = 4.0f; 

    private Vector3 mouseOrigin; 
    private bool isPanning; 
    private bool isRotating; 
    private bool isZooming; 

    void Update() { 
     if(Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2)) { 
      mouseOrigin = Input.mousePosition; 
     } 

     isRotating = Input.GetMouseButton(0); 
     isPanning = Input.GetMouseButton(1); 
     isZooming = Input.GetMouseButton(2); 

     Vector3 pos = Camera.main.ScreenToViewportPoint(Input.mousePosition - mouseOrigin); 
     if(isRotating) {  
      transform.RotateAround(transform.position, transform.right, -pos.y * turnSpeed); 
      transform.RotateAround(transform.position, Vector3.up, pos.x * turnSpeed); 
     } 

     if(isPanning) { 
      Vector3 move = new Vector3(pos.x * panSpeed, pos.y * panSpeed, 0); 
      transform.Translate(move, Space.Self); 
     } 

     if(isZooming) { 
      Vector3 move = pos.y * zoomSpeed * transform.forward; 
      transform.Translate(move, Space.World); 
     } 
    } 
} 
+0

답변을 주셔서 감사합니다. 그러나이 코드는 마우스 동작으로 카메라를 이동시키는 데 사용됩니까? 검증이 사실 일 때 카메라가 자동으로 움직여야합니다. –