유니티 3D 포트폴리오 (4일차) 포스팅 썸네일 이미지

< Portfolio >/Unity

유니티 3D 포트폴리오 (4일차)

전투시스템, 스킬 구현 어제는 글쓰는걸 깜빡했고... 어제 오늘 구현 중인건 전투시스템이라고 할 수 있다. 에너미 체력바 상단표시와 데미지 출력 애니메이션 제작 후 출력, 레벨업 및 경험치 획등 기능, 아직 별다른 파티클이나 오브젝타일은 없지만 구별되는 스킬을 구현했다. (데미지 배수, 스턴 등.. ) 버그를 잡다가 배운거는 쿼터니언을 사용한 지정한 축만 로테이트 해주는 것.. 이건 다른 카테고리에 작성해두도록 해야겠다.

2020.01.09 게시됨

< Programming >/C#

박싱 언박싱

C# 자료구조인 컬렉션에 있는 ArrayList, queue, stack, dequeue, Hashtable 은 공통적으로 모든 자료형 즉, 최상위 자료형인 gameObject 까지 담을 수 있는데, 이 과정에서 제네릭(C++에서의 템플릿과 비슷)을 사용하는게 아니라면 박싱,언박싱을 하게된다. 예를 들어 int형 데이터를 저장할 때 자연스럽게 박싱을 거쳐 gameObject형 데이터로써 저장되는 것이다.다시 꺼내올 때에는 언박싱을 거쳐 int형으로 반환이 된다. 잠깐 이때 주의할 점으로는, int형이 아닌 타입의 데이터로 불러오려는 행위는 InvalidCastException 오류를 발생시킨다. (is 연산자 사용을 통한 타입확인) 이러한 일련의 과정은 성능저하를 발생시킨다. 이상으로 박싱언박싱과, 그에..

2020.01.07 게시됨

유니티 3D 포트폴리오 (2일차) 포스팅 썸네일 이미지

< Portfolio >/Unity

유니티 3D 포트폴리오 (2일차)

전투 약간 욕심을 부려서 원하는 기능 한가지를 추가해보도록 한다. 플레이어는 총 두개의 케릭터를 번갈아가며 플레이할 수 있고, 버튼을 통해 스왑이 가능하게끔 할것. 케릭터 A를 플레이 중일때는 B가 뒤에서 따라오게끔하고, 반대의 경우도 마찬가지. 에너미 공격방식은 일단, 네비매쉬로 달려와서 거리안에 들어오면 공격하는걸로 하고... 일단 기능적으로... 세세한 기능인데 직접 스크립트 작성하는건 처음이라 그런지.. 몇가지 배우면서 하느라 하루종일 구현한 기능이... 레이어에따른 다른 색깔의 아웃라인 출력이다. 근데 다시 되돌리는걸 아직 못했다.. ㅋㅋ 이 외 기본적으로 뛰는 모션추가, 카메라 디아블로 식으로 수정.. ++ 집에와서 추가적으로 전투시스템... 구현 중 이게 방식이..맵에 장애물을 배제하고 단순..

2020.01.07 게시됨

유니티 3D 포트폴리오 (1일차) 포스팅 썸네일 이미지

< Portfolio >/Unity

유니티 3D 포트폴리오 (1일차)

대략 한달정도 기간 동안, 유니티에 입문하고 몇가지 튜토리얼을 따라 만들면서 공부를 해왔다. "절대강좌!유니티", youtube sebastian Lague 채널 ShootingGame porject 25강 등... 사실 유니티에 들어오고 C#을 처음 접하면서, 문법이 아닌 기능적인 측면에서 외울 수 없을만큼의 방대한 양의부담이 느껴졋다. 포트폴리오를 여러개 제작 해봄으로써 자주 사용하는 기능들에 한에서 자연스레 외우고, 나머지 기능같은 경우는 그때그때 찾아보면서 공부하는 방식을 채택해야 할 것 같다. 1.주제 선정 일단 3주 포트폴리오는 따라하는 형식이 아닌, 창작으로 만들것이다. 간단한 로그라이크방식의 RPG를 생각 중이며, 부분적인 기능들을 여기저기서 끌어다가 만들 것. 맵같은경우는 여태까지 했던 ..

2020.01.06 게시됨

< Programming >/C#

유니티 스크립트 정리 (3일차)

추적할 대상을 따라가는 로직 ( 플레이어를 따라가는 카메라 )플레이어의 이동로직은 해당 스크립트의 update 함수에 있기에, 카메라의 추적하는 로직은 해당 스크립트의 LateUpadate() 함수에서 해준다.이는 스크립트의 실행 우선순위( Execution Order )를 지정하지 않는 한 어느 스크립트에 있는 Update함수가 먼저 실행될지 불확실 하기 때문이다. 불규칙한 난수를 발생시키는데 사용하는 함수 insideSpeher -> 반경이 1인 구체 내부의 3차원 좌푯값(Vector3)을 불규칙하게 반환한다.Perlin Noise -> 0과1사이의 난수를 발생시키지만 일반 난수 발생기와는 다르게 연속성이 있는 난수를 발생시키는 것으로 무작위한 terrain또는 텍스처,구름 등을 생성할 때 유용하게 ..

2019.12.19 게시됨

< Programming >/C#

유니티 스크립트 정리 (2일차)

readonly (리드온리) 또는 const (전역) 형으로 선언함으로써 런타임에 변숫값을 변경할 필요가 없는 변수의 경우에 사용한다. -> 가비지 컬렉터에 쌓이지 않도록 하기 위함이다. Player 를 쳐다보는 Enemy의 각도를 구하는 방법 -> Quaternion rot = Quaternion.LookRotation(playerTransform.position -enemyTransform.position);해당 각도까지 점진적인 회전-> enemyTransform.rotation = Quaternion.Slerp(enemyTransform.rotation, rot, Time.deltaTime * damping);ps. damping = 회전속도 위 내용을 정리하자면, 두 벡터의 밸셈은 방향 벡터를 ..

2019.12.18 게시됨

< Programming >/C#

유니티 스크립트 정리

[시리얼라이즈드필드] //인스펙터 창에서 보여줌 priavte int speed = 10; Vec = new Vector3() {0,0,0}; (x,y,z 를 갖고있는 구조체) 벡터 메소드 목록forward 0,0,1right 1,0,0up 0,1,0zero 0,0,0one 1,1,1... //키보드 이동(1)if(Input.GetKey(KeyCode.RightArrow)){transform.....} //키보드 이동(2)//조이스틱 등의 키입력도 모두 하기 위해 float h = Input.GetAxis("Horizontal"); //소수점까지 나온다int v = Input.GetAxisRaw("Vertical"); //정수로 나온다 h = h * speed * Time.deltaTime;-> tran..

2019.12.17 게시됨