본문 바로가기
-/Unity3D 5.x

유니티3D, 화면 기준으로 2d 좌표를 3d 좌표로 혹은 반대로

by Planetis 2015. 6. 16.

Camera.ScreenToWorldPoint

화면 공간의 위치를 월드 공간에 위치로

z 값은 카메라의 월드 좌표값을 사용.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Draw a yellow sphere in the scene view at the position
// on the near plane of the selected camera that is
// 100 pixels from lower-left.
using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {    
    void OnDrawGizmosSelected() {
        Camera camera = GetComponent<Camera>();
        Vector3 p = camera.ScreenToWorldPoint(new Vector3(100100, camera.nearClipPlane));
        Gizmos.color = Color.yellow;
        Gizmos.DrawSphere(p, 0.1F);
    }
}
cs


#유니티 문서 http://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html


Camera.WorldToScreenPoint

ScreenToWorldPoint 와 반대


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    public Transform target;
    Camera camera;
    
    void Start() {
        camera = GetComponent<Camera>();
    }
    
    void Update() {
        Vector3 screenPos = camera.WorldToScreenPoint(target.position);
        Debug.Log("target is " + screenPos.x + " pixels from the left");
    }
}
cs


#유니티 문서 http://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html

320x100

댓글