メインコンテンツへスキップ
< すべてのトピックに戻る

3Dオブジェクトの上にラベルを出すには?

オブジェクトの頭上のワールド座標を、Camera.main.WorldToScreenPoint()を使って画面上の2Dピクセル座標に変換し、UIをそこに追従させます。

敵のHPバーやキャラクターの名前など、3D空間を動き回る対象に合わせて、画面の手前に張り付いているCanvas上のUI部品をぴったり連動させるためです。

Update() 内で Vector3 screenPos = Camera.main.WorldToScreenPoint(target.position + Vector3.up);を計算し、その座標をラベルUIの transform.positionに代入し続けます。Z値がマイナス(カメラの背後)の場合は非表示にする処理も加えます。

目次

9周年キャンペーン実施中 早い申込みほど受講料がお得に