본문 바로가기

반응형

- GameProgramming

★ 14. 포톤 클라우드 (Photon Cloud) Marco Polo 튜토리얼 [3/3] Marco Polo 튜토리얼 지난번 [2/3]에 이어 [3/3]을 작성해보겠습니다. # 애니메이션 추가하기 문제가 좀 있습니다. 쉽게 애니메이션 상태를 알 수가 없습니다. 여러 몬스터들이 달리고 혼합되는 것들에 대해 동기화 할 수 있는 다른 방법을 찾아봐야합니다. MyThirdPersonController 클래스를 통해 문제를 해결할 수 있습니다. 이 클래스는 _characterState 변수를 모든 애니메이션 트리거를 위해 사용하고 몬스터의 CharacterController.velocity 정보에 기반하고 있습니다. 로컬에서 작동하지만 리모트 복사에는 velocity 를 가지고 있지 않습니다. 단순하게 위치를 재조정 하는 것입니다. 만약 몬스터가 자신의 상태를 전송한다면 복사본은 수신되는 값으로 적용.. 더보기
★ 13. 포톤 클라우드 (Photon Cloud) Marco Polo 튜토리얼 [2/3] Marco Polo 튜토리얼 지난번 [1/3]에 이어 [2/3]을 작성해보겠습니다. # Marco Polo: 위치 정보 동기화 지금까지 바이킹이 뛰어다니는 것을 보았으니 동일한 것을 한번 해보겠습니다. 우선 아래의 링크에서 "Monster" 캐릭터를 다운로드 받겠습니다.https://www.dropbox.com/s/70xc0ljeashw5g9/MonsterForPun.unitypackage 이름으로 프리팹의 인스턴스를 생성할 것인데 이 의미는 이 프리팹이 Resources 폴더 내에 있어야 한다는 것입니다. 에셋 "monsterprefab" 을 선택하고 PhotonView 의 컴포넌트를 추가해주세요. 컴포넌트 메뉴에 "Photon Networking" 카테고리가 추가될 것입니다. # Photon View.. 더보기
★ 12. 포톤 클라우드 (Photon Cloud) Marco Polo 튜토리얼 [1/3] Marco Polo 튜토리얼 Marco Polo 튜토리얼은 Unity3D 기반의 튜토리얼입니다.이 튜토리얼에서는 Photon Cloud 를 이용한 멀티 플레이어 어플리케이션을 어떻게 개발하는지에 대해 알려드립니다. # 목차 개요걸어가는 바이킹들Photon Cloud기초부터 시작하기Reception 룸 얻기Marco Polo 위치 동기화외치고 응답하기Switch "It"결론 # 개요 이 튜토리얼은 첫 파트에서 Photon Unity Networking(약어 : PUN) 데모 하나를 단계별로 보여줍니다. PUN 패키지를 임포트하여 Photon Cloud 를 사용할 수 있도록 설정한 다음 실행해볼 것입니다. 두 번째 파트에서는 Photon Unity Networking 패키지와 Photon Cloud 서비스로.. 더보기
★ 11. [NGUI] iTween iTween, iTween Path, NGUI Tweener # 트위닝트위닝이란 게임에서 사용되는 오브젝트의 시간당 변화를 의미합니다.일정 시간동안 크기, 위치, 방향 등의 움직임을 모두 트윈이라 하며 게임에서는 이러한 움직임이 매우 많이 사용됩니다. 오브젝트 뿐만 아니라 오디오나 카메라에서도 사용됩니다. # iTween유니티에서 트위닝을 돕는 플러그인 중 인기가 많은 iTween에 대해서 살펴보겠습니다. iTween 외에도 다양한 플러그인이 존재합니다. 대부분 무료이고 성능의 차이가 있다고 하지만 최근 버전이 높아지면서 그 차이는 느끼기 힘들어졌습니다. 에셋스토어에서 무료로 다운 받아 사용할 수 있습니다.http://www.pixelplacement.com/itween/ itween 홈페이지에서 사용 .. 더보기
★ 10. Unity 최적화 기법 Unity 3D :: 게임 최적화 기법 [최적화의 시작은 병목 파악부터] # CPU - 너무 많은 DP CALL - 복잡한 스크립트나 물리 연산 # Vertex Processing - 너무 많은 버텍스들 - 버텍스당 너무 많은 연산 (Vertex Shader) # Fragment Processing - 너무 많은 픽셀, 오버 드로우 (Over Draw) - 프래그먼트당 너무 많은 연산 (Fragment Shader / Pixel Shader) # Band Width - 크고, 압축되지 않은 텍스쳐 - 고해상도 프레임 버퍼 [스크립트 최적화] # 유니티의 핵심 기능은 모두 C++로 제작되어 있다. # 예) Transform.position 에서 Transform은 C# 속성, Position은 C++ 영역.. 더보기
★ 2. Unity 환경의 증강현실(AR) 기초 구현 2/2 이제 실질적으로 스마트 기기에서 증강 현실을 구동시켜보도록 하겠습니다. 제가 설정해둔 '타겟' 위에 큐브를 하나 올려 놓고 화면이 터치될 때마다 색깔이 바뀌도록 만들어보겠습니다. 일단 'Materials'라는 폴더를 하나 만들고 '폴더 우클릭 -> Create -> Material'로 새로운 머테리얼을 하나 만들어줍니다.그다음 Hierarchy의 'ImageTarget' 하단에 큐브를 하나 만들고 새롭게 만든 Material을 입혀줍시다. 이제 터치하면 큐브의 Color를 바꿔줄 코드를 작성해보겠습니다.프로젝트에 'colorChange.cs' 라는 스크립트를 하나 만들어 아래와 같이 작성해줍니다. 123456789101112131415161718192021222324252627282930313233343.. 더보기
★ 1. Unity 환경의 증강현실(AR) 기초 구현 1/2 Unity 엔진, Vuforia SDK를 이용해 증강현실(AR)을 구현해보도록 하겠습니다. 일단 유니티 엔진을 설치해보도록 하겠습니다. 아래의 유니티 사이트에서 설치하실 수 있습니다. https://store.unity.com/kr/download?ref=personal 제가 사용한 유니티 버전은 5.3.5f1 버전입니다. 이제 AR 구현에 필요한 SDK를 받기 위해 아래의 홈페이지로 들어갑니다. https://developer.vuforia.com/ 아이디가 있으시다면 Log In을 누르셔서 로그인 하시거나 없으시면 회원 가입을 하셔야합니다. 패스워드는 최소 8글자, 대문자와 소문자를 섞어야한다고하네요. 로그인을 하셨으면 Downloads 탭의 SDK, Download for Unity를 다운로드 해줍.. 더보기
★ 9. Unity Editor 확장 입문 - [3] 데이터의 보존 [3] 데이터의 보존 에디터 확장에서 기능을 넣을 때, 수치를 보존해서 다음에도 사용하고 싶을 때가 있을겁니다. 그 수치는 에디터 확장 설정에 관한 파라미터일 수도 있고 게임에 관련된 파라미터일 수도 있고 다양합니다. 유니티에서는 데이터를 보존하는 수단이 다양합니다. 크게 3개의 패턴으로 나눠볼 수 있는데 그것에 대해서 알아보겠습니다. 3.1 EditorPrefs PC 내에서 공유할 수 있는 데이터 보존 방법입니다. 프로젝트에 관계 없이 유니티 에디터를 통해 수치를 공유합니다. [영향을 미치는 범위] 저장한 수치는 메이저 버전(4.x, 5.x)이 같다면 공유가 가능합니다. [무엇을 저장하는가?] 윈도우의 위치, 사이즈, 유니티 에디터의 환경설정(Preferences에 있는 설정) 수치들을 저장합니다. 독.. 더보기
★ 8. Unity Editor 확장 입문 - [2] 표준에서 사용할 수 있는 에디터 확장 기능 [2] 표준에서 사용할 수 있는 에디터 확장 기능 2.1 인스펙터 창의 외관 변경 (1) Range [ 좌측 : Range 사용 X, 우측 : Range 사용 O ] 1234567891011121314151617using UnityEngine;using System.Collections; public class NewBehaviourScript : MonoBehaviour{ [Range(1, 10)] public int num1; [Range(1, 10)] public float num2; [Range(1, 10)] public long num3; [Range(1, 10)] public double num4;}Colored by Color Scriptercs (2) Multiline / TextArea .. 더보기
★ 7. Unity Editor 확장 입문 - [1] 에디터 확장에 사용하는 폴더 [1] 에디터 확장에 사용하는 폴더 1.1 Editor 폴더 Editor 폴더는 에디터 API를 사용하기 위한 특별한 폴더입니다.보통 에디터 API는 런타임으로 동작하지 않습니다. 아래의 코드를 Assets 폴더 바로 아래에 작성해서 빌드해보면 빌드가 실패되었다고 나오게 됩니다.쉽게 말하자면 아무 폴더에도 들어가 있지 않은 상태에 하단의 스크립트를 생성하고 Unity 엔진 Build Settings 창의 Build 실행시 123456using UnityEngine;using UnityEditor; public class NewBehaviourScript : MonoBehaviour{}Colored by Color Scriptercs 개발 중의 유니티 상에서 생성되는 Assembly-CSharp.dll 에.. 더보기

반응형