2016-07-04 6 views
0

をズームアウト私は、ランダムな高さと距離を置いたカメラにより注力してボールを持っています。マウスのスクロールで、カメラをボールに向かってズームインしたいと思います。私はこの奇妙なコードとその期待どおりの奇妙な動作を試みました。ズームやカメラ

void ZoomInOut() { 
    if(Input.GetAxis("Mouse ScrollWheel") > 0){ 
     Debug.Log("mouse scroll wheel greater"); 
     distance += 20.0f; 
     Vector3 negDistance = new Vector3(targetFollow.transform.position.x, targetFollow.transform.position.y, -distance); 
     Vector3 pos = transform.rotation * negDistance + targetFollow.transform.position; 
     transform.position = pos; 
    } 
    if(Input.GetAxis("Mouse ScrollWheel") < 0){ 
     Debug.Log("mouse scroll wheel less"); 
     distance -= 20.0f; 
     Vector3 negDistance = new Vector3(targetFollow.transform.position.x, targetFollow.transform.position.y, -distance); 
     Vector3 pos = transform.rotation * negDistance + targetFollow.transform.position; 
     transform.position = pos; 
    } 
} 
+0

カメラは常にボールに向けて見ていますか?うちいつかここ – mgear

+0

はい、それは常にそれがまた奇妙な –

答えて

0

前方/後方に直接ズームしたい場合は、これを使用することができます:ZoomWithMouse.cs

それはちょうどtransform.forward軸に沿ってカメラを移動します。

using UnityEngine; 

// Zoom forward and backward with mousewheel, Attach this script to camera 
public class ZoomWithMouse : MonoBehaviour 
{ 
    public float zoomSpeed = 300; 
    void Update() 
    { 
     var mouseScroll = Input.GetAxis("Mouse ScrollWheel"); 

     if (mouseScroll!=0) 
     { 
      transform.Translate(transform.forward * mouseScroll * zoomSpeed * Time.deltaTime, Space.Self); 
     } 
    } 
} 

ソース: https://github.com/UnityCommunity/UnityLibrary/blob/master/Scripts/Camera/ZoomWithMouse.cs

+0

ボールを見ていないいくつかの時間(のように、ボールが視野の中心にある)何か他のものは、カメラを動かしている場合..空のシーンでそれを試してみてください? –

+0

作品ではないzoominない – mgear

+0

コードから不足している変数を修正 – mgear

-1
using UnityEngine; 
using System.Collections; 

public class Zoom : MonoBehaviour 
{ 
    private float _speed = 10; 

private void Update() 
{ 
    float mouseScroll = Input.GetAxis("Mouse ScrollWheel"); 

    if (mouseScroll!=0) 
    { 
     transform.Translate(Mathf.Sign(mouseScroll) * transform.forward * _speed * Time.deltaTime, Space.World); 
    } 
} 
} 
関連する問題