[過去ログ] 【3Dゲームエンジン】Unity質問スレッド16 [転載禁止]©2ch.net (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
923(2): 2015/04/15(水)17:38 ID:A545dbfE(1/2) AAS
間違って.scの方に貼っちまった...こっちにもレスしとく
>>913-914
質問がよくわからないのでエスパーすると、関数名がUnityEngine.EventSystemsのハンドラなのでUIの話だと推定する。で、座標計算がおかしいのはルートCanvasのRenderModeが[Screen Space - Overlay]なのに座標変換をCamera.mainでやってるからだな多分。
まず座標系の変換はRectTransformUtility使うべし。第一引数のCameraは[Screen Space - Overlay]ならnull、それ以外なら所属するCanvasのworldCameraを使うこと。
以下書き直してみたサンプル。
public Vector3 prevPos;
public float fitHeight = 120;//フィット先指定は面倒なので簡略化
省21
924(1): 2015/04/15(水)17:52 ID:biP3mVKw(1/2) AAS
>>923
いや多分ね、スクリーンスペースをレフトアップ原点と勘違いしてるだけの話だと思うw
スクリーンスペース指定のY座標がマイナスになってるんだから変換先も
画面内ではありえねぇよなぁ、っていうw
925: 2015/04/15(水)18:51 ID:A545dbfE(2/2) AAS
>>924
そこも間違ってるだろうが、スクリーン原点が違っても(949,-184,-4926)にぶっ飛ぶことはないだろ?だから座標計算間違ってるとエスパーしたんだ
それはそれとして>>923がめちゃめちゃ間違ってたので訂正しとく。ついでにRenderMode [Screen Space - Camera]に対応しといた。
public Vector3 prevPos;
public float fitHeight = 120;//フィット先指定は面倒なので簡略化(このピクセル数ごとにスナップ)
public Canvas canvas;//カメラ取得のためのキャンバス
public Camera uiCamera{get{return canvas==null||canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera;}}
省19
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s