본문 바로가기

프로그래밍36

[Unity NavMesh] 확장: 움직이는 길을 네비게이션 메쉬 영역으로 설정하기 (2 - 이동 제한) 바로 전 글이었던 "움직이는 길을 네비게이션 메쉬 영역으로 설정하기 (1)"에서 이어지는것입니다. 거기서 언급했던 문제들이 있는데요... 2번에선 예정대로 그걸 써볼까 하고 [Unity NavMesh] 움직이는 길을 네비게이션 메쉬 영역으로 설정하기 (1 - 기본 베이크) 움직이는 메쉬를 네비메쉬 (네브메쉬? 내비메쉬?) 영역으로 설정한다? 이걸 보신 분들은 대충 아 실시간 Bake 인 건가? 하실 수 있습니다. 하지만 유니티에 실시간 베이크따위는 존재하지 않습니 drybone-developer.tistory.com 1번 글에서 적은 문제는 이것들입니다. 근데 글이 너무 길어져서 1번 문제만 해결함 (미안해요!) 2번문제는 다음 글에... 그리고 글 쓸 때 컬러스크립터 폭 괜찮아보여서 냅뒀는데 완성하니까.. 2021. 11. 20.
[Unity NavMesh] 확장: 움직이는 길을 네비게이션 메쉬 영역으로 설정하기 (1 - 기본 베이크) 움직이는 메쉬를 네비메쉬 (네브메쉬? 내비메쉬?) 영역으로 설정한다? 이걸 보신 분들은 대충 아 실시간 Bake 인 건가? 하실 수 있습니다. 하지만 유니티에 실시간 베이크따위는 존재하지 않습니다. (있었으면 레테가 좀 더 편했을텐데요) 그래서 실시간 베이크도 할 수 없고 그렇다고 뭔가 다른 방법의 툴을 만들기엔 시간이 너무 부족하고 에셋을 사기엔 돈이 너무 없었던 제가 선택한 방법을 적어보려고 합니다. 기록용이라.. 별 .. 정보값은 없을 수도 있어요 그런데 이래저래 부가적인 내용은 많아서 꽤 긴 시리즈물이 될듯 (?) 계기 여러분이 마주한 문제가 이 문제가 맞는지 확인하셔야 하니 문제상황을 적습니다... Lethe-레테의 가장 기본적인 로직을 설정하려고 할 때의 일인데 레테가 '걸어다닐 수 있는 큐브.. 2021. 11. 17.
[Unity C#] 코루틴을 사용해서 페이드 인, 페이드 아웃 + α 레테에서 많이 쓴 기능. 페이드 인.. 페이드 아웃... Coroutine을 사용해서 UI Pannel을 페이드인, 아웃 하는 방법이에요. 이거 말머리에 UGUI 붙일까말까 좀 고민했어 (결국 안붙임) 굳이 판넬이 아니어도 alpha 값을 갖고있다면 무리 없이 가능한 것 같은데... 그런데 이게 GameObject에서도 먹힐지는 잘 모르겠어요 저번에 스프라이트로 해봤는데 안됐던것같기도 하고 어쨌든 이 예시에서는 Image 컴포넌트를 가진 판넬로다가 예시를 들어서 작성합니다. 1. 페이드 아웃 / 페이드 인 스크립트 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 GameObject FadePannel; //페이드 .. 2021. 10. 27.
[Unity UGUI] Sprite Swap 코드로 하기 (Event Trigger) 상호작용이 가능한 UI(버튼 등)에는 Transition 옵션이 있고, 이걸 Sprite Swap으로 하면 상호작용 중 스프라이트를 교체하거나 할 수 있는데 레테에서 다국어 지원을 하게 되면서, 스프라이트로 만든 이미지를 다국어로 교체하고... 또 각각의 언어에서 트랜지션을 실행할 필요가 있었어요 그런데 트랜지션 옵션엔 기본적으로 한 장씩밖에 안 들어가더라고요 스크립트를 이것저것 찾아보긴 했는데 제가 생각한대로 되진 않아서... 그냥 이렇게 해야겠다! 하고 짜게 된 코드입니다. 어제도 Event Trigger 에 대해서 쬐끔 썼었죠 이것도 비슷해요 [Unity UGUI] 버튼을 누르고 있을 때 실행하기 (Event Trigger) UI상에서 버튼을 누르고 있을 때 특정 코드를 실행하기 옛날 옛~날에 유니.. 2021. 9. 17.
[Unity UGUI] 버튼을 누르고 있을 때 실행하기 (Event Trigger) UI상에서 버튼을 누르고 있을 때 특정 코드를 실행하기 옛날 옛~날에 유니티 처음 배울때 과제로 러닝게임(그런데 이제 소스가 거의 주어진)을 만드는 게 있었는데 기말과제가 그 소스나 코드 같은 걸 변형하고 추가해서 더 다듬어서 내는거였어요 그런데 주어진 소스에는 .. 버튼을 눌렀을 때 점프하는 방법은 있었지만 버튼을 누르고 있을 때 슬라이딩 하는 방법은 적혀있지 않았어 그래서 여러개 검색해보고 내린 결과가 이것입니다 여튼 유용하게 쓸 수 있습니다 슬라이딩이 아니더라도 Event Trigger 사용 제목에도 써뒀지만 저는 이벤트 트리거로 해결했습니다. 이벤트 트리거를 쓰면 여러 상황에 특정 함수를 실행할 수 있도록 만들 수 있는데요... 이벤트 트리거 컴포넌트를 추가하고, Add New Event Type.. 2021. 9. 16.
[Unity UGUI / C#] 이미지를 원래 크기로 + α 문제 해결 하는 스크립트. 런타임중에 작동 가능합니다. 유니티 에디터 상에서는 바로 이 버튼입니다. 이걸 근데 .. 고작 이거때문에 C#을 쓰자니 뭔가 웃기네 여튼 스크립트랄까 함수는 이것. 1 GetComponent().SetNativeSize(); cs 이걸 쓰면 Image 컴포넌트의 Source Image로 들어가있는 스프라이트를 입력된 크기, 변형된 크기와 상관 없이 원래 스프라이트의 크기로 돌리기가 가능합니다. 다만 이미지 타입이 Simple 혹은 Filled로 되어있는 이미지에서만 가능합니다. 다른 타입에선 에디터에서도 이 버튼이 사라지기도 하죠... 저는 이 스크립트를 버튼의 하이라이트 등 트랜지션(스프라이트 스왑)에 쓰고있었는데 (왜 트랜지션 옵션을 안 쓰냐면 그게 다 그럴만한 이유가 있습니다 나중에.. 2021. 9. 5.
[Unity UGUI] Scroll View 스크롤 뷰 스크롤 뷰 뭐하기로 제목짓고싶은데 실패! 스크롤 뷰는 경험상 Layout Group과 병행해서 쓰면 좋았던것같아요. 편하다! 새롭다! 깨끗한 손! (?) [Unity UGUI] 일정 간격으로 UI 배치하기 - Layout Group 글 너무 오랜만에 써서 어떻게 써야할지 계속 쳐다만 보면서 고민중 왜 오랜만인가 - 그동안 올림픽 보고 게임 하면서 지내느라 .. 국가대표 선수들의 경기 하나하나 너무 멋졌어요! 어쨌든 이 drybone-developer.tistory.com 0. 준비 화면상에 다 담기엔 어려운 오브젝트들을 스크롤로 표시하고 싶을 때 씁니다. 가령 이런 상황입니다. 캔버스 밖으로 6과 7이 튀어나가 있습니다. 그런데 간격은 줄이고 싶지 않아! 스크롤링이 됐으면 차라리 좋을텐데! ...바로 이.. 2021. 9. 4.
[Unity] Line Renderer 스프라이트 타일식 배치하기 + a 이걸 뭐라고 제목을 쓰지 일단 쓰긴 썼는데 ... 서론 요약 : 보통 라인 렌더러에 소스가 되는 마테리얼을 넣으면 라인 길이가 길어졌을 때 그 마테리얼이 뭐든간에, 마테리얼을 쫘악 늘려서 렌더링하잖아요 그래서 프로퍼티에 텍스쳐 모드가 있길래 옳다구나 하고 Tile로 바꿔도 .. 뭐야? 안되잖아요 그런 당신을 위한 해결법! 레테 개발에서 쓴 방법입니다. 이것저것 얘기합니다. 레테를 해보신 분들은 아시겠지만 (이참에 함 해주세요)(틈새 전단지 돌림) 인게임에서 레테가 큐브들을 연결할 때, 즉 플레이어가 큐브를 드래그 할 때마다 쇠사슬이 나타납니다. 이게 바로 라인 렌더러를 쓴 것인데요! 이건 사실 스프라이트로 되어있는 사슬 한 조각의 이미지를 여러번 나타나게 조절한 것입니다. 이걸 했던 방법.... 의 정리.. 2021. 8. 26.
[Unity UGUI] 일정 간격으로 UI 배치하기 - Layout Group 글 너무 오랜만에 써서 어떻게 써야할지 계속 쳐다만 보면서 고민중 왜 오랜만인가 - 그동안 올림픽 보고 게임 하면서 지내느라 .. 국가대표 선수들의 경기 하나하나 너무 멋졌어요! 어쨌든 이 글에선 일정 간격으로 UI 오브젝트(이미지, 버튼 등)를 배치하는 방법에 대해 설명합니다. Layout Group이라는 컴포넌트를 사용합니다~ 레이아웃 그룹에도 종류가 여럿 있는데, 각각 전부 설명합니다. 근데 그닥 크게 다른 건 아니라 전체 설명을 먼저 하고 나머지에 대해서 쓰는걸로... 0. 준비 이 글에서는 대충 만든 이 7개의 이미지를 가지고 설명합니다. 구별을 위해 각각 숫자를 붙여줬습니다! 예시는 이미지지만, 위에서도 말했듯이 UI 오브젝트라면 큰 무리 없이 가능합니다. 위 이미지는 그냥 눈대중으로 간격을 .. 2021. 8. 9.
[Google AdMob] 테스트 기기 추가하기 + Android 광고 ID/IDFA 바로 얼마전에 유니티에서 개발한 안드로이드 앱에 애드몹 광고를 넣는 방법을 썼었는데 이번에는 그 글의 마지막에서 설명했던 .. 테스트 기기를 추가하는 방법에 대해 씁니다. 사실 방법은 여러개이지만 가장 빠르고 간단하고 쉬운 방법으로 저는 씁니다. 아래는 언급한 '그 글' [Unity C# / Google AdMob] Android 앱에 광고 넣기 유니티로 개발한 안드로이드 앱에 수익성 광고를 넣습니다. 수익성 = 실제로 돈이 되는지 안되는지와는 별개로 수익을 주긴 함 이 방법대로라면 iOS에 넣는것도 그다지 문제는 아닐 것 같긴 한데 drybone-developer.tistory.com 1. 광고 ID/IDFA 찾기 불행인지 다행인지 iOS는 광고ID를 외부로 노출시키지 않기때문에 기기에서 찾을수가 없다.. 2021. 7. 17.
[Unity C# / Google AdMob] Android 앱에 광고 넣기 유니티로 개발한 안드로이드 앱에 수익성 광고를 넣습니다. 수익성 = 실제로 돈이 되는지 안되는지와는 별개로 수익을 주긴 함 이 방법대로라면 iOS에 넣는것도 그다지 문제는 아닐 것 같긴 한데.. 문제는.. 제가 해 본 적이 없어서 (?) 안드로이드는 이렇게 하면 확실히 들어간다! 이니 참고해주세요. 0. Google AdMob 가입하기 이 글에서는 구글 애드몹을 사용하기 때문에, 이 서비스를 가입해주셔야 합니다. 구글 계정이 있으시면 빠르게 이용 가능해서 간단! AdMob 하나의 계정으로 모든 Google 서비스를 AdMob으로 이동하려면 로그인하세요. accounts.google.com 이 링크 작동하나 모르겠네 저는 이미 가입해둔 사람이라서 바로 리다이렉트 되긴 하는데... 링크가 안 되시는 분들은 .. 2021. 7. 15.
[Unity C#] 오브젝트의 부모, 자식을 참조하는 법 여러개 있지만 제가 자주 쓰는 것 위주로 정리할것입니다. (내가 쓰는거니까) 해당 스크립트가 붙어있는 오브젝트의 부모 오브젝트, 자식 오브젝트, 혹은 그 오브젝트들의 컴포넌트에 접근하는 방법입니다~ 1. 부모 오브젝트를 참조하는 법 1 2 transform.parent //부모의 트랜스폼을 참조 transform.GetComponentInParent //부모가 가진 컴포넌트를 참조 cs 여기선 부모가 하나의 오브젝트이기때문에 s 없이 parent입니다 (?) GetComponentInParent를 하면 뒤에 를 쓰는 것으로 바로 컴포넌트 참조 가능. parent의 경우 부모의 트랜스폼을 바로 참조할 수 있어서 선택적으로 사용하시면 됩니다. 또 parent를 쓴 뒤에 GetComponent를 사용하는 방법.. 2021. 7. 9.