본문 바로가기
NOTE/Unity

[Unity] 고급과정 3일차 필기내용 (펌)

by DevAthena 2016. 10. 17.
Unity3D 기본 설명
  • 2D게임을 만들때 Z축이 겹치기 때문에 살짝 간격을 줘서 처리한다.
    • Ex) 캐릭터가 Z : 0일때, 아이템은 Z : 0.5 정도.
  • 일반적인 게임을 만들때 점프기능을 구현할때 점프와 떨어지는 속도를 따로 정의함.
    • 점프속도 : n
    • 떨어지는 속도 : n*2
    • 게임엔진의 중력을 사용하게되면 이중점프나, 점프중 기능을 구현할때 문제점이 생김.
  • 소스에서 한글로 입력 후 오류 났을때 해결방법
    • File - Save As - Character Coding - Korean (ISO) 로 선택하여 덮어쓰기.
  • GUI설정적용은 OnGUI() 에서 적용해야 실제 적용됨.
  • 이미지를 맵핑(Texture들)할때 2의 배수일때 맵핑이 빠르게됨. (하드웨어 가속을 사용.)
    • Unity3D는 모든 이미지들을 2의 배수로 자동으로 적용됨.
    • 이러한 2의 배수를 사용하는 규칙은 NVidia의 규칙이 사용된 것.
    • 이러한 규칙을 사용하기 싫을 경우는 Image Inspector에서 Texture Type에서 GUI로 변경. 그리고 Format을 Truecolor로 변경.
  • Unity3D에서는 색상값을 0~255가 아닌 0~1로 사용함.
  • 각 클래스글자 위에서 [ Command+' ] or [ WindowsKey + ' ] 레퍼런스사이트로 이동.


Unity3D Build & Run 설명
  • Android Setting
    • Unity Preferences - External Tools - Android SDK Location : 안드로이드 SDK 위치 지정
  • Web
    • File - Build Setting - Web Players - Player Setting
    • 위 경로에서 내용 지정.
    • 최종적으로 Build버튼으로 생성.
    • Web으로 빌드하면 jQuery와 HTML로 짜여져 있음.
    • HTML파일이 unity3d 파일을 로드하여 게임을 진행.
    • 배포는 웹서버에 웹파일 모두를 올린후 html파일을 링크.
  • PC
    • PC도 Web과 거의 비슷하고 각 플랫폼(Win, Mac, Linux)으로 Export 됨.
  • Android
    • File - Build Setting - Android
    • Image들 Inspector - Format - Truecolor로 변경. (안드로이드는 기본적으로 이미지들을 압축해버림.)
    • Player Setting
      • Product Name : 게임이름설정
      • Resolution and Presentation : Default Orientation 에서 모드를 설정해도 소스가 우선
      • Icon - 아이콘 설정
      • Splash Image(Pro Only) : 첫로딩화면. 프로버젼만가능. 프리(free)는 불가능
      • Other Setting
        • Identification - Bundle Identifier : com.xxx.xxxx 이름 지정해줘야함.
        • 여기서 버젼, Android API Level설정가능(Android 플랫폼 버젼)
        • API Level은 'Android 2.3.3. Gingerbread API level 10' 를 권장
      • Publishing Settings : 안드로이드 개발자 등록 키스토어를 정하여 자동으로 올라갈 수 있음.
    • 최종빌드는 Build버튼을 선택. - 파일명을 지정하라고 뜨면 이름정하면 이름.apk 로 Export됨.
    • Build And Run은 모바일기기로 바로 들어감. (안드로이드 기기테스트와 같음.)
  • iOS
    • File - Build Setting - iOS
    • 아이폰도 위와 거의 비슷함.
    • Build는 Xcode 프로젝트 파일로 Export됨.
    • Build And Run은 Xcode로 출력 후 바로 Run.
    • iOS의 경우는 디바이스 테스트시 Apple 개발자계정이 있어야 하고, 인증서파일이 따로 필요함.


Unity3D Method 설명
  • transform.renderer.material.mainTextureOffset = new Vector2(x, y)
    • x, y축으로 오브젝트에 있는 이미지가 움직임.
    • x, y에는 speed * Time.time 으로 주면 됨.
  • Screen.orientation = ScreenOrientation.LandscapeRight : 모바일 기기 설정. 가로모드로 고정.
  • Camera.main.WorldToScreenPoint(transform.position)
    • Camera의 시야로 봤을때 transform의 위치를 절대좌표로 잡는다.
  • Resources.Load(string resourceName) : Resource 폴더에 있는 resourceName자료를 불러옴.
    • 폴더가 'Resources'이어야만 가능한 메소드.
    • Resources폴더는 컴파일할때 모든자료가 같이 올라감. (메모리 사용률 증가)
  • Mathf.Repeat(++num1, num2)
    • num1을 하나 증가하고 num2-1 까지 돌다가 끝나면 num1을 0으로 초기화하는 함수.
  • transform.guiText.material.color : guiText의 글자의 색상을 Vector4 형태로 가지고 있음.
    • Vector4(Red, Green, Blue, Alpha) / (r, g, b, a)
  • Camera.main.WorldToViewportPoint(transform.position)
    • 현 transform.position 의 위치를 World위치로 변경.
  • GameObject.FindGameObjectsWithTag("TAG") : TAG에 해당하는 모든 오브젝트를 배열로 가져옴.
    • 뒤에 .Length로 배열 Count도 가져올 수 있음.
  • object.tag.Contains("TAG")
    • TAG라는 태그이름이 태그안에 들어있다면 오브젝트라면 true를 반환.
  • Screen.width
    • 현재 실행중인 기기에서 게임화면 width를 int값으로 가져옴. 
  • Screen.height
    • 현재 실행중인 기기에서 게임화면 height를 int값으로 가져옴. 
  • Input.GetKeyDown(KeyCode.Escape) : 모바일에서는 Back버튼.
  • GUI.skin : OnGUI()에서 skin값을 가져오거나 적용할 수 있음.
  • yield return new WaitForFixedUpdate() : 업데이트에 적용할때까지 대기.
    • for문 안에 사용시 for문 한동작 한동작이 Update문에 적용되어 사용자에게 보여짐.

Unity3D Animation 설명
  • Window - Animation (Command or Windows Key + 6) : 애니메이션 기능 추가
  • Timeline : 0:00 / 0:30 / 1:00 / 1:30
    • 앞에 정수가 실제 초단위.
    • 뒤는 프레임을 가리킴 ( Unity3D는 1초에 60프레임을 재생)
  • Animation 작업창에는 각 오브젝트를 작업할 수 있게 Transform이 있음.

  •  : Add KeyFrame

  •  : Add Event - 할줄모르면 누르면안됨. 에러남
  • KeyFrame을 하기전에 Transform 속성중에서  이표시를 한번 누른 후에 [Add Key Frame]을 눌러야 함.
  • Transform 속성에서 숫자입력하는 곳이 변화하고 싶은 수치를 중간 중간 입력하여 애니메이션을 적용.
  • Timeline에 있는 붉은 선을 움직이면 애니메이션 효과를 미리 확인가능.
  • Assets 목록에서 새로만든 Animation을 선택하면 Inspector창에 Wrap Mode에서 한번할 것인지, 반복할 것인지 선택가능.
Unity3D GameObject 설명
  • GUIText : 소스말고 Unity상에서 Text표기시 사용. (0,0) 좌표는 좌측 상단
    • Anchor, Aligment로 정렬가능.
  • Cube에 이미지를 맵핑하면 사방으로 이미지가 표시됨.

Unity3D Assets 설명
  • GameObject - Quad : 평면오브젝트. Unity3D 4.2부터 생김.
  • Font : Font Size는 여기서 Default로 결정가능.
  • GUISkin : GUI관련된 Controller
    • GUI로 직접 그리면 힘듬. 보통 Assets Store에서 N GUI라는 유료 Assets을 사용
    • 그나마 Unity3D에서 지원하는 GUISkin이 쓸만함.
    • Button
      • Normal : 보통
      • Hover : 손이 올라갔을때
      • Active : 클릭했을때.
      • Focused : 선택되었을때

Unity3D Component 설명
  • Image적용후 배경을 투명으로 하고 싶을때
    • Inspector - Image적용한쪽 - Shader - Transparent/Diffuse 선택
  • MainCamera 원근을 업앨때
    • Inspector - Camera - Projection - Orthographic 선택.
    • Perspective : 원근이 있음.
    • Orthographic : 원근이 없음.

    Unity3D 관련사이트 소개