728x90
반응형

Game Development, 게임개발/개발 98

투사체 경로 흔적 남기기, ProjectileTrail [ Unity]

투사체에 Effect를 주거나 흔적을 남기고 싶을 때가 있다. 아니면 앵그리버드처럼 궤적을 남기거나 무슨 일을 하고싶을 때가 있다. 알아보자 우선 유니티에는 Trail Renderer라는 것이 내장되어있다. 그래서 단순히 이 렌더러를 붙여서 약간을 조작하는 것만으로도 Trail을 그릴 수 있다. 스크립트 없이도 단순히 해당 투사체에 렌더러를 붙여 조작하는 것만으로도 충분히 좋은 효과를 만들 수 있다. 뭐 이런 식으로 만들 수 있다. 이렇게 많은 Property들이 있어 가능하다. 모든 것을 살펴볼 필요는 없고 주요 기능을 보자면 Time: Trail을 몇 초 동안이나 유지할 것이냐? -> 값이 커지면 Trail이 Scene에 더 오래 남아있음 Width: Trail의 시간에 따른 넓이를 어떻게 할 것이냐..

마우스 입력 받아서 이용하는 4가지 방법[Unity]

마우스는 스크린에 있지만 이용하려면 WorldSpace로 변환하던가.. 무엇인가 해야하는 상황이 있다. 마우스 입력을 받아서 이용하는 방법에 대해 알아보자. 0 번째 방법 Input.mousePosition 얘는 그냥 Screen을 바로 출력해서 해상도가 1920 * 1080이면 오른쪽 위를 클릭하면 (1920,1080)을 반환한다. 본격적으로 첫 번째 방법 ScreenToWorldPoint( ) 이 방법은 2D게임이나 3D를 isometric으로 볼 때 많이 쓴다. ** 그 외적으로는 우리가 기대한만큼의 정확성을 기대하기 어렵다. 적어도 x,y를 우리가 스크린에서 조절할 수는 있지만 z에 대해선 마우스로 조절할 수 없는 영역이다. 우리가 저기서 Input.mousePosition에서는 z 성분을 얻을 ..

Invoke로 인한 문제점 [Unity]

오브젝트 풀링을 사용할 경우 미리 만들어놓고 끌어다 쓰는 경우다. 물론 비활성화되어있기에 스크립트가 단독으로 실행되는 경우는 없으나 나는.. 이것 때문에 2시간 날린듯... 영어로 구글링을 치고 한글로 검색한 끝에 원인을 찾았다. 바로 비활성화되었음에도 메서드가 실행되어서 Null이 뜨는 것... Debug.log(this)로 찾아냈지만 그 오브젝트가 실행되는 이유를 알 수 없었다. 아니.. Awake나 OnEnable로 잠깐 활성화된 시간이 있다해도 비활성화되면 꺼져야하는 것 아니냐??? 라고 생각했다. 하지만 아니었다. 활성화 또는 비활성화에 따라서 - OnEnable/OnDisable 이벤트 함수가 호출된다. - 게임 오브젝트가 비활성화되면 GameObject.Find 및 GameObject.Fin..

배경음악 설정하기, 볼륨 조절, 씬이동에도 지속하기 [Unity]

이 글에서 다룰 것은 2가지 씬 이동에도 배경음악이 흐르게 하기 배경음악 소리 조절하기 바로 들어가보자. 요약 게임이 시작하면 배경음악이 흐름 다른 씬으로 넘어가더라도 음악이 흐름 옵션에서 배경음악의 크기를 조절하게끔 하고 싶음 오디오 소스를 넣기 위해 오브젝트를 만든다. WIndow -> Audio 에서 Audio Mixer를 열어준다. Group에 Music이라는 다른 믹서를 만들어준다. (배경음악만 조절하기 위함) Music을 클릭하면 Inspector 창에 뜬다. 우클릭을 하여 expose를 해준다. 그다음 자기가 원하는 Parameter이름을 설정해준다. 지금까지 한 작업 볼륨믹서를 만들어 배경음악만 조절하기 위한 준비 볼륨믹서를 스크립트에서 조절하기 위한 준비 배경음악을 플레이해주는 오브젝트 ..

UI, 유저인터페이스 응용 - 인벤토리 만들기

참고링크를 따라서 만들 것이다. 이런 식으로 진행할 예정이다. 아이템 구현, 장착, 장착해제 등등 우리가 하고 싶은 것은 다 한다. 우리의 게임은 구성이 이렇게 되어있다. 와 정말 복잡해 보인다!! 하지만 이렇게 객체 지향을 잘 따르는 설계는 좋다. 해보자 원활한 게임을 위해 우리가 만들어야 하는 메서드들을 잠깐 살펴보자 인벤토리에 필요한 애들이다. 오.. 우리가 이러한 메서드를 구현해야 한다는 말이다. ㅎㅎ따라서 만들 것이다. 당연히 다른 스크립트도 존재한다. 이런 것들을 다 해야한다니 너무 신난다 ㅎㅎ 재밌게 만들려면 피땀눈물ㅠ 다 들어가야하나보다. 필요한 것들을 알았으니 이제 만들어보자. 참고링크 learn.unity.com/tutorial/building-out-an-inventory-system

UI, 유저인터페이스 기본 - 5 Overflowing Information, Scrollbars, and Other Tricks [Unity]

이제 다음 UI 에 대해서 배워보자. 왜 이렇게 기본이 많아? 라고 생각할 수 있겠지만 기본을 다 하면 응용은 무한대로 가능하니까 참도록 하자. 저런 것들 살짝 찍먹해보자 처음엔 애니메이터를 이용을 해보려고 한다. 글자가 화면 밖으로 이동하게해서 없애려고 한다. 애니메이션 클립 만들고, 불리안 값 정하고 스크립트로 작동하게 하면 되겠다. 우선 보기엔 간단해보인다. 가보자 텍스트를 우선 만든다. 텍스트 컴포넌트에 애니메이터 추가 추가했으면 이제 애니메이터 작동을 위해 애니메이터 창과 애니메이션 창을 연다. ++둘이 위아래로 붙어있다. 애니메이션을 추가하자. 추가했으면 속성, Property도 추가해주자. 우리는 Anchored Position을 쓰려고 한다. 저기 빨간색을 누르면 녹화가 되는데..? 녹화를..

UI, 유저인터페이스 기본 - 4 Toggles, Sliders, Inputs, and Dropdowns [Unity]

그렇다고 인터페이스가 버튼만 있지는 않았으니.. 더 있다. 당연하게도 이렇게 더 있다. 토글, 슬라이더, 입력창, 체크박스 등등 알아보자 먼저 Input Field부터 알아보자 여기 씬에 Configuration Panel이 있다. 굳이 해석하자면.... 구성요소..라고나 할까?? 해석하기 어렵다. 아무튼 여기다 Input Field를 넣으려고 한다. 짠! 생겼다. 엥.. 버튼처럼 생겼네 혹시 child처럼 딸려오나?? 정답! Placeholder는 우리가 입력을 하고 있지 않을 때 보여지는 텍스트다. ++ 전화번호 ex) 000-0000-0000 이런식으로 입력해야 할 텍스트를 설명할 때 사용한다. 실제 값을 가지진 않는다. -> 입력하지 않는다고 해서 placeholder의 값인 000-0000-00..

UI, 유저인터페이스 기본 - 3 Event trigger and Navigation [Unity]

텍스트, 이미지는 했는데 뭔가 UI에 동작이 없으면 안되잖아? 독서 어플리케이션도 아니고 그냥 보여주고 끝날건 아니잖아ㅎㅎ 그래서 알아보기로 했다. 이벤트 트리거들을 ㅎ 이벤트하면 무슨 버튼을 누르면 작동해야지?라는 생각이 먼저 든다. 그래서 버튼 알아보려고 한다. 사실 Interaction을 하기 위한 것이 UI라면 버튼이 차라리 대표적일 것 같은 느낌을 준다. 나만 그럴 수도 있고 아무튼 UI에서 버튼을 만들어보자 이렇게 항상 text가 child로 같이 딸려온다. text가 버튼의 이름이 되겠다. 버튼에는 또 Inspector창을 보면 옵션이 참 많다. Highlighted 는 마우스를 가져다 댔을 때 Pressed는 눌렀을 때 Normal은 그냥 냅뒀을 때 색도 이렇게 경우에 따라서 바꿀 수 있다..

UI, 유저인터페이스 기본 - 2 Text, Image, Responsive UI [Unity]

UI에 관한 기본적인 배경지식으로 이제 진짜 UI를 다뤄볼 것이다. 다룰 내용은..? 이 정도? 알아보자 먼저 텍스트와 스프라이트, 이미지부터 알아보자 UI 오브젝트 중 Text를 만들자. Text는 Inspector 창에서 글꼴, 크기, 스타일, 색, 배열 등 많은 것들을 바꿀 수 있다. 특히 여기서 Best Fit으로 최소 크기와 최대 크기를 정해주면 텍스트 사이즈에 따라 변화하게 만들 수 있다. -> 스크린에 따라 글자 크기를 바꿀 수 있다는 말이다. 글자에는 효과도 줄 수 있는데 대표적인 것이 Shodow, 그림자다. 다른 것도 Effect 컴포넌트에 가보면 있다. 그리고 만약 우리가 가지고 있는 Canvas 크기가 작아서 글씨가 선명하지 않고 계단현상, 안티앨리어싱 문제가 발생하면 이를 선명하게..

UI, 유저인터페이스 기본 - 1 [Unity]

인터페이스하면 그냥 사용자와 컴퓨터 간의 상호작용을 할 수 있다는 감이 온다. 이건 오랜 시간 게임에 몸을 담고 있다면 느껴지는 감이다. 자세히 알아보자 먼저 자주 쓰이는 용어를 정의해보자 UI와 HUD란 것이 있다. UI, User Interface 의 사전적의미는 사람과 컴퓨터같은 기계장치 간의 상호 작용을 하는 설계,design 를 말한다. 이 상호작용이 목적은 기계장치의 올바른 작동이나 효율적인 작동을 하기 위함이며 동시에 피드백을 줄 수 있어서 사용자의 의사 결정을 돕는다. HUD는 Head-Up Display로 게임 안에서 상태창, 점수와 같이 플레이어가 직접 건드리지는 못하지만 게임의 UI라고 볼 수 있는 것을 말한다. **우리가 점수를 얻을 수는 있어도 조작은 못하는 것처럼 그런데 UI가 ..

728x90
반응형