2013년 8월 27일 화요일

[Day-02] 게임개발자를 위한 유니티활용 게임개발 실무 교육



1. 객체 화면 이동
  - LERP ( Linear Interpolation)
    + 선형보정 함수
    + (시작, 끝, 비율) ==> 값
  - InverseLerp
    + (시작, 끝, 값) ==> 비율

  ==> 시간에 대한 InverseLerp를 사용하여 거리에 대한 lerp로 거리 값을 구하여 부드러운 객체 이동을 구현한다.

2. 객체 화면 이동 가속도
  - y = x ^ 2 으로 이용하여 p * p
    (y는 위치, x는 시간)


3. 객체가 화면에서 빠르게 이동 후 천천히 이동
  - y = -(1-p)(1-p) + 1 이용

* NGUI 패키기 Import
  - 메뉴에 NGUI메뉴가 생성되고, Asserts에 NGUI가 생성됨


4. 레이어 추가
  - 게임 오브젝트 선택 -> add layer
  - Camera의 Culling Mask에서 레이어의 선택을 할 수 있음

5. UI추가
  - NGUI(UI관련 라이브러지 같다) 메뉴에서 UI객체를 만들고(레이어 추가), 위치를 x(200) 정도로 이동후 UI를 그려서 합성함
  - 위젯으로 버튼 추가(패널 밑에 추가)

6. 클래스의 레퍼런슨 함수호출

7. 유니티 메시지 시스템 사용

8. 안드로이드 빌드 및 배포
   - 안드로이드 SDK 다운로드 및 압축 풀기
   - 관련 메뉴: File > Building Settings
   - 안드로이드 SDK설정: Edit > Preferences: External Tools에서 안드로이드 SDK 폴더 설정
 

9. Game뷰에서 Free Aspect에서 디바이스 화면의 해상도 설정가능


10. Building Settings에서 player setting에서 관련 안드로이드 설정 가능


11. 유니티 리모트를 통해서 시작 가능
     - 구글Play에서 UnityRemote로 검색하여 설치


12. 백그라운드 이미디
    - 이미지 선택 후 NGUI -> atlas maker로 생성 후
    - 버트의 백그라운드로 선택


13. 폰트 생성
    - BMFont 다운로드 및 설치
    - 네이버에서 "나눔고딕 다운로드 및 설치"
    - BMFont에서 Option -> Font Settings 그리고 폰트 선택하고 사이즈는 40으로 그리고 옵션은 모두 체크 다음으로 super sampling을 3으로 설정
    - 그다음으로 KS1001.txt를 읽어(Edit>select chars from file)들여서 필요한 것만 설정한다.
    - Export Option으로 설정


   - Visualization을 확인 후 저장(maum.fnt, maum_0.tga 생성)
   - 유니티에서 인식을 위새 fnt파일을 txt로 확장자 변경
   - 유니티 폴더로 이동(export): Resources/font에 export
   - 유니티 속성에서 Format을 Truecolor로 저장
   - Font Maker로 폰트화일 설정(arrow가 none으로 되어야 함)
    - 그리고 생성(제질이 생성되어야 함)


    - 제질 선택후 shader를 unit/transparent colored(packer)를 선택해서 구모양의 흰색을 빼곡한 글씨가 보여야함
    - 다시 widget tool에서 label을 생성하고 글씨 입력

















14. 버튼으로 슈팅 만들기
   - Edit > Project Settings > Input에서InputManager의 내용을 확인할 수 있음
   - 미사일 객체가 계속 생성되면서 만들어지기 때문에 문제가 발생할 수있음...
   - (prefab)계속 사용되는 gameObject를 assets으로 만들어서 복제한다.(미사일 객체를 끌어다 assert으로 가져나 두고, 미사일을 삭제후 asset에서 미사일을 끄러다 둔다.)
   - 유니티에서 prefab을 이용하는 것이 원칙이다.

15. 적을 만들기

16. 로켓과 적의 충돌
   - collider만 설정: 움직이지 않는다는 의미
   - 움직이는 물체는 항상 RigidBody을 설정해야 한다.
   - Transform으로 움직이는가 물리로 움직이는가 파악해야한다.
      --> 트랜스폼으로 움직이면 Rigidbody에 IsKinematic을 설정
   - 충돌 검출
      + 사실적 충돌 --->(Yes) Collision
                          --->(No)  Trigger
      + 충돌을 위해 이벤트 함수 생성
   - Collider에 IsTrigger을 설정


17. Inspector의 Tag값을 GameController로 설정하면 해당 객체를 가질 수 있음


댓글 없음:

댓글 쓰기