Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
座標のサンプル
using UnityEngine;
using System.Collections;
//
// マウスの座標をオブジェクトが追跡する。
// カメラにアタッチ
//
[RequireComponent(typeof(Camera))]
public class TransformScreenToWorld : MonoBehaviour {
public Transform target; // 追跡させるオブジェクト
public Transform center; // targetとカメラの距離を設定する用のオブジェクト
void Update ()
{
if( target == null )
return;
var pos = Vector3.forward * Vector3.Distance(transform.position, center.position);
target.position = camera.ScreenToWorldPoint(Input.mousePosition + pos);
}
}
using UnityEngine;
using System.Collections;
//
// カメラの四隅を取得する。
// カメラにアタッチ
//
[RequireComponent(typeof(Camera))]
public class TransformViewportToWorld : MonoBehaviour {
Vector3 lb, rt, lt, rb;
public Transform center; // 四隅の深さを設定する用のオブジェクト
void Update ()
{
var distance = Vector3.Distance(transform.position, center.position);
lb = camera.ViewportToWorldPoint( new Vector3(0, 0, distance));
rt = camera.ViewportToWorldPoint( new Vector3(1, 1, distance));
lt = new Vector3( lb.x, rt.y, lb.z);
rb = new Vector3( rt.x, lb.y, rt.z);
}
void OnDrawGizmos()
{
Gizmos.DrawSphere(lb, 0.3f);
Gizmos.DrawSphere(rt, 0.3f);
Gizmos.DrawSphere(rb, 0.3f);
Gizmos.DrawSphere(lt, 0.3f);
}
}
using UnityEngine;
using System.Collections;
//
// GUIText(もしくはGUITexture)が対象のオブジェクトの上に来るようにする
// カメラにアタッチ
//
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class TransformWorldToScreen : MonoBehaviour {
public Transform target; // 対象のオブジェクト
public Transform gui; // GUITextureもしくはGUIText
void Update ()
{
if( gui == null || target == null )
return;
gui.position = camera.WorldToViewportPoint(target.position);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment