글

라벨이 GameDev인 게시물 표시

Unity 오브젝트들을 찾기 위한 방법 (Find Objects)

Unity 오브젝트들을 찾기 위한 방법 (Find Objects) 단 하나인 오브젝트에 접근하는 법은 여러가지가 있고 방법 자체도 쉬운편인거 같은데 오브젝트'들' 에 접근하는 방법은 제약이 좀 있는 느낌이였기 때문에 정리해 보았음 GameObject.FindGameObjectsWithTag     GameObject[] itemList = GameObject.FindGameObjectsWithTag("TileItem");          for (int i = 0; i < itemList.Length; i++) {     BaseItem item = itemList[i].GetComponent<BaseItem>();     //...     } 미리 지정한 Tag 를 사용해서 같은 Tag 를 가진 객체들을 가져옴 비활성화된 객체에 접근이 안된다고 한다 배열이 null 인 경우가 있을 수 있어서 예외처리 필요함 Resources.FindObjectsOfTypeAll 또는 Object.FindObjectsOfType     BaseItem[] itemList = Resources.FindObjectsOfTypeAll<BaseItem>();     for (int i = 0; i < itemList.Length; i++) {     BaseItem item = itemList[i];         //...     } 클래스 타잎으로 객체들을 가져옴. FindObjectsOfTypeAll 모든유형의 비활성화 된 객체도 가져옴 FindObjectsOfType 에셋 제외, 비활성화 객체 제외 하고 가져옴 둘다 성능 이슈가 있어서(매우 느리다고 ...

Unity Pixel Perfect 구현 정보 추가 및 정리

이미지
Unity 에서 Pixel Perfect 구현을 위한 방법 정리 1. 이전에 올렸던 글들 Unity3D 에서 당신의 Pixel Art 게임을 Pixel Perfect 하게 만들기 Pixel Art 게임에서 Unity 2D 스프라이트 설정 2. 오래된 글(2015/06/19) 이긴 하지만 Unity Blog에 올라왔던 글 Pixel Perfect 2D 3.  2D Pixel Perfect  GitHub 프로젝트 가장 최근에 찾은 정보, 추후 정식으로 유니티 자체에 제공할 듯 하다 해당 프로젝트를 다운받아 유니티로 불러와서 테스트 해볼 수 있음. 아직 정식으로 추가된것이 아닌 상황(2018/8/4) 이긴 하지만 돈주고 에셋스토어에서 Pixel Perfect Camera 를 사는 것보다 나을 것 같아서 적용해보았고 잘 동작함! 아래 도큐먼트가 잘 되어있으나 영어의 압박이... https://docs.unity3d.com/Packages/com.unity.2d.pixel-perfect@1.0/manual/index.html - 유니티 버전 2018.2.b3 버전 이상에서 부터 지원 - Window>Package Manager> All 탭에서 2D Pixel Perfect 인스톨 - Main Camera 오브젝트에 Pixel Perfect Camera 를 추가하고 PPU 값, 적용하려는 해상도 값을 적용하고 테스트 해보았을때 잘 동작하였음 4. Font 설정 Font 를 Pixel 스럽게(?) 표현하기 위해서 빈 오브젝트를 생성하고 아래 스크립트를 추가 public Font[] fonts; void Start () {   //폰트가 Pixel Perfect 하게 보이도록 설정   for(int i=0; i<fonts.Length;i++) {     fonts[i].material.mainTexture.filterMode ...

Pixel Art 게임에서 Unity 2D 스프라이트 설정

이미지
Unity Pixel Art 게임에서 2D 스프라이트 설정 어제 작성한 글 을 실제로 적용하다가 스프라이트 설정값을 제대로 셋팅 안하면 문제가 있다는 것을 알게 되어 삽질한 김에 다시 상세히 포스팅 함. 16x16px 이미지를 기본설정으로 불러왔을 때 Pixels Per Unit 스프라이트의 크기와 Pixels Per Unit 값을 맞춤 해당 이미지는 16x16px 이미지 Pixels Per Unit 맞추기 Filter Mode Filter Mode 를 Point(no filter) 로 변경 Filter Mode => Point(no filter) 변경 Compression Compression 값 None 변경 이게 바로 삽질하게 된... 계기 스프라이트 가운데 픽셀 색상이 다른색으로 보이는 현상... 이미지 압축 관련 설정을 빼먹어서 였다... Compression => None 스프라이트 관련 셋팅은 이것으로 끝인것 같음!

Unity3D 에서 당신의 Pixel Art 게임을 Pixel Perfect 하게 만들기

이미지
2D 게임 개발을 하던 중 도트 그래픽을 사용할 경우 Pixel Perfect 하게 하기 위한 작업이 필요하다는 것을 파악하고 잘 정리된 글을 찾아 번역기의 힘을 빌려 번역해봄…ㅎㅎ;; Making your Pixel Art Game look Pixel Perfect in Unity3D 원글 작성자 : ResistanceStdio 원글 작성일자 :  2018-03-26 Unity3D 에서 당신의 Pixel Art 게임을 Pixel Perfect 하게 만들기 얼마 전 게임을 Pixel Perfect 하게 만들기 위해 시간을 어느 정도 써야 한다고 언급했었죠. 아름다운 2D Pixel Art 게임을 어떤 해상도에서도 보기 좋게 하기 위해 이 작업을 해야만 합니다. 또한 우리는 오브젝트를 움직이거나 픽셀이 절반으로 내려앉는 것을 원치 않습니다. Unity는 기본적으로 Pixel Art를 완전하게 보여주지 않기 때문에 이곳 저곳을 바꾸거나 작은 수정사항을 구현하여 바꿀 필요가 있습니다. 하지만 걱정 마세요, 별로 어렵지 않습니다. Disclaimer (알려둘 사항) 모든 튜토리얼은 몇몇 소스를 기반으로 했지만 메인은 이 유용한 트위터 스레드 에 기반했습니다. 더 좋거나 최적화된 다른 방법이 있다는 것을 알고 있지만 이것이 내가 많은 연구 끝에 사용하는 방법입니다. 자 그럼 Pixel Perfect한 모습을 달성하기 위한 단계를 살펴 봅시다. 흐릿한(기본) 이미지에서 Pixel Perfect 로 Turn off Anti Aliasing (안티앨리어싱 끄기) 안티앨리어싱은 비디오게임들의 텍스처 테두리를 부드럽게 하기 위해 사용됩니다. 보통은 이것은 텍스처가 “너무 픽셀스럽게” 표시되지 않도록 하고 화면이 부드럽게 보이게 합니다. 여기 안티앨리어싱이 어떤 일을 하는지에 대한 예시가 하나 있습니다. 안티앨리어싱 예시 아래쪽 선이 부드럽고 흐릿합니다. 이것은 우리가 더 작은 해상도로 보게 되면 좀...

유니티 오피셜 튜토리얼 2D Roguelike 관련

이미지
https://unity3d.com/kr/learn/tutorials/s/2d-roguelike-tutorial 위 튜토리얼을 따라 하다 몇가지 오류 발생해서 해결방법을 찾았기에 포스팅 튜토리얼 제작 당시가 4.X 버전 대였던것 같고.. 현재는 2018.x 버전이 최신 버전이라 발생하는 문제로 생각된다. 튜토리얼 에셋에 동봉된 [2D Roguelike Upgrade Guide 5x.pdf] 파일에 있는 내용을 적용하더라도 게임 진행이 정상적으로 안되는 문제가 발생 1. 게임이 Day 2 부터 시작하고 다음 레벨은 Day4 2. Day 4 에서 갑자기 food가 0이되고 종료 3. 적을 뚫고 지나감 구글링한 결과 1, 2번 오류는 Scripts/GameManager.cs 파일 수정해서 해결됨 SceneManager 변경사항 때문에 발생하는 문제로 생각됨 private int level = 0;  // 1에서 0으로 수정 void Awake () {     ...     //InitGame(); 주석처리 } //아래 내용은 [2D Roguelike Upgrade Guide 5x.pdf]에 있음 void OnLevelFinishedLoading(Scene scene, LoadSceneMode mode) { level++; InitGame(); } void OnEnable() { SceneManager.sceneLoaded += OnLevelFinishedLoading; } void OnDisable() { SceneManager.sceneLoaded -= OnLevelFinishedLoading; } 3번 오류는 Enemy Prefab의 Box Collider 2D 사이즈가 0.0001 로 되어있어서 1로 수정해서 해결됨 참고한 글 https://forum.unity.com/threads/2d-roguelike-q...

유니티 오피셜 튜토리얼 Space Shooter 관련

이미지
튜토리얼 진행시 문제가 없으나 마지막 Space Shooter to Mobile 강좌를 보며 따라하는데 Mobile Art 의 다운로드 링크가 깨져서 해당파일이 올라가 있는 GitHub 프로젝트를 찾아 해당 리소스 추출함~ 다운로드 강좌 https://unity3d.com/kr/learn/tutorials/topics/mobile-touch/mobile-development-converting-space-shooter-mobile?playlist=17147 GitHub 프로젝트 https://github.com/jawadrashid2011/Space_Shooter/tree/Mobile