- Today
- Total
목록Unity (90)
프로그래밍 농장
이번 포스팅에서는 기존 학습하였던 VFX를 활용하여 간단하고 다양한 이펙트를 구현해보는 내용을 작성하겠습니다 .. 아래는 게임이펙트를 주로 다루는 커뮤니티에서 퍼온 포스팅중 일부이다. 기본적인 게임에서의 VFX를 활용한 이펙트 구현방식 , 개념 등을 쉽게 이해할수있으니 참조하면 좋을것같다. 유니티 - VFX 및 게임 개발에 유용한 5가지 셰이더 그래프 [유니티, 셰이더 그래프] 1 질감의 강도 조절 2 불투명도 조절 3 뎊스(깊이) 페이드 오브젝트 4 Vertices Offset(정점 오프셋) 5 노이즈 텍스처가 있는 디졸브(분해되는) 오브젝트 아래링크참조 https://paulinavfx.com/5-useful-shade mingtyyy.cafe24.com 그러면 간단한 이펙트부터 만들어보며 설명을 진..
게임 개발을 시작할때 어떠한 요소를 추가해야 할지, 개발을 어디서 시작해야할지, 우선순위는 무엇인지, 언제 완성했다고 해야할지, 이런 총괄적인 부분에 대해서 'Onion Design' 으로 귀결시켜서 우선순위를 정하면 편하다. 양파 디자인은 말 그대로 여러 Layer로 구성된 양파처럼 본인이 정한 중요도(우선순위)에 따라 프로젝트를 진행하는 방식이다. 본인도 게임개발을 하는 과정에서 중간중간 다양한 기능들을 추가하고자 하는 과정을 거치다보면 결과적으로는 게임의 완성도가 떨어지는 경우가 많았다. 단적인 예로 최근 Visual Scripting 기반의 간단한 토이프로젝트를 만들었는데, 이때 발사체의 궤적을 화면상에 띄워주는 기능을 구현하기 위해서, Line Renderer를 통한 기능구현을 진행하였다. 이때..
유니티 교육과정에 있어 먼저 진행해야할 프로젝트가 있어 잠시 보류했었다. 보류 전 정리해두었던 부분인 Player / Enemy 전반에 대한 IDamageble 인터페이스 구현을 통한 데미지 처리방식 개편을 우선적으로 진행하였다. 8일차 추가사항 - IDamageble 인터페이스 구현을 통한 Damage 처리방식 개편 - Enemy 추가 및 활동범위 및 스캔/공격 - DollyTrack / Cart 를 이용한 게임 플레이 전 맵을 보여주는 시네마틱을 연출하였다. 개발 노트 ( 진행사항 ) 08/30 (화) 프로젝트 시작 Map / Turret / Player Asset 다운 플레이어 이동구현 터렛 범위 내 접근시 조준 및 발사 기능구현 ( Raycast ) ->error :최초 RayCast 발사시 플레..
Package Manager에서 Cinemachine 및 sample Scene까지 다운받고 아래와 같이 씬을 열어 플레이해준다. (2D) 플레이어를 이동시켜보며 시네머신 카메라가 어떤식으로 동작하는지 확인해본다. 그렇다면 이번에는 시네머신 카메라를 삭제하고 직접 생성해서 구현해보도록하겠다. 아래와 같이 시네머신 카메라를 새로 생성해준 후, 인스펙터상의 Follow를 캐릭터에 맞추어 준 후 플레이해보면, 시네머신 카메라가 자동으로 캐릭터를 따라다니며 비추게 된다. 카메라의 orthograph 사이즈 설정도 가능하다. 그 외 인스펙터에서 dutch angle 등 카메라에 대한 다양한 설정이 가능하다. 또한 아래와 같이 Body 인스펙터에서 카메라가 비출 중심점을 지정해줄수도있다. 아래와 같이 임의로 y축을..
아래와 같이 시네머신 카메라를 사용하게 되면, 사용자가 벽에 부딪히거나 할시, 카메라가 벽 뒤를 비추는 현상이 발생한다. 이때 Inspector의 Extension -> CinemachineCollider를 적용하게되면 벽에 부딪혀 뚫리는 형상이 발생하지 않는다. 해당 원리는 아래와 같이 벽에 부딪힐시, 시네머신 카메라가 교체되는 원리로 구현되는 것이다.
Base 란, 기본적으로 해당 키워드를 사용하는 클래스의 부모 클래스를 가리키는 것이다. 아래와 같은 코드가 있다고 가정해보자 . class Fruit { string g_name; int g_grade; int g_price; public Fruit(string name, int grade, int price) { g_name = name; g_grade = grade; g_price = price; } public void Sell() { Console.WriteLine("과일 {0}을(를) {1}원에 팔았습니다.", g_name, g_price); } public void Info() { Console.WriteLine("과일 이름: {0}", g_name); Console.WriteLine("과일..