분류 전체보기(123)
-
Sprite Renderer 클릭하는 방법
이미지표현하는 두가지 방법( UI, Sprite )1. UICanvas, EventSystem이 있어야지 Button컴퍼넌트를 사용할 수 있다.2. Sprite RendererSprite Renderer에서는 스크립트안에서 코드를 사용해서 입력을 받아야한다.저는 한개의 sprite만을 사용할 거여서 인터페이스를 통해서 해당 함수를 정의했다. 여러개의 경우에는 인터페이스로 상속을 받으면 매번 다시 정의해줘야 하는 번거러움이 있기 때문에 인터페이스를 사용하기 보다는 상속 또는 추상화를 사용해서 코드를 사용하면 더 편하게 코드를 작성할 수 있다.예시public interface MousePointEnter{ void OnPointEnter();}public class Revenue : MonoBehav..
2024.11.13 -
객체지향언어란?
객체지향언어란?하나의 기능을 만들기 위해 서로 관련된 데이터와 기능을 하나의 객체로 묶어 사용하는 프로그래밍 방식이다. 이 방식을 통해 내부 구현이 어떻게 되어 있는지 몰라도, 외부에서는 해당 기능을 편리하게 가져다 사용할 수 있다.한마디로 내부코드는 숨기고 필요한 기능만 외부에 제공하는것 이다. 이렇게 객체지향언어는 기능과 데이터를 하나로 묶어 코드의 독립성과 재사용성을 높이는 프로그래밍 방식이다.객체지향의 핵심 개념1. 캡슐화 (Encapsulation)- 캡슐화는 객체의 데이터를 직접적으로 접근하지 못하도록 보호하고, 대신 객체가 제공하는 메서드를 통해서만 데이터를 조작하거나 확인하게 하는 방식이다.예시예를 들어 Player라는 객체가 있다면, 이 객체의 내부 데이터(체력, 공격력 등)에 직접 접근..
2024.11.12 -
디자인 패턴 - 전략패턴
전략패턴행동을 캡슐화하여 동적으로 행위를 변경할 수 있도록 하는것이여서 다양한 기능들을 별도의 클래스에 정의하고, 필요에 따라 교체하거나 선택적으로 사용할 수 있다.전략 패턴 구조1. 전략 인터페이스: 공통 인터페이스를 정의하여 다양한 전략을 사용할 수 있도록 합니다.2. 전략 구현체: 인터페이스를 구현한 구체적인 전략 클래스입니다.3. 컨텍스트: 전략을 설정하고 실행하는 역할을 하는 클래스입니다.4. 클라이언트: 특정 전략을 선택하고, 컨텍스트를 통해 전략을 실행합니다.전략 패턴 예시 ( 무기 전략 패턴 )1. 전략 인터페이스 정의캐릭터가 사용할 다양한 무기 동작을 정의// 전략 - 무기 행동을 정의한 인터페이스public interface IWeapon{ void Attack();}2. 구체적인..
2024.11.11 -
디자인 패턴 - Facade(파사드), Bridge(브릿지), Template Method(템플릿 메서드), Singleton (싱글톤), MCV, MVP, MVVM 패턴
코드 작성 기준- 결국 핵심은 의존성, 결합도를 줄이는 것에 집중 -클래스끼리는 의존성과 결합도를 줄이는게 중요하고, 코드 내부적으로는 불필요한 생성, 불필요한 탐색/정렬, 불필요한 연산/조건문을 줄여야 한다.(else if, switch 같은것들)어떻게 하면 else if 문을 줄이지?어떻게 하면 switch case를 줄이지?위에 두가지생각을 첫번째 기준으로 잡고 코드를 작성하면 좋다. 너무 처음부터 디자인 패턴에 집중하지 말고 코드 다 작성후에 의존관계를 다 끊어버리고 이게 어떤 패턴일까를 찾는게 더 빠르다. Facade( 파사드 패턴 )여러 클래스를 하나의 클래스에서 관리한다.사용이유여러 클래스를 하나의 클래스로 관리하기 때문에 접근하기 쉽다.사용방법1. 관리할 클래스를 만든 후, 관리 받을 클래..
2024.11.08 -
유니티 데이터 저장하는 방법
1. PlayerPrefs- 보안이 취약해서 민감한 데이터에는 적합하지 않지만, 간단한 데이터를 저장할 때 사용하기 좋습니다. 초보자가 먼저 학습하기에 좋은 이유는 PlayerPrefs의 사용 방식이 데이터베이스의 기본 개념과 비슷해, 연습용으로 활용하기 좋기 때문입니다.2. JSON- JSON은 구조화된 데이터를 저장하기에 적합하며, 파일로 내보내거나 불러오는 작업도 간편합니다. 특히, 계층 구조가 있는 데이터를 저장할 때 유용합니다.3. 유니티 csv 저장- CSV는 데이터를 표 형식으로 저장할 수 있어, 엑셀과 같은 프로그램에서 확인하거나 수정하기 좋습니다. 간단한 목록 데이터를 저장하는 데 적합합니다.
2024.11.07 -
스크립터블 오브젝트 값이 변하는 이유
스크립터블 오브젝트 값이 변하는 경우스크립터블 오브젝트(ScriptableObject)의 데이터가 게임이 끝난 후에도 변경된 상태로 남아 있는 경우와 초기값으로 돌아가는 경우가 있는 이유는 주로 얕은 복사와 깊은 복사 개념 때문입니다. 유니티 에디터에서 플레이 모드와 실제 빌드된 게임에서 스크립터블 오브젝트가 다르게 동작하는 이유도 여기에 있습니다.스크립터블 오브젝트의 값 변화 이해하기에디터(플레이 모드)에서의 동작유니티 에디터에서 플레이 모드로 게임을 실행할 때는, 스크립터블 오브젝트의 값이 직접적으로 수정되는 것처럼 보입니다. 이렇게 수정된 값이 유니티 에디터에 저장된 것처럼 보이지만, 이는 실제로 에디터에서만 발생하는 현상입니다. 플레이 모드가 끝나면 에디터에서는 마지막으로 수정된 값이 남아 있는 ..
2024.11.07