Unity 75

Dialogue System 3 - DialogueGameManager 메서드 설명

마지막으로 DialogueGameManager 메서드들을 설명하겠습니다. 1. Start()private void Start(){ capsule.SetActive(false);}기능: 게임 시작 시 초기 설정을 수행합니다.설명:capsule 오브젝트를 비활성화하여 대화가 시작되기 전에는 보이지 않도록 합니다.2. Update()private void Update(){ if (dialogueManager.CheckFinishDialogue(true)) { panel.SetActive(false); }}기능: 매 프레임마다 호출되며 대화 상태를 체크하여 UI를 업데이트합니다.설명:dialogueManager.CheckFinishDialogue(true)를 호출하여 대화가 끝..

Unity 2024.11.23

Dialogue System 2 - DialogueManager의 메서드 설명

여기서 DialogueManager의 메서드들을 설명하겠습니다. 1. Start()private void Start(){ isAutoDialogue = false; isFinished = false; isTalking = true; textLocated.text = "스페이스 바로 대화 시작."; cap.SetActive(false);}기능: 게임 시작 시 초기화 작업을 수행합니다.설명:isAutoDialogue, isFinished, isTalking 변수를 초기화하여 대화 상태를 설정합니다.textLocated.text에 대화 시작 안내 메시지를 설정합니다.cap 오브젝트를 비활성화하여 대화가 진행 중임을 나타냅니다.2. Awake()private void Awake(){ ..

Unity 2024.11.22

Dialogue System

제가 공부하며 만든 Dialogue 즉 대화 시스템입니다. Gif가 좀 이상하게 나왔지만, 완성본입니다. (클릭 시 Gif가 진행 되네요;;)SpaceBar로 대화를 진행합니다.오토도 잘 진행되고, 스킵으로 넘기는 것도 잘 되네요. (이땐 까먹었지만 스킵으로 끝내면 배경색이 바뀌지 않네요;;) 시작하기전, 저는 KoreanTyper라는 에셋을 사용하였습니다. 따라 만드실 경우 꼭 다운로드 받아 주세요. 코드와 상관없이 먼저 이렇게 세팅해주세요. Capsule은 대화가 끝났는지 확인하기 위한 테스트 오브젝트입니다. 그럼 가장 중요한 DialogueManager를 만들기 위해 필요한 CharacterImage, CharacterManager코드를 생성 해줍니다.DialogueManager와 DialogueG..

Unity 2024.11.21

Unity Attribute (5번째 / 5번째)

1. [UnityEditor.MenuItem("string 형식 메뉴 이름/string 형식 메뉴 내 이름")]MenuItem는 매개변수로 string형식의 루트와 실행할 정적 메소드를 받습니다.상단의 메뉴바에 배치됩니다.지금까지 다른 Attribute들은 루트가 필수가 아니었습니다만 MenuItem은 루트가 필수적으로 포함되어야 합니다.사용될 메소드는 정적메소드로 선언되어야 합니다.Unity Attribute (4번째 / ?번째 2. ContextMenu[("string 형식 메뉴 이름/메서드 명")]매개변수로 실행하려는 메서드명을 넣어주면 됩니다. Script의 Component를 우클릭하여 뜨는 메뉴의 하단에 삽입됩니다.

Unity 2024.10.19

Unity CustomEditor로 간단하게 큐브 생성하기

CustomEditor를 간단하게 배우며 만든 큐브 생성입니다.먼저 CubeGenerator 스크립트를 만들고 빈 오브젝트에 스크립트를 넣었습니다.  CubeGenerator 코드 입니다.public class CubeGenerator : MonoBehaviour{ [SerializeField] private GameObject _cube; [SerializeField] private float distance; [SerializeField] private int cubeCount; public void GenerateCube() { if (transform.childCount != 0) { for (int i = transform...

Unity 2024.10.17

Unity Attribute (4번째 / ?번째)

1. [ColorUsage(bool, bool)]color에 적용 가능한 Attribute입니다.알파값을 없애거나 HDR을 활성화 할 수 있습니다. 2. [Multiline(int)] / [TextArea(int min, int max)]긴 내용을 작성하기 위해 사용됩니다.Multiline은 매개변수로 int값을 받습니다.TextArea는 매개변수로 int값을 받으며 min값과 max로 줄 갯수를 정할 수 있습니다. 이 내용에 따라 줄의 개수가 유동적으로 변합니다.

Unity 2024.10.16

Unity Attribute (3번째/?번째)

1. [HelpURL(string 형식 주소)]클래스 상단에 선언해야 합니다.string 형식의 주소를 넘겨줍니다.inspector의 component에서 물음표 모양을 누르면 연결된 링크가 열립니다.[HelpURL("https://psb08.tistory.com/")]public class Attribute : MonoBehaviour{ public int _cnt = 1; public int _type = 2; public string _one = "One"; public string _two = "Two";}  2. [Range(int min, int max)] / [Range(float min, float max)]int,float 형식의 변수에 사용 가능합니다.inspect..

Unity 2024.10.16

Unity Attribute (2번째/?번째)

inspector 관련한 Attribute를 소개하겠습니다. 1. [Header]매개 변수로 헤더로 사용할 string 형식의 단어를 먼저 넘겨줍니다.inspector에서 변수를 구분지어서 보고 싶을 때 사용합니다.[Header("수")]public int _cnt = 1;public int _type = 2;[Header("문자")]public string _one = "One";public string _two = "Two"; 이런 느낌으로 적용 됩니다.  2. [Space] / [Space(float)]칸을 비워 줍니다.여기서 float 값은 비워진 칸의 크기라고 할 수 있습니다.값을 넣지 않고 [Space]만 사용하면 기본값이 적용됩니다.[Space]public int _cnt = 1;public..

Unity 2024.10.15

Unity Attribute (1번째/?번째)

Attribute (속성)은 class 위에 표시 됩니다.간단하게 3개만 알아보도록 하겠습니다. 1. [SerializeField]데이터를 직렬화 해주는 기능입니다.대부분 변수의 위쪽 혹은 왼쪽에서 사용합니다.[SerializeField] private float _speed = 5f;// 혹은[SerializeField]protected float _gravity = 1f;이런 느낌으로요private, protected를 public과 같이 inspector 창에서 수정 가능하도록 해주지만 둘은 차이가 있습니다.public은 다른 클래스에서 접근이 가능하도록 하지만, [SerializeField]를 사용하면 다른 클래스에서는 접근이 불가능합니다  2. [System.Serializable]inspect..

Unity 2024.10.15

Unity Effector 2D 정리글 (Surface Effector 2D)

이번에는 Surface Effector 2D 입니다.표면 이펙터입니다. 이번에도 2D Object > Sprites > Square로 생성 후 Box Collider 2D를 넣고 Platform Effector 2D를 넣어줍니다.이번에도 isTrigger를 키지 않고 Used By Effector만 켜줍니다. Force에 Speed는 이 위에 있는 오브젝트가 이동할 속도입니다.Speed Variation은 Speed에 추가할 값입니다. Force Scale은 이동을 막는다고 봐도 무방합니다. 1로 설정하고 반대로 이동하려고 하면 이동이 잘 안되는 모습이 보이실 겁니다. 0,1로 설정 시 반대쪽으로 이동이 잘 됩니다. Options에 Contract가 켜지면 오브젝트가 회전하게 됩니다.Friction이 켜..

Unity 2024.09.29