본문 바로가기

프로그래밍/유니티30

[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.
[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.
[Unity C#] Mathf 절댓값 반환 / 반올림 이럴수가 한국어 맞춤법 상 절댓값이 맞다는 거 보고 급하게 고쳤음 여러분 절대값이 아니라 절댓값입니다 Mathf.Abs(절대값을 반환할 수) Mathf.round(반올림할 수) 절댓값은 예전부터 썼었는데 반올림은 레테 1.1업데이트에 쓰면서 정리. 너무 간단하기때문에 평소에 글 쓰던 형식도 안 지키고 컬러스크립트로 옮기지도 않음 (미안해요! 하지만 짧잖아요) 다음에는 Mathf 함수를 그냥 쭉 정리해볼까 근데 이런거는 스크립팅 가면 금방 나오니까.... 그래도 .. 잘 쓸 것 같은것만 뽑아둬야지 그땐 컬러스크립트도 써볼테니까 Unity - 스크립팅 API: Mathf Success! Thank you for helping us improve the quality of Unity Documentation... 2021. 7. 7.
[Unity C#] Debug.Log 사용 1번은 최근에 알게된 지식.. 유용하게 사용하고 있습니다 아직 하나밖에 없지만 앞으로 더 늘어날거예요 (북두*권 얼굴 함) 1. 좀 더 편하고 자유로운 텍스트 입력 1 Debug.Log($"{변수 이름}, 이 안에 자유롭게 텍스트 입력 가능{변수 이름2}"); cs 이런 형식으로 입력 가능합니다. {괄호} 안에는 출력할 변수 이름이나 항목을, 그 밖, "따옴표" 안에는 자유롭게 텍스트를 쓸 수 있어요. 뭔가 .. 이렇게만 하면 느낌이 안 올 것 같아서 제 프로젝트에 써봤습니다. 이런 로그 출력을 썼습니다. 현재 이 코드가 작동하고 있는 게임오브젝트의 이름과, 다음 거 위치: 라는 안내 텍스트 이후, 다음 게임 오브젝트의 위치를 입력했어요. 결과는... 짜잔~ 이런 식으로 로그 창에 출력됩니다. "다음 거.. 2021. 6. 26.
[Unity C# / GPGS] 업적 과정 보고, 달성 완료 함수 유니티에서 구글 플레이 게임 서비스를 연동한 뒤, 업적을 추가했을 때 업적을 완료할 수 있는 스크립트입니다. 1. 단일 업적, 혹은 달성도(%)를 직접 지정해줄 때 1 Social.ReportProgress(GPGSIds.achievement, 100f, null); cs Social.ReportProgress(업적ID, 달성도, 콜백함수); 형식이 됩니다. 여기서 업적ID는 string 형식으로 받기 때문에 직접 업적 ID를 입력해줘도 되지만, GPGSIds.를 참고해서 ID에 맞는 이름을 가져와도 괜찮아요! 달성도는 0~100f 사이로 지정해주시면 됩니다. 잠금 상태인 업적을 0으로 해주면, 업적이 공개 상태가 되는데, 이렇게 잠금을 해제할 시 이전에 달성도를 진행해둔 게 있으면 달성도는 0이 되니 .. 2021. 6. 19.