piblic var DoClickScale = true;
public Vector3 ClickScale = new Vector3(0.1f, 0.05f, 0.025f); // 클릭했을 때 커치는 크기 - 위치로 조절 했다... 조금 앞으로 다가옮
public var ButtonHoverColor : Color = Color.white; // 버튼 기본
public var TextHoverColor : Color = Color.red; // 버튼 올렸을 때
function Update(){
// ray로 만든 3d 버튼
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended) // 화면을 눌렀을 경우
{
Ray ray = Camera.main.ScreenPointToRay(new Vector3(Input.GetTouch(0).position.x, Input.GetTouch(0).position.y)); // 동일 위치를 눌렀을 경우
if (collider.bounds.IntersectRay(ray)) //레이에 닿았을 때 반응..
{
if (DoClickScale) // trun면
renderer.transform.localScale += ClickScale;
renderer.material.color = ButtonHoverColor; // 칼라를 바꾼다.
transform.Find("Text").gameObject.renderer.material.color = TextHoverColor; // 텍스트에 닿았을 때 레드를 바꾼다.
if (Anim != null) // 에니메이션 있다면
Anim.animation.Play("ani"); // 플레이..
if (name == "Btn_Quit") // 하이어라키의 오브젝트 이름
{
Application.Quit();
}
else if (name == "Btn_Play")
{
Application.LoadLevel("LevelSelect");
}
else if (name == "Btn_Practice")
{
Game.Instance.StartPractice();
}
else if (name == "Btn_Options")
{
Application.LoadLevel("OptionsMenu");
}
else if (name == "Btn_Back")
{
Game.Instance.OnGotoMainMenu();
}
}
}
}
실제 gui로 만드는 것 보타... 이런식의 3d 버튼을 사용하는게 좋을 때가 많습니다.
쓸데 없이.. 화면 위치 조작 안해도 되고...
카메라를 기준으로 하는 것이니 대충 맞게 쓸수 있습니다
물론 정확하게 같은 규격으로 하려면.. 고생 좀 하겠습니다만...
댓글 없음:
댓글 쓰기