본문 바로가기

Unity 게임 개발21

Unity C#으로 꾹 눌렀을 때 상태변화 시키기 농장 게임을 만들다가 밭을 선택할 때 꾹 눌렀을 시 밭에 작물을 심을 수 있도록 하는 코드를 만들기 위해서 고민을 하다가 여러가지 방식을 고민했습니다. 1. 타이머 방식 이 방식을 고민했을 때 IPointerEnter일 때 bool값을 true로 돌려서 Update에서 실행되는 함수를 만들 다음 일정 시간 즉, Time.deltatime이 지나면 실행시키는 방식을 생각했습니다. 하지만 이 방식은 꾹 누른다는게 아닌 그 안에 들어가있다는 것을 의미해서 제가 원하는 풀이 방식이 될 수 없었습니다. 2. 코루틴을 활용한 방식. 이 방식을 생각하고 나서 여러가지 방법을 시도한 끝에 이 방식으로 풀게 되었습니다. IPointerDownHandler와 IPointerUpHandler를 통해서 OnPointerDow.. 2021. 9. 10.
Unity Object Pooling 서론: 공부의 의유 이번에는 Object Pooling에 대해서 공부를 해보았습니다. 이것은 아예 존재 자체도 모르고 있었습니다. 그렇게 다양하게 프로젝트를 해볼때도 생각도 못하고 있었습니다. 이것의 중요성을 알게된 계기는 오픈카톡방에서 누군가가 최적화와 관련된 질문을 하셨고 파괴, 생성을 지양하고 풀링기법을 이용하라고 말씀해주셨습니다. 지금까지 파괴 생성을 했던 저로써는 쇼킹했고 공부의 필요성을 느꼈습니다. 많은 부분에서 도움을 받은 영상입니다. https://www.youtube.com/watch?v=xiojw0lHzro&t=2s Object Pooling의 존재 이유 프로그래밍에서 Object를 생성 or 파괴는 꽤나 무거운 작업입니다. 생성은 메모리를 새로 할당하고 리소스를 로드하는 등의 초기화 .. 2021. 6. 17.
C# Unity Delegate 설명 및 사용법 이번에는 Delegate에 관해서 공부를 해보려고 합니다. 대학교 졸업작품을 하는 도중에 친구가 Delegate와 관련하여 질문을 하였고 저는 잉?? 그게 뭐지라는 생각에 이번 공부를 진행하게 되었습니다. Delegate란 함수를 넣어 변수처럼 사용할 수 있는 형태입니다. 밑에 예시를 보여드리겠습니다. 현재 위 사진과 같이 Cube라는 Object에 Delegate_Ex라는 C# Script를 추가를 하였습니다. Delegate_Ex는 다음과 같습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Delegate_Ex : MonoBehaviour { delegate void MyDele.. 2021. 5. 9.
C# Unity [SerializeField]와 [HideInInspector] 다양한 코드를 보면서 [SerializeField]와 [HideInInspector]를 많이 보았었습니다. 그런데 그 당시에는 한번 유니티 따라서 코드를 해보면서 익숙해지자 그리고 흥미를 가져보자라는 생각이 커서 이것이 확실히 무엇을 의미하는지 생각하지 않고 잉? 뭐 이상한게 위에 있네? 이건 뭐지.. 이런 생각만 하고 넘어갔습니다. 그런데 지금 다른 사람들이 짰던 코드들을 보면서 나와서 아 저번에 미뤘는데 한번 공부하고 블로그에 포스팅을 해보자 생각이 들어서 지금 해보겠습니다. [SerializeField] 일단 [SerializeFiled] 먼저 설명드리겠습니다. 아마 이 블로그까지 들어오셨고 이런게 궁금하신 분들은 아실 내용인데 public으로 만들어진 변수는 Inspector창에 나타나게 되고 p.. 2021. 4. 19.