728x90
728x90
RPG게임을 하다보면 캐릭터를 이동시킬 때 클릭한 좌표로 캐릭터가 장애물들을 피해 이동하게 된다. 이처럼 플레이어가 장애물을 피해 특정 좌표를 향해 최단거리로 이동하는 기능을 유니티에서 제공하고 있다. 유니티에서 제공하는 NavMesh AI를 활용하여 장애물 오브젝트들과 Enemy를 피해 움직이는 player 미니게임을 만들어보기러 했다. 플레이 범위는 Walls 내로 좁혔고, Sphere/Cube/Cylinder 장애물들을 배치했다. 먼저 PlayMode에서 좌클릭 시 해당 좌표로 플레이어가 이동하는데 배치된 장애물들을 피해 최단 동선으로 찾아가는 Navigation AI를 사용해야 한다. Window - AI - Navgation에 들어가면 우측 Inspector 창 옆에 Navigation 창이 새..
Update()함수는 현재 씬의 실행 후 컴포넌트가 활성화 되있을 때 매 프레임마다 함수를 호출한다. 실행을 멈추지 않는 이상 로그들이 콘솔 창에 계속 실행된다. 보통 물리 효과가 적용되지 않는 오브젝트들의 움직임이나 단순한 타이머, 키 입력을 받을 때 사용된다. FixedUpdate()함수는 Update()함수와 유사하지만 Regurlar Timeline을 가지고 있다는 차이점이 있다. (time.deltatime)프레임의 영향을 받지 않고, TimeStep에 설정된 값에 따라 일정한 간격으로 호출되는 것 보통 Physics caculation을 진행해야 할 때 FixedUpdate함수를 사용하는데 여기서 Physics caculation이란 rigidbody 같은 컴포넌트들을 의미한다. 즉, 물리 효..
Awake()함수는 가장 먼저 호출되는 함수로서 인스펙터 창의 컴포넌트 스크립트가 비활성화되어 있어도 실행이 된다. 보통은 데이터를 초기화할 때 사용하는 함수 Start()함수는 Awake함수가 실행된 후 곧바로 1회 호출되는 함수, 하지만 컴포넌트 내 스크립트가 비활성화되어 있으면 실행되지 않는다. 역시 초기화를 위한 이벤트 함수 중 하나라고 보면 된다. + Start()함수는 앞으로 어떤 메서드를 사용할 건지 참조하는 기능을 수행하기 도 한다. 추가적으로 OnEnable함수는 컴포넌트가 비활성화되어있다가 활성화 될 때 1회 호출되는 함수 초기화 함수 호출 순서는 Awake() -> OnEnable() -> Start() Debug.Log는 함수를 실행됬을 때 어떤 결과값이 나오는지를 보여주는 기능 수행
Access Modifiers(접근 한정자)는 객체지향에서 공개하고 싶은 것은 공개하고, 은닉하고 싶은 것은 은닉할 수 있도록 코드를 수식하며 필드, 메서드, 프로퍼티 등 모든 요소에서 사용 가능하다. 접근 한정자를 사용하여 클래스 외부에서 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보를 공개/은닉할 수 있다. 접근 한정자로 수식하지 않은 클래스의 멤버는 무조건 private으로 접근 수준이 자동 지정되는 특징이 있다. 즉, 클래스 내의 멤버를 일단 감추고 나중에 공개할지를 결정하는 것이 순서이다. C#에서 제공하는 접근 한정자는 6가지 접근 한정자 설명 public 클래스의 내/외부 모든 곳에서 접근을 허용할 수 있다. 클래스 멤버가 외부로 공개되며, 해당 객체를 사용하는 어떤 프로그램에서도 직접..
가상 인간이 광고를 찍고 돈을 버는 시대가 왔다 언리얼 엔진, 유니티 및 기타 3D 모델링 툴을 공부하고 있는 나로선 현실과 헷갈릴 정도로 실사와 같은 그래픽으로 기술 고도화가 진행되고 있기에 다양한 산업에 투입되는 메타 휴먼의 가치기 무궁무진한 성장 잠재력을 가지고 있다고 생각했다. 그래서 한 번 만들어보고 싶었다. 배틀 그라운드 제작 툴로도 유명한 에픽게임즈의 게임개발 프로그램 '언리얼 엔진'에서 디지털휴먼 CREATOR 툴을 출시했다길래 얼리 억세스를 신청하고 바로 제작에 들어갔다. 메타휴먼 생성시 기본 탬플릿들이 수십가지 있다. 기본 탬플릿 마저도 엄청 사실적이라서 놀랐다. 기본 탬플릿을 중심으로 수정을 할 수 있는데 얼굴 형을 섞는 blend 기능부터 피부 톤, 눈 색깔 및 눈썹 형태/길이, 치..
Loops는 action을 반복하는 반복문 ForLoop 반복문은 "조건식이 참인 동안" 코드를 반복 실행하지만 while문보다 반복을 더 정교하게 제어할 수 있다. 반복 횟수는 구문상 결정되는 변수에 의해 조절되며 주로 정해진 수를 반복하기 위해 사용된다. -초기화 식 : 반복을 실행하기 전에 가장 먼저, 딱 한번만 실행되는 코드(사용할 변수를 초기화 할 때 사용) -조건식 : 반복을 계속 수행할지 결정하는 식, 조건식의 결과가 false가 되면 반복을 중단 -반복식 : 반복이 끝날 때마다 실행, 조건식에서 사용하는 변수의 값을 조정, 반복식 실행 후 조건식이 실행 int i = 0;은 변수 eterator로 loop 값(초기화식) i < numEnemies;는 loop를 반복시키는 조건(조건식) i+..