많은 인디 개발자 또는 프로개발자 조차도 모바일 UX를 지키지 않고 그냥 개발하고 있어 안타깝더군요.

PC 마우스 UX의 경우는

- Hover In / Out
- Click
- Double Click 

이렇게 이벤트를 먹이지만, 

모바일의 경우는 
- Pressed 
- Unpressed 로

- Press 됐을때 버튼을 확대하고
- 만약 사용자가 버튼 영역을 벗어나서 손을 떼면 원상복귀되면서 명령이 취소됩니다.
- 만약 사용자가 버튼 영역을 벗어나지 않고 손을 떼면 원상복귀되면서 명령이 실행됩니다.

일전에 작성했던 이벤트 통합하기로 구현하였으니 참고하시고 다음 소스를 보시면 이해가 쉬우실거 같네요.

참고 링크 : http://www.wolfpack.pe.kr/909


먼저 버튼을 2개 만들어 놓으시고 이벤트 통합용 스크립트는 다음과 같습니다.

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class UIManager_Intro : MonoBehaviour {

    const float workTerm = 0.2f;

    public static UIManager_Intro instance;
    public void Awake()
    {
        UIManager_Intro.instance = this;
     }

     private void SetScaleUp(GameObject _obj, bool isPressed)
     {
         if (isPressed)
         {
             iTween.ScaleTo(_obj, new Vector3(1.1f, 1.1f, 1.1f), workTerm);
         }
         else
         { 
             iTween.ScaleTo(_obj, new Vector3(1f, 1f, 1f), workTerm);
         }
     }

     private bool DetectHoverSameObject(GameObject _obj)
     {
         RaycastHit hit;
         Ray ray = NGUITools.FindCameraForLayer(_obj.layer).ScreenPointToRay(Input.mousePosition);
         if (Physics.Raycast(ray, out hit, Mathf.Infinity))
         {
             return (hit.collider.gameObject == _obj);
         }
         return false;
     }

     public void Button1_OnPress(GameObject _obj, bool isPressed)
     {
         SetScaleUp(_obj, isPressed);
         if (!isPressed && DetectHoverSameObject(_obj)) StartCoroutine(LoadingScene("usingAnchor"));
    }
 
    public void Button2_OnPress(GameObject _obj, bool isPressed)
     {
         SetScaleUp(_obj, isPressed);
         if (!isPressed && DetectHoverSameObject(_obj)) StartCoroutine(LoadingScene("inputField"));
     }

     IEnumerator LoadingScene(string _sceneName)
     {
         yield return new WaitForSeconds(workTerm);
         SceneManager.LoadScene(_sceneName);
     }
}


버튼1에만 우선 적용합니다. 스크립트는 다음과 같습니다. 
using UnityEngine;
using System.Collections;

public class Behavior_Button1 : MonoBehaviour {

    void Start () {
        UIEventListener.Get(gameObject).onPress += UIManager_Intro.instance.Button1_OnPress;
    }
}



결과 1. 마우스를 클릭하여 Press 시뮬레이팅
사용자 삽입 이미지
결과2. 취소 (드레그하여 다른곳에서 손 뗌)
사용자 삽입 이미지
결과 3. 명령실행 (원상복귀후 다른씬으로 이동)
사용자 삽입 이미지


2016/09/22 09:23 2016/09/22 09:23

미국회사 적응기 2

Memory 2016/07/21 02:32

Z사에 근무한지도 1달이 넘었네요.
이것 저것 쓰고 싶은 이야기가 많지만,

보통 입사후 1달 정도는 적응 기간으로 본다고 하더군요.
입사후 1주간 놀았더니 몸이 근질거려서 Jira에서 Bug 찾아서 고치고 Wiki에 기록을 남겨 뒀습니다.

그랬더니, 2주차에 메인 피쳐 팟으로 배정되었으니 자리 옮기라고 통보왔어요. -_-;;
얼떨떨하게 조직변경된 겸 새로운 팟으로 자리 이동했습니다.

원래 지원할때 업무는 그래픽 아티스트와 사운드 아티스트를 지원하는 시카고 오피스 업무였지만, 입사할때 SF HQ로 오라고 해서 1번,
메인팀으로 배정 받으면서 1번. 입사결정부터 치면, 약 1달동안 2번의 이동이 있었네요.

정작 부럽다 싶은건 이곳 리더들의 능력입니다.
여기 잼있는 문화가 닥치고 코딩시험입니다. 이 문화가 실무생활에서도 똑같이 작동하는거 같네요.

무슨 말이냐면,
- 리더로 태어나서 리더하는게 아니라 연차가 찬다고 해서 리더하는게 아니라, 팀원들로부터 크리딧 받아서 리더합니다.

딸랑 Pod 맴버가 2명있는 저희 Pod만 하더라도, Pod장이 업무지시하고 외부 협의하고 내부 협의하는 일을 하지만, 실재 개발 실력도 수준급인지라, 어제 같은 경우는 제가 이거 이거 알려 달라고 했더니 몇 시간만에 프레임워크로 재개발한뒤에 매뉴얼 첨부해서 던지더군요.

가깝게는 Pod장만 예로 들었지만, 여기는 일본 한국 중국 게임업계의 이상한 독재 시스템인 PD시스템이 없고 SW개발조직 중심으로 움직이고, 중간에서 조율하고 일정관리하며 매출관리하는 PM그룹, 전체를 조견하고 SW개발조직을 보조하는 Art 그룹 3개 그룹이 각자 알아서 움직입니다.

- 팀 매니저는 3개 그룹을 총괄하고 SW 엔지니어 출신으로 CTO에 가까운 역할을 하면서 실재 개발에 직접 관여합니다. (어느날은 버그 Ticket보고 들어갔더니 이미 팀매니저가 고쳐놨더라는...)
- 팀 매니저 직속으로 크레프트 마스터라는 직책이 있습니다. 이분들은 신기능을 만들고 매뉴얼 만들어서 뿌리는 일을 하지요.
- 팀매니저 직속에 운용조직을 맡는 팀 리더라는 직책이 있습니다. 여기서는 초고수들이 만들어 놓은 모듈들과 기능들을 운용, 유지보수하는 일을 합니다. 여기에 각각의 Pod 들이 있고 거기에 Pod장 리더와 Team member들이 있는 구조입니다.

워낙에 땅떵어리가 넓다보니 Ohio 부터 시작해서 텍사스, SF, 샌디에고, 시카고 등 도시에 흩어져 있다보니 다들 팀 커뮤니케이션 수단으로 메신저로 붙어 있습니다.

그러다가 이슈가 생기면 관련 담당자들 소집해서 온라인에서 의견 조율하거나 문제점 지적하는 등의 커뮤니케이션이 일어납니다.
물론 여기서만 일어나는게 아니고,
Git, Jira, Offline meet에서 끊임없이 커뮤니케이션이 발생하지요.

가장 부러운건 직장 문화입니다.
- 한국의 어느 팀에서 본 새로 영입된 직원이 PD 뒤에서 모략질하고 하는일이 있을 수 없는게, 기본적으로 팀원들 중 실력이 뛰어나고 커뮤니케이션 능력이 좋은 사람이 진급합니다. 리더로 태어나는게 아니라 노력여하에 따라 리더로 만들어지죠.
- 나이 차별이 없습니다. 50이 넘어서도 Pod 팀원으로 일할 수 있고 Pod장이 20대가 할 수 도 있죠. 아무도 나이가지고 찍어 누르거나 경력가지고 뭐라 하는 분위기가 아닙니다. 더욱이 X도 없으면서 학벌가지고 뭐라하는 분위기도 아니구요. 특히 완장 달았다고 지뢀하는 분위기도 아니고 오로지 Pod장은 Helper 역할에 집중합니다. 제 Pod장이 항상 하는 이야기가 "야근하지 말라. 도움이 필요하면 언제든 이야기해 내가 돠줄께. 우리는 니가 크레이지하게 일하는거 원하지 않아" 입니다.
- 여기 잼있는게 또 하나 있는데, 고등학교 졸업하고도 입사하는 친구들이 많습니다. 인턴이나 정직원이나 크게 차별도 없구요. 똑같이 유명대 석박사들과 코딩시험 보고, 인터뷰봐서 들어오는 친구들이다보니 오히려 이쪽이 영재들인 경우 이더군요.

생각해보면, 한국에서 생기는 거의 모든 부조리가 리더의 선출과정에서 생긴다고 생각합니다.
예를 들어, 나이차면 과장되고 차장되다가 부장되는... 일본식 군대 시스템에서 온 전체주의적 노예 시스템이라 생각해요.
노예 시스템에서는 어차피 말 잘듣고 고분고분하면서 저 밑에 있는 노예들 잘 갈구는 노예가 필요하거든요.
그래서, 일해서 성과내기보다는 위에 잘보이고 밑에 잘 갈구는 사람이 계속 진급하는 경우를 많이 봤습니다.

여기서도 물론 그런 유형이 있겠지만, 여기 문화가 흥미로운게 리더가 마음에 안들면 매니저나 HR에 연락해서 다른 리더가 있는 팀으로 이동이 자유롭다는 겁니다. 즉, 팀 맴버들이 리더가 마음에 안들면 리더를 버리는것도 문화입니다.
물론, 리더가 팀 맴버가 문화를 해친다고 생각하면 layoff 시켜 버리는 권한도 있죠.

따라서, 서로 총을 맞대고 있는 팽팽한 균형이 있는 문화다보니 찍어누르거나 하는게 불가능 합니다.
오히려 자신이 실력을 입증하고 신뢰를 얻는게 더 중요해지지요.

많은 경우 Agile 이라는 이름하에 이런 문화를 도입하려는 팀이 있는데, 그냥 이건 미국 실리콘 밸리 문화 같아요. Agile과 무관하지요.
여기서도 Senior 에게 물어 봤더니 "어? 우린 Agile 안해" 하는데 책에서 보던 Agile practices 를 하고 있더란 이죠...

마지막으로 야근 없다는 말은 정확하게 여기서는 구라입니다.
- 야근이 없는 대신 "일을 집으로 싸들고 간다"입니다.
- 일을 집에 싸들고 갈 정도면 팀내에서 어느정도 크리딧이 쌓여 있는 상태이고 출근 안하고 재택근무하는 것도 자연스럽게 허용됩니다.


2016/07/21 02:32 2016/07/21 02:32

미국회사 적응기 1

Memory 2016/06/22 05:00
드디어 대망의 출근날 6월 중순에 겁나 추운 추위를 뚫고 회사에 출근했습니다.

* 6월 중순에 거의 늦가을 날씨를 만나게 될줄은 꿈에도 생각못해서 반팔 입고 첫 출근하다가 얼어 죽는 줄 알았습니다. -_-;;
사용자 삽입 이미지
샌프란 시스코 날씨는 딱 2개 입니다. 춥거나 뜨겁거나...

* Cal train 급행이 6:55에 있어서 Belmont 집에서 Hillsdale station으로 차끌고 10분 정도 가야 해서 머리털 나고 처음으로 일찍 일어나 출근중입니다.
(집앞 Station인 Belmont에서 Local타면 1:10, Hillsdale에서 급행타면 30분정도 걸립니다.)

San Francisco Station에서 걸어서 15분정도 걸리는 길을 걸어가다 보면...
사용자 삽입 이미지
그 유명한 Adobe 가 보이고, 그리고 한블록 끝 쯤에 대망의 제 근무지가 보이는 군염 ㅋ
처음 도착해서 Security office에서 사진찍고, 출입증 교부 받은 다음에 같이 입사한 인턴 15명과 같이 OT에 참석하여 새 직장생활을 시작했습니다.

* 개를 사랑하는 회사 답게 벨도 개발자국 입니다. =)
사용자 삽입 이미지


점심은 부페식으로 매일 매일 바뀌는 메뉴에 따라 알아서 먹는 분위기고, 같이 밥먹으면서 일 이야기 할거 아니면, 혼자 알아서 밥때 되면 먹는 분위기 입니다.
(어디서 먹을지도 알아서하는 분위기입니다. 식당에서 먹든, 옥상에서 먹든, 자리에서 먹든...)
사용자 삽입 이미지
한가지 좋은 점은 물가비싼 이곳에서 아침, 점심, 저녁, 간식, 고급 커피까지 다 챙겨주는 회사 덕에 지출을 많이 줄일 수 있어서 좋더군요.
물론 출퇴근 비용은 알아서 Pay해야 합니다만, 점심 한끼에 10~20불(팁 포함하면... ㅎㄷㄷ 그냥 나가 버리는 살인 물가에 이게 어딥니까? ㅋㅋ

* 출퇴근 비용은 Cal train Daily fee 가 약 12불, Station parking validation 5불 약 17$ 들어갑니다.)

출근후 건물투어 하면서 본 Welcome board for new hire!를 본 순간 회사에서 얼마나 인재를 중요하게 여기는지 작은것 하나 안 놓치는 구나 싶네요.
사용자 삽입 이미지

먹는거 하나는 끝내줍니다. 예전 Smile X 에서 근무할때 1주에 한번 과일 파티했었는데.. 여기에 비하면 그냥 생색내기...
* 매일 매일 과일과 요거트, 음료, 시리얼, 삶은 달걀 등등이 리필됩니다.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

몇가지 일주일 동안 지내면서 느껴본 실리콘 밸리 회사에 대한 소고는...

1. 야근 없다는 통념은 여기서 찾아 볼 수 없습니다. 우리 팀은 야근/철야 많이 하고 있습니다.
2. 출퇴근 시간이 자유로운 건 사실이지만, 어디까지나 자기 책임이 따르는 부분이고, 매니저와 동료에게 통보해야 합니다.
3. 연공서열이나 학벌에 자유로운 인사 정책을 가지고 있습니다. 리더는 팀내에서 리딩 잘해서 팀내에 Credit이 쌓여 있다고 다들 동의하면 리더가 됩니다.
4. 여기만의 문화인것 같은데 새로 채용된 직원에게는 1주일간 공부할 시간을 줍니다.
   - 중요한건 일 안시킨다고 일 안하고 있으면 본인 손해입니다. 최소한 팀원들 이름과 얼굴을 외워두고 조직도 찾아서 머리속에 업댓하고, 기본 파이프 라인 숙지해야 합니다. 팀 내에 각 업무별 리더들에게 초이스 받아야 (물론 팀 매니저가 최종 조종하지만.) 일이 생기고 일도 할 수 있으니까요.
5. 출입보안은 한국회사의 경우 근태기록으로 활용되는데 여기는 입장만 보안시스템을 적용하고 나가는건 체크하지 않습니다. =)
6. 같이 입사한 인턴 동기중에는 고등학교 졸업자도 있습니다. 그들도 석박사 레벨과 동일한 경쟁을 거쳐서 입사한 것이니 천재들인건 분명합니다.
7. 제가 있는 회사의 경우는 채용 시험이 누군가를 떨어트리도록 설계되어 있지 않습니다. =)
2016/06/22 05:00 2016/06/22 05:00