2017-01-02 1 views
0

https://scontent.fmgf1-2.fna.fbcdn.net/v/t34.0-12/15870843_1543174992374352_1359602831_n.gif?oh=dc048c9e04617007c5e82379fd5a9c1a&oe=586CC623カメラを特定の位置まで動かす

このgifの青い部分は見えますか?青い部分が見えないように、左に行くとカメラをブロックしたい。これは私がカメラを移動するために使用しているコードです:

public class configuracoesDaCamera : MonoBehaviour {

Vector3 hit_position = Vector3.zero; 
Vector3 current_position = Vector3.zero; 
Vector3 camera_position = Vector3.zero; 
float z = 0.0f; 
public static bool bDedoNoHud; 

void Update() 
{ 
    if (Input.GetMouseButtonDown(0)) 
    { 
     hit_position = Input.mousePosition; 
     camera_position = transform.position; 

    } 
    if (Input.GetMouseButton(0)) 
    { 
     current_position = Input.mousePosition; 
     LeftMouseDrag(); 
    } 
    Debug.Log("bDedoNoHud" + bDedoNoHud); 
} 

void LeftMouseDrag() 
{ 
    if (!bDedoNoHud) 
    { 
     // From the Unity3D docs: "The z position is in world units from the camera." In my case I'm using the y-axis as height 
     // with my camera facing back down the y-axis. You can ignore this when the camera is orthograhic. 
     current_position.z = hit_position.z = camera_position.y; 

     // Get direction of movement. (Note: Don't normalize, the magnitude of change is going to be Vector3.Distance(current_position-hit_position) 
     // anyways. 
     Vector3 direction = Camera.main.ScreenToWorldPoint(current_position) - Camera.main.ScreenToWorldPoint(hit_position); 

     // Invert direction to that terrain appears to move with the mouse. 
     direction = direction * -1; 

     Vector3 position = camera_position + direction; 

     transform.position = position; 
    }   
} 

}

答えて

関連する問題