퀘스트 추가이제 퀘스트를 작성해보자.Quest/Item 항목을 선택한다.+버튼을 눌러 Quest를 선택해 생성해주자.Name에 퀘스트 이름을 입력하고, Description에 본인이 알 수 있도록 퀘스트에 대한 메모를 하자.Success Description에 퀘스트 성공 시 띄울 말을 작성하자.State는 퀘스트의 진행상태이다. 퀘스트를 진행하기 전이므로 unassigned로 설정하자.Trackable은 퀘스트 활성 시 이용자가 알 수 있게 하는 옵션이다.Has Entries는 퀘스트의 진행상황을 표시한다. (카운트 해야하는 퀘스트나 성공여부 등)Has Entries를 체크하게 되면 아래에 Add New Quest Entry가 생성되며 이것을 클릭해 빈 공간에 variables항목에서 생성한 변수값을 ..
큰맘먹고 유니티 에셋스토어에서 Dialogsystem을 구매하였다. 물론 DialogSystem은 유니티에도 강좌가 많고, 강좌를 따라 스크립트로 작성하여 만들 수 있다고 하지만, 이 에셋에서 주는 힘이 크다고 생각하여 구매했다. 유니티에셋 DialogSystem을 구매하는 링크는 아래에 있다. Dialogue System for Unity | 행동 AI | Unity Asset StoreGet the Dialogue System for Unity package from Pixel Crushers and speed up your game development process. Find this & other 행동 AI options on the Unity Asset Store.assetstore.unity..
유니티에서 함수를 대신해서 작동하게 하는 문법이 세가지 있다. 델리게이트 : 함수 포인터Action : 리턴이 없는 값 (void 리턴)Func : 리턴이 있는값 (값 리턴) 하나하나 살펴보자. 1. delegate델리게이트는 함수의 포인터 즉, 대리자이다.함수를 대신 실행해주는 역할을 한다. 정확히 안와닿지만, 일단 다음 예제를 보자.using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test : MonoBehaviour{ delegate void NumDelegate(int num); NumDelegate del; // Start is called before the first ..
유니티에서 라디오 버튼을 구현하고 싶어서 코드도 짜서 넣어보고 모든 기능을 다 총동원 해봤지만 결국 유니티 내부에서 제공하는 기능이 있다는걸 알았다... 라디오버튼은 여러 선택지가 있을 때, 모든 선택지 중 하나만 켜지도록 하는 기능이다. 거두절미하고 아래와 같이 구성하였다. 하이라키창은 맨 위에 빈 오브젝트 Toggle Group를 만들어주고, 하위에 O,X 토글을 각각 생성해주었다.그리고 ToggleGropu에는 Toggle Group 컴포넌트를 붙여줘야한다.이런식으로 붙여준다.이때, Allow Switch Off를 켜주면, 그룹으로 설정 된 토글들이 라디오 버튼처럼 작동하게 된다...! 각 토글들에도 Group에 위에서 생성한 Toggle Group를 붙여주자. 이렇게 설정하면 라디오버튼처럼 작동한..
유니티에서 게임을 만들 땐, 여러 방법이 있겠지만, 씬을 여러개를 두고 전환해야되는 일이 생기기 마련이다. 보통 처음 유니티를 배울 땐, 씬 로딩을 UnityEngine.SceneManagement에 포함되어있는 SceneManager.LoadScene을 사용해 구현하곤 한다. 나쁜 방법은 아니지만, 씬에 로딩해야 할 데이터가 많거나 한다면, 씬 전환 간 유저는 멈춘 화면에서 대기를 해야할 수 있다. 이러한 점을 보완하고자, 비동기적으로 씬을 호출하는 작업을 하면 좋다. 비동기란 무엇인가?비동기는 말 그대로 동기화되지 않았다는것이다. 예를 들어서 유니티에서는 다음과 같은 라이프사이클이 있다. 엄청 긴데 우리는 간단하게 Awake-> Start-> Update만 알고 있으면 얼추 될것같다. 유니티에서는 다..
지금 프로그램을 만들고 있다. 프로그램 기획자의 요청사항중, 유저 회원가입에서 주소를 받아서 저장해야된다고 요청받았다. 일단 가장 큰 문제가 유니티 내부에서 api를 사용하는것이 가장 큰 문제다. 아직 WebRequest에 익숙하지 않아 조사해본 결과 여러 도로명주소api (카카오api, Daum Api 등등)가 있지만, 그냥 행정안전부에서 제공하는 api를 사용하기로 했다. 일단, 행안부의 api를 사용하기 위해서는 키를 발급받아야된다. API 신청하기API신청하기business.juso.go.kr 여기서 필수 입력사항을 입력하고 API키를 발급받자. 참고로 서비스용도를 개발로 하면 본인인증 없이 발급받을 수 있다. URL은 블로그 주소를 입력해도 무방할것 같다. API키를 발급받아서 잘 저장해두자 U..
보통 클래스를 정의할 때, get, set 연산자를 쓴다. get연산자는 값을 가져올 때, set연산자는 값을 설정할 때 쓰는것 같다. public class Person{ public string Name { get; set; }}이런식으로 구현된 코드는 자동구현 속성이다. 자동구현 속성 대신 명시적으로 속성의 동작을 정의할 수도 있다.public class Person{ private string name; public string Name { get { return name; } set { name = value; } }}name 변수는 private로 설정해두고, Name으로 접근하여 값을 설정하고, 반환하는 형태로도 만들 수 있다. 이때 set..
유니티를 사용할 땐, 항상 코드를 수정하면 유니티 엔진 내부에서 스크립트 리로딩을 진행한다. 이런식으로 리로딩을 진행해, 코드가 유니티상에서 실행될 수 있도록 한다. 갑자기 이 동작이 진행이 안되고, 스크립트를 수정했는데도 코드가 실행이 안되었다. using System.Collections;using System.Collections.Generic;using UnityEngine;public class TestScript : MonoBehaviour{ // Start is called before the first frame update void Start() { Destroy(this.gameObject); }}대충 객체를 파괴하는 작업이 담긴 코드를 짜고, 빈 객체..
코드를 뜯어보다가 캐스팅이라는 말을 발견했다. 캐스팅은 쉽게말해 '형 변환'이다. 다만, 명확하지 않은 클래스로의 형변환이다. 유니티는 C#을 사용하고, C#에는 'as'라는 키워드가 존재한다. as는 캐스팅을 위한 도구이다. 나는 싱글톤을 구현할 때 다음과 같이 구현했었다. public class TestSingleton : Monobehavior{ //test싱글톤 private static TestSingleton _instance; public static TestSingleton Instance{ get{ if(_instance = null){ _instance = FindObjectOfType((typeof)TestSingleton)) as Te..
이거 구현하려고 이틀동안 고생했다.. 일단, 기본적으로 이번 코드에서 알아야하는 구문은 Callback함수이다. 유니티에서 Callback함수는 다음과 같이 선언한다.public UnityAction callback = null;Callback함수는 비동기 작업때, 즉, 네트워크 연결 작업에서 네트워크연결이 완료된 후 작업을 처리해야할 때 사용한다. 일단, 전체코드는 다음과 같이 구성했다.코드는 조금 길어서 접은글로 대체하겠다.더보기using System;using System.Collections;using UnityEngine;using Google.Apis.Dialogflow.v2;using Google.Apis.Dialogflow.v2.Data;using Google.Apis.Auth.OAuth2..