2013년 6월 19일 수요일

buttonScript //버튼 스크립트

public var Anim : GameObject;  // 에니메이션 할 오브젝트


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 버튼을 사용하는게 좋을 때가 많습니다.
쓸데 없이.. 화면 위치 조작 안해도 되고...
카메라를 기준으로 하는 것이니 대충 맞게 쓸수 있습니다

물론 정확하게 같은 규격으로 하려면.. 고생 좀 하겠습니다만...




댓글 없음:

댓글 쓰기