전체 글 (21) 썸네일형 리스트형 마인크래프트 | 돈 스크립트 배포 안녕하세요. 마인크래프트 돈 스크립트를 배포하려고합니다. - 사용방법 -명령어 확인하는 편의를 위해 수정했습니다. /mh | /돈도움 - 아래 사진에 나와있는 돈의 명령어들을 확인할 수 있습니다. op 권한이 없을 경우 op 써져있는 관리자 명령어들은 모든 플레이어에게 공개됩니다.- 다운로드 -- 개발 환경 -Bukkit : paper-1.21-111 (MC:1.21.1 ~ 1.21) 작동되는 것을 확인했습니다.Skript : Skript-2.9.1다른 애드온 없이 Skript 플러그인만 적용해도 작동 됩니다. 버그 문의나 기타 문의는 디스코드 서버를 제작중에 있어 추후 공지하겠습니다. 현재 다른 스크립트도 개발 중에 있습니다. 배포는 가능하지만, 출처를 남겨주셔야합니다. :) 솔리드 원칙(S.O.L.I.D Principle) 객체 지향에는 5가지의 원칙이 존재합니다.단일 책임 원칙 - Single Responsibility Principle개방 폐쇄 원칙 - Open/Closed Principle리스코프 치환 원칙 - Liskov's Substitution Principle인터페이스 분리 원칙 Interface Segregation Principle의존성 역전 원칙 Dependency Inversion Principle 이 다섯 가지의 초성을 따서 SOLID 원칙이라고 명명되었습니다. 그럼 이제 어떤 원칙인지 알아보겠습니다. 단일 책임 원칙 - Single Responsibility Principle이름 그대로 하나의 클래스는 하나의 책임만 갖는다는 원칙입니다.간혹 하나의 클래스에 여러 가지 기능을 한 번에 구현하는 경우가 .. 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴을 따르는 클래스는 생성자가 여러 차례 호출되더라도 객체는 하나이고 최초 생성 이후 호출된 생성자는 최초의 생성자가 생성한 객체를 return 합니다. 이와 같은 디자인 유형을 싱글톤 패턴이라고 합니다. 해당 객체를 싱글톤으로 구현하여 모든 유저 또는 프로그램들이 해당 객체를 공유하며, 사용하도록 할 때 사용됩니다.간단하게 쉽게 말하자면 메모리 절약을 위해, 인스턴스가 필요로 할 때 똑같은 인스턴스를 새로 만들지 않고, 기존의 인스턴스를 가져와 활용하는 기법을 말합니다. 우리가 전역 변수를 만들어 이용하는 이유는, 똑같은 데이터를 메서드마다 지역 변수로 선언해서 사용하면 무의미하지 않고, 낭비이기 때문에 전역에서 한번만 데이터를 선언하고 가져와 사용하면 효율적이기 때문입니다. 이러한 개념을 그.. 직렬화 (Srialize) 직렬화 단어를 이해하려면 USB(Universal *Serial Bus) 인터페이스를 보면 됩니다.*Serial - 연쇄, 연속해서 이어지는 어떤 것. 컴퓨터 -------- USB 메모리- 연속된 드라마 (Serial Drama), 연속적인 데이터(011011001)를 표현할 때도 사용합니다.- 범용적으로 직선상으로 연속해서 들어오는 데이터를 받아 들이 수 있는 인터페이스 직렬화 (Serialization)- 오브젝트를 연속된 문장형 데이터나 연속된 Byte 데이터로 바꾸는 것입니다.object ---> string or bytes메모리 ---> 드라이브 or 통신선- 이런 작업을 하는 이유? ㄴ object는 메모리에 존재하고 string과 bytes data는 drive에 저장도 할 수 있고,.. 3D RPG - 데이터 저장(Json) 데이터 저장을 위해서 저는 Json 파일을 사용했습니다.Json 은 JavaScript Object Notation의 약어로 모든 값이 직렬화가 가능한 Key-Value 값의 쌍으로 이루어진 데이터를 텍스트를 사용하는 개방형 표준 포맷입니다.Json 파일을 사용하기 전 직렬화에 대해서 알아야 합니다. 우선 저장할 데이터들의 클래스가 필요합니다. 먼저 만든 BaseStatus와 PlayerStatus에서는 각각의 스탯들이 분리되어 있기때문에 따로 따로 저장하는 것은 안 좋습니다. 왜냐하면, 파일 읽고 쓰기에서 파일 여는 것 행위 자체가 많은 성능을 차지하기 때문입니다. 그래서 하나의 클래스에 저장할 스탯들을 저장합니다. DataManager.cs...[System.Serializable]public cl.. Enum(열거형) 프로젝트에서 커스텀 Enum 데이터 타입들을 효율적으로 관리하기 위해, 글로벌하게 사용할 공통 데이터 타입들을 모아놓은 클래스를 작성합니다. 이를 통해 유니티 개발 과정에서 다양한 열거형 타입들을 쉽게 정의하고 사용할 수 있습니다. 다양한 클래스에서 공통으로 사용할 수 있는 열거형 타입들을 한 곳에 모아둡니다. 이를 통해 클래스 타입과 네이밍이 겹칠 일이 없고, 자동완성의 이점도 누릴 수 있습니다. 타입들을 네임스페이스로 묶어두면 클래스 타입과 네이밍 충돌을 방지할 수 있고, 자동완성을 통해 빠르게 개발할 수 있습니다. 글로벌 공용 공간에 데이터 타입을 추가하다 보면, 특정 모듈에만 국한되어야 하는 데이터 타입이 추가될 수 있습니다. 이러한 타입들은 해당 모듈로 분리하여 관리해야 합니다. 이 방식은 프.. FSM (Finite-State Machine) FSM(Finite-State Machine) 이란?- 주어지는 모든 시간에서 처해 있을 수 있는 유한 개의 상태를 가지고 주어지는 입력에 따라 어떤 상태에서 다른 상태로 전환시키거나 출력이나 액션이 일어나게 하는 장치 또는 그런 장치를 나타내는 모델입니다.- 유한 상태 기계(FSM) 바탕에 깔린 아이디어는 객체의 행동을 쉽게 처리할 수 있는 덩어리 또는 상태들로 분해하는 것. ㄴ 플레이어, 몬스터, NPC와 같은 캐릭터의 행동 "Idle(대기)", "Walk(걷기)" 등.. 과 같이 쉽게 처리할 수 있는 상태 단위로 관리하는 것입니다. 게임에서의 FSM-플레이어, 몬스터, NPC와 같은 개인 단위의 행동 관리를 합니다. ㄴ 지정된 위치로 이동하기, 목표를 공격하기, 도망가기, .. 3D RPG - 플레이어 상태(FSM) 이 글을 읽기 전 FSM이 무엇인지 알고 오면 좋습니다. BaseGameEntity.cs ... [HideInInspector] public Animator Animator; public virtual void Setup() { Animator = GetComponent(); } public abstract void Updated(); ... 모든 씬에 존재하는 모든 Entity들이 상속받는 기반 클래스 BaseGameEntity 스크립트 입니다.이 클래스는 엔티티들이 기본적으로 가져야 할 초기화(Setup)와 업데이트(Updated) 기능을 제공하며, 상속받는 클래스에서 구체적인 동작을 정의할 수 있도록 설계되었습니다. 전체 코드https://gi.. 이전 1 2 3 다음