2016.01.11 14:10

유니티에서 ui를 클릭 혹은 터치해도 게임 중 입력 이벤트를 처리하는 부분에서 계속 문제가 발생했다. 


게임 ui를 유니티의 ui로 만들지 않았을때는 몰랐는데, 이거 어떻게 처리해야 할지 한동안 고민이 많았는데...


EventSystem.current.IsPointerOverGameObject 라는 함수가 있는지 몰라서 한참 고생했네;;


아래와 같은 클래스를 하나 추가해서 처리.

using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections;

public class InputEventManager : MonoBehaviour {
     public bool GetMouseDown(int _idx){
        if (EventSystem.current.IsPointerOverGameObject())
            return false;

        return Input.GetMouseButtonDown(_idx);
    }

    public bool GetMouseUp(int _idx){
        if (EventSystem.current.IsPointerOverGameObject())
            return false;

        return Input.GetMouseButtonUp(_idx);
    }

    public bool GetMouse(int _idx){
        if (EventSystem.current.IsPointerOverGameObject())
            return false;

        return Input.GetMouseButton(_idx);
    }

    static InputEventManager mInst;
    public static InputEventManager Inst {
        get{
            if (mInst == null) {
                GameObject go = new GameObject ();
                go.name = "InputEventManager";
                mInst = go.AddComponent<InputEventManager> ();
            }
            return mInst;
        }
    }
}




이전 버전에서는 IsPointerOverEventSystemObject  라는 이름으로 쓰였는데, 이름이 조금 달라져서 애매한데, 일단 잘 작동은 하는 듯. 

저작자 표시 비영리 동일 조건 변경 허락
신고
2016.01.10 22:41

100년이면 인류가 멸망할 정도의 방사능이 사라질까? 혹은 살아 있을 수 있을만큼 줄어들까?


자연의 정화 기능이 생각보다 훨씬 더 강력할지도. 


사실 그런 것 보다... 원하는 영상을 쉽게 찾을 수 있고, 자막이 다 있어서 맘에 드네.


TV로 VOD보기 많이 불편했는데... 


저작자 표시 비영리 동일 조건 변경 허락
신고
2015.12.31 11:50

게임 다 만들고, google play에 프로젝트 등록하고 로그인을 해봤는데 마지막 로그인에서 계속 fail뜸. 


원인을 찾던 중 로컬에 등록한 keystore의 값을 google play api 관리자에 등록을 안 해서 발생한 문제였음. 


아래 이미지 중 붉은 테두리 안에 keystore에 등록된 sha1 값을 등록해야 함.


(keytool -list -v -keystore "자신이 등록한 keystore 이름" 을 입력하면 sha1 값을 볼 수 있다.)



저작자 표시 비영리 동일 조건 변경 허락
신고


티스토리 툴바