2017-07-21 7 views
0

私は、シーン内のオブジェクトのトップダウンパースペクティブカメラビューを持っています。Unityカメラをズームすることによってゲームオブジェクトのサイズを画面上のピクセル単位で維持する

私はWebGLのためにエクスポートしていますが、オブジェクトのトップダウンビューでシーンを開始したいのですが、画面の幅と高さに関係なく画面のピクセルに同じサイズを維持する必要がありますWebページのUnityプレーヤー。

私はカメラを上下に(y軸に沿って)動かすことでこれを達成したいと思いますが、カメラの正しいy位置を計算するのに必要な数学に苦労しています。

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class MainCamera : MonoBehaviour { 

    private Camera cam; 
    public Transform target; 
    public float targetPixelHeight = 150; 

    void Start() { 
     cam = GetComponent<Camera>(); 
    } 

    void Update() { 

     float newY = /*unknown calculation involving camera position and targetPixelHeight*/; 
     transform.position = new Vector3(transform.position.x, newY, transform.position.z); 
    } 

} 
+0

カメラのサイズを変更しても、ピクセル数は同じにならないでしょうか?画面のサイズによっては、カメラのサイズを適切に調整してください。 – Alox

+0

カメラのサイズはどういう意味ですか? – bbeckford

+0

私はPlayerSettings.defaultScreenWidth = 1080を使うことができると思います。 PlayerSettings.defaultScreenWidth = 1920; ここで、幅と高さは画面の解像度です。 – Alox

答えて

0

UnityのRenderTextureの使用方法を調べる必要があります。画面の右にレンダリングする代わりに、シーン内の任意の場所にあるカメラをRenderTextureにレンダリングさせることができます。

まず、テクスチャアセット(アセット>作成>レンダリングテクスチャ)を作成します。これにより、正確なサイズ(ピクセルまたはスクリーンスペースなど)を入力したCanvasゲームオブジェクト> UI>キャンバス)とRawImageゲームオブジェクト> UI> RawImage)行く)。 RenderTextureRawImageのテクスチャを割り当てます。シーン内のどこでもレンダリングしたいカメラとオブジェクトである「レンダリングステージ」をセットアップすることができます。そのカメラのtargetTextureRenderTextureに設定すると、すべて設定されます。

関連する問題