2017-09-20 4 views
-2

c#でスクリプト内の第三者のキャラクタのカメラを回転させてズームする方法を知っておく必要があります。ユニティを使用してC#でスクリプトのメインカメラを回転およびズームする方法

まあ、私は検証でスクリプトを持って、私は押したときにリターンキー、カメラを回転させる必要がある、これは私のスクリプトです:

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

このコードは、マウスの動きでカメラを移動するためのものですか?妥当性検証が成立したら自動的にカメラを動かす必要があります。 –

関連する問題