2017-01-01 1 views
4

ユニファイドはデルファイと比べてとても難しいです。デルファイでは、ちょうど言うことができます:Unity C#:画面位置にGameObjectを作成するにはどうしたらいいですか?

Rectangle1.Position.Y := 0; 
Rectangle1.Position.X := screen.Width - Rectangle1.Width; 

これはちょうど画面の右上隅に矩形の位置を変更します。しかしUnityではこれだけを学ぶだけでなく、どこから始めるのか分かりません。誰かがこれを私に単純化してもらえますか?スマートフォンとPCの両方で、画面の右上にオブジェクトを作成したいだけです。私はUnity2D

を使用してい

EDIT:これは私が作成するオブジェクトのインスペクタです: enter image description here

をそして、これは私が画面上のオブジェクトを作成するために使用するコードです:

Instantiate(objectName, new Vector3(0, 0, 0), Quaternion.identity);

EDITより明確にするために:enter image description here

+1

ここで3Dキューブについてお話していますか?またはGUI要素のいくつかの種類? – byxor

+1

どの言語ですか? C#またはUnityscript?あなたが試したようなものでタグを更新してください。 – Programmer

+0

Pngの画像をプレハブに "変換"しました。 私はオブジェクトをインスタンス化するためにこれを使用します: 'インスタンス化(tileVerde1、新しいベクトル3(0、0、0)、Quaternion.identity); ' –

答えて

4

カメラの画面座標はワールド座標と同じではありません(1つは2次元&です)。もう1つはピクセル&他のユニティユニットを使用します。

私はCamera.ScreenToWorldPointを使用します。

Qoutingドキュメント:

Camera.ScreenToWorldPoint(位置:のVector3)は、世界の空間に、スクリーン空間から位置を変換します。

スクリーンスペースはピクセル単位で定義されています。画面の左下は(0,0)です。右上は(pixelWidth、pixelHeight)です。 zの位置はカメラの世界単位です。だから、あなたは(擬似コードのC#のミックスで)説明したものと同様の方法で、コーナーであなたの四角形を配置する

Vector3 p = camera.ScreenToWorldPoint(new Vector3(0, Screen.height, HowFarFromCamera)); 
Rectangle1.position = new Vector3(p.x + Rectangle1.Width/2,p.y - Rectangle1.Height/2,p.z); 

ポイントPは世界でコーナーがある(座標です輸入業者のこと)。あなたの長方形のピボットが中央にあると仮定して、幅/ 2と高さ/ 2だけシフトしました。

注:幅または高さ(両方レンダラ& SpriteRendererために利用可能な構造体)

1

にあなたが2Dで排他的に作業をしているように見えるので、私はあなたを与えるだろうもう一つの示唆を得るためにBounds.sizeを使用することができます(あなたを見ています他の記事)は4.6でリリースされたユニティUIシステム(を探すことです:あなたはキャンバスや他のUIコンポーネントに関する情報hereをたくさん見つけることができます

  • :多くの人がUI 4.6)としてそれを参照してください。 。
  • Here基本的なチュートリアルがあります。あなたの状況であなただけの希望コーナーに画像を固定した後、半分の幅/高さでそれを相殺する必要があります(:アイデアはあなたがキャンバス内にオブジェクトを固定することができますです

オブジェクトのピボットポイントを右隅に設定し、それをオフセットすることなく一致するコーナーに固定することもできます)。

関連する問題