- Today
- Total
목록분류 전체보기 (360)
프로그래밍 농장
TPS 형식의 게임을 제작하는 과정을 담은 포스팅입니다. - 1 기본적인 TPS 게임 시스템은 좀비를 사냥하여 점수를 획득하는 구조이며, 좀비 오브젝트들은 ml 학습 데이터를 넣어줄 예정이다. 첫째로는 미리 선정한 Map을 적용시켜주고, Preset에 이미 Light가 있기에 기존의 Directional Light를 삭제해준다. 이후 위와 같이 의도한 ui와 밝기 . . 등에 맞게 값을 설정한 후, Light를 구워준다. 이때 구워준다는건, Realtime으로 실시간으로 빛을 받아주어 처리하게 되면 메모리사용이 심하기 때문에 오브젝트에 Light를 쐬었을때 예측되는 색변화에 대한 데이터를 미리 적용후 Bake하여 사용하는 과정이다.
유니티에서 오브젝트를 동작할때, 앞뒤좌우의 입력을 받으면 Animator에서 대응시킨 동작방식에 따라 동작하게 된다. 이때, 단순히 Input에 따른 동작을 수행하는것이 아니라, 동작간의 Translation Duration 의 조작, 그리고 Blend Tree를 활용한 다양한 애니메이션의 블랜딩을 통한 자연스러운 오브젝트 동작을 구현할수있다. 단순히 각 Input에 따른 Animator 동작을 수행하도록 구현하는것이 아닌, 예를 들어 앞뒤좌우의 이동동작에 대한 입력을 동시에 받아서 동작하도록 구현하고자 할때, 아래와 같이 Blend Tree를 하나 만들고 아래와 같이 각 Input에 대한 동작을 블랜딩해주면된다. -> 위와 같이 Blend Tree는 여러개의 Animation을 부드럽게 섞으면서 현재 ..
- Sum Algorithm (합계 알고리즘) Sym Algorithm은 말 그대로 더하는 알고리즘이다. 아래의 정수형 6칸 배열 scores[] 의 값중, 80이상만 더하라 하였을때, 아래와 같이 구현할수있다. static void Main() { //[1] Input int[] scores = { 100, 75, 50, 37, 90, 95 }; int sum = 0; //[2] Process : 알고리즘 영역 foreach (int a in scores) { if(a >= 80) { sum += a; } } //[3] Output Console.WriteLine($"{scores.Length} 명의 점수 중 80점 이상의 총점 : "+ sum ); } 위와 같이 알고리즘 동작 코드에서는 기본적으로 [..
- Sum Algorithm (합계 알고리즘) Sym Algorithm은 말 그대로 더하는 알고리즘이다. 아래의 정수형 6칸 배열 scores[] 의 값중, 80이상만 더하라 하였을때, 아래와 같이 구현할수있다. static void Main() { //[1] Input int[] scores = { 100, 75, 50, 37, 90, 95 }; int sum = 0; //[2] Process : 알고리즘 영역 foreach (int a in scores) { if(a >= 80) { sum += a; } } //[3] Output Console.WriteLine($"{scores.Length} 명의 점수 중 80점 이상의 총점 : "+ sum ); } 위와 같이 알고리즘 동작 코드에서는 기본적으로 [..
액션 : C#에서 제공하는 사용하기 쉽게 제공하는 delegate 람다 : 코드 도중에 이름이 없는 함수를 탄생시키고 이를 다양하게 사용가능하다. 기존 delegate 함수의 사용방식 : using System.Collections; using System.Collections.Generic; using UnityEngine; public class Worker : MonoBehaviour { //입력, 출력이 없는 함수 대행 (delegate) delegate void Work(); Work work; void MoveBricks() { Debug.Log("벽돌을 옮겼다"); } void DigIn() { Debug.Log("땅을 팠다"); } private void Start() { work += M..
- Delegate? : 대행하다 : 어떠한 기능을 목록에 추가해놓으면 여러분들의 기능을 대신 수행시켜준다. -> Delegate에 사용자가 수행시킬 기능 (함수. . )들을 리스트형식으로 넣어두고, 이를 델리게이트가 대신 수행시켜주는 방식이다. -> 이때는 포인터형식으로 내장되어있기에, 함수들의 주소값이 있다고 보면된다. 아래와 같이 delegate 를 구현해놓은 함수와 같은 타입과 인자형식으로 만들어놓으면, Start() 에서 그냥 기존 함수를 대입만 해주면 된다. 왜 사용할까? 버튼이 눌리면 아바타에 옷을 입힌다 👉 무기를 들게 한다. 👉 랜덤 메세지를 출력한다. 이런 과정들이 순차적으로 실행되게 하고 싶다면 버튼 눌리는 함수 내부에 각각의 기능들을 함수로 직접 실행시키면 되겠다. 즉 ButtonP..