본문 바로가기

unity tech.

3D text 클릭 또는 터치

씬에서 게임 오브젝트 Item의 구조


Item

Plane

ItemTextMesh

VoiceTextMesh



[C#]


GameObject item;



Transform voice = item.transform.FindChild("VoiceTextMesh");
TextMesh voiceTextMesh = voice.gameObject.GetComponent<TextMesh>();
voiceTextMesh.text = "12";
voiceTextMesh.gameObject.AddComponent<BoxCollider>();

// or // voiceTextMesh.gameObject.AddComponent("BoxCollider");



여기서 볼 것,

1. 씬에서의 이름으로 찾는 방법.

2. 클릭이나 터치를 위해서 BoxCollider를 붙인다. 이렇게 동적으로 붙이면, "12"로 바뀐 text에 따라 BoxCollider 크기가 결정된다. (씬에서나 코드에서나 BoxCollider가 붙을 때 game object의 크기에 맞게 적용된다.)



클릭 체크 (Ray cast)


//Touch touchZero = Input.GetTouch(0);

//Ray ray = Camera.main.ScreenPointToRay(touchZero.position);

Ray ray = camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, Mathf.Infinity))
{
     Debug.Log("--------------- touch name : " + hit.transform.name);
}


*  주석은 터치 시.