본문 바로가기

분류 전체보기100

[Unity] Button의 transition Unity _ Button의 transition UI에서 자주 사용하는 오브젝트로 Button이 있다. Button 의 Inspector 창에서 다양한 transition으로 효과를 적용할 수 있다. Normal Color : 버튼의 기본 색 Highlighted Color : 버튼 위에 마우스를 올렸을 때 바뀌는 색 Pressed Color : 버튼을 눌렀을 때 잠깐 바뀌는 색 Selected Color : 버튼을 눌렀을 때 바뀌는 색 (다른 버튼을 누르기 전까지 유지) Disabled Color : 버튼이 비활성화되었을 때 바뀌는 색 활성/비활성 시 아무 효과가 없는 버튼은 밋밋할 수 있으므로 클릭할 때 살짝 어두워졌다가 완전히 눌렀을 때 더 어두운 색으로 유지되도록 설정했다. 유저가 어떤 버튼을 선.. 2024. 1. 17.
[Unity] LayerMask, Main Camera의 Z값이 주로 -10인 이유 LayerMask 레이어를 효율적으로 생성/관리 하기 위해 레이어마스크를 활용한다. 최대 32개의 레이어를 활용할 수 있고, 정수형 변수의 각 비트(32비트)를 할당하여 처리한다. 1개의 변수를 여러 개의 bool값처럼 처리하는 방법 (cf. 비트 마스크 : 각 비트를 bool로 보는 관점) LayerMask 메서드 LayerMask.GetMask : LayerName을 넣어서 비트마스크 생성 LayerMask.value : 비트마스크값을 도출 (이진수를 십진수로 변환) LayerMask.NameToLayer(string layerName) : 레이어 이름을 통해 레이어 인덱스를 도출 LayerMask.Contains(int layerIndex) : LayerMask가 특정 레이어 인덱스를 포함하고 있는.. 2024. 1. 16.
[CS] float 와 int / ref 와 out / 접근제한자 기술면접 대비하기 #1 1. float와 int의 표현 가능한 수의 범위가 다른 이유는 무엇인가요? key ) 자료형의 내부 구조, 몇 비트를 차지하는지, 메모리 사용 방식 (부호, 지수, 가수 등) 자료형(데이터 타입)이 다르기 때문이다. float는 소수점까지 표현할 수 있는 실수 자료형, int는 소수점이 없는 숫자를 표현할 수 있는 정수 자료형이다. 둘 다 4바이트(32비트)로 크기가 같으나 자료형을 구성하는 bit의 구조가 다른데, int는 부호와 지수까지만 표현하고 float는 부호와 지수에 더해 소수점 이하의 유효자리까지 표시할 수 있다. 따라서 int는 표현 가능한 범위 내의 숫자는 100%의 정확도로 표현하지만 float는 0에서 멀어질수록 정밀도가 떨어지고 유효값을 넘어가는 경우 근사치.. 2024. 1. 15.
성공적인 8주 프로젝트를 위하여 성공적인 프로젝트를 위한 도움말 form Unity 1기 신우석님 1. 유저가 게임을 이해하기 쉽도록 튜토리얼 만들어보자. 2. 프로젝트 규모를 줄여라. 프로덕트 (출시)를 위한 프로젝트인가? 아니면 포트폴리오를 위한 프로젝트를 하는건가? = 포트폴리오가 중요! 게임의 컨텐츠를 많이 넣으면 시간이 부족해져서 마감을 지키기 위해 개발과정에서 코드가 복잡해진다. 리팩토링이 적고, 하드 코딩을 해서라도 게임을 완성해야 하기 때문. 적절한 곳에 적절한 기술을 제대로 사용하지 못한다는 것은 포트폴리오의 치명적 문제이다. 포트폴리오에서는 게임 외적인 부분보다 내적인 부분(코딩과 개발 과정)이 더 중요하다. 컨텐츠의 양과 기술의 양은 비례하지 않는다. 포트폴리오에서 가장 매력적인 부분은 최적화. 최적화는 컨텐츠나 시.. 2024. 1. 12.
[CS] 게임 개발에서의 자료 구조 활용 1. 배열 특징 : 크기 고정, 연속된 메모리 할당, 동일한 데이터 타입만 사용 장점) 빠른 읽기와 쓰기 메모리 효율성 (연속적이라 데이터 캐싱이 효율적) 단점) 고정된 크기 : 크기를 변경하려면 새 배열을 만들고 데이터를 복사해야함. 낭비되는 메모리 공간 : 넉넉하게 만들어놓고 데이터는 적게 넣으면 낭비됨 복잡한 삽입과 삭제 메모리 할당 문제 : 큰 배열은 연속된 큰 메모리 공간을 필요로 함 (메모리 할당에 실패할 수 있음) 배열 활용하기 좋은 상황 1) 데이터 접근이 빈번하고 예측 가능할 때 2) 데이터 크기나 요소 수가 고정되어 있을 때 3) 요소 삽입과 삭제가 적을 때 4) 순차적 접근이 주를 이룰 때 5) 메모리 사용이 중요한 상황일 때 (특히 모바일 게임) 게임에서 어떻게 활용하지? 1) 캐릭.. 2024. 1. 11.
[디자인 패턴] 오브젝트 풀, 전략 패턴, 커맨드 패턴 Unity에서 자주 쓰는 디자인 패턴 3가지 # 2탄 1. 오브젝트 풀 패턴 프레임 속도를 유지하려면 자주 생성되는 요소를 일부 메모리에 등록하는 것이 좋다. ex. 최근 죽인 적을 메모리에서 없애는 대신 다시 사용할 수 있도록 오브젝트 풀에 추가 - 엔티티의 새로운 인스턴스를 로드하는 초기의 초기화 비용이 들지 않음 - 유니티에는 오브젝트 풀링이 API에 구현되어 있음. 오브젝트 풀의 구성 ObjectPool : 객체의 풀을 관리함. 객체 생성/관리/파기 의 책임 ReusablePool : 실제로 재사용될 객체. Client : 필요할 때 객체를 요청하고 사용한 뒤에 반환. 장점) 메모리 사용량을 예측하기 용이, 성능의 향상 단점) 이미 C#이 메모리 최적화가 뛰어나서 굳이 필요없는 경우도 있다. 객체.. 2024. 1. 10.