서버에 파일을 올리고 내려받는법을 알아보자. 본인의 콘솔에 들어가면 빌드 아래에 Storage라는 항목이 있다. 여기 들어가서시작하기를 눌러 버킷을 생성해주자. 생성됐다면, 이제 유니티에 FirebaseStorage 패키지 파일을 설치하자.이전 글부터 따라왔다면 이전에 받은 압축파일 내에 패키지파일이 있을것이다.이걸 유니티에 임포트시켜주자. 유니티의 셋팅은 이렇게 했다.이미지를 로드할 버튼과, 업로드할 버튼을 만들고, 이미지를 로드했을 때 Image UI에 이미지가 로드되게 설정했다. 각 버튼엔 다음 스크립트를 붙여준다.LoadImg.cs//생략using UnityEngine.UI;using Firebase.Storage;using Firebase;using Firebase.Extensions;using..
이제 시작 스크립트를 작성해보자. 일단 테스트로 User클래스를 만들었다.public class User{ public string name; public int level; public User(string _name, int _level){ name = _name; level = _level; }}간단하게 만들어주었고, 이제 버튼을 두개 만들어서 버튼에 각각 write기능과 read기능을 추가해줄것이다. using Firebase;using Firebase.Database;using System;public class ButtonScript : MonoBehaviour{ [SerializeField] string _hir; [SerializeF..
진행해야하는 프로젝트에서 이번엔 Firebase를 사용해 서버를 구현해야하기 때문에 Firebase공부를 시작했다. 처음 설치부터 구현까지 3시간 공부해서 겨우 성공시켰다. 1. 설치FireBase사이트에 접속하자.https://firebase.google.com/?hl=ko Firebase | Google's Mobile and Web App Development Platform개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요.firebase.google.com접속해서 원하는 방향으로 적당히 아이디를 만들고 로그인을 하자. 로그인을 했다면 오른쪽 상단의 콘솔창으로 이동하자.콘솔창에서 이제 우리가 필요한 것들을 ..
파이그래프는 이렇게 생긴 그래프를 말한다. 이런식으로 100% 안에서 그래프를 일정 비율로 쪼갠 그래프가 파이그래프이다. 유니티에서 구현하기 쉬운 편인데 유니티에서는 다음과 같은 기능이 있기 때문이다.UI - Image에는 위와 같이 ImageType이 있다. 이 ImageType를 Filled로 바꾸면, 채워지는 그림을 만들 수 있다.채워지는 양은 Fill Amount로 조정하면 된다.Source Image는 알아서 동그란 형태로 바꿔두자. 그리고 소스코드는 다음과 같이 짜서, PieGraph 오브젝트에 붙여줬다.using System.Collections;using System.Collections.Generic;using Unity.VisualScripting;using UnityEngine;usi..
현재 진행중인 프로젝트가 음성인식을 사용하는 프로젝트이다. 음성인식 로직은 다음과 같다. 녹음 -> Naver Clova API를 사용해 음성을 텍스트로 변환 (네이버가 정확도가 가장 높아서 선정하였다.) -> DialogFlow로 대답을 받아온다 -> 이것을 다시 Clova를 사용해 텍스트를 음성으로 변환 이런 로직으로 진행하고 있는데, 일단 녹음을 받기 위해서 음성인식을 받아와야한다. 유니티에서는 UnityEngine안에서 Microphone 클래스를 제공한다.하위의 멤버함수인 Start함수는 (마이크 이름, 반복(Loop), 녹음최대시간, 프리퀀시) 와 같은 형태로 구현되어있다. 마이크는 모바일에 탑재된 마이크를 기준으로 작성하였고, 마이크의 이름을 전달하여 녹음한 후, AudioSource를 추가..
이제 메인 시스템인 작물을 만들어 보자. 작물은 우리가 미리 만들어 둔 맵 중에 흙 타일에만 생성되게 해볼것이다. 그럼 일단 흙 타일을 감지하는 방법을 알아보자.일단, Ground를 Ctrl + D를 눌러 객체 하나를 복사해주자.그리고 복사된 객체를 비활성화 처리 해주었다. (두개 같은거라 헷갈리기 때문이다.) 그리고 원래 Ground를 눌러서 원래 있던 흙 타일을 풀 타일로 교체해주자.이렇게 해두고, 비활성화 한 다음, 복사해둔 객체를 다시 활성화 시키면 이렇게 된다. 원래 있던 흙 타일이 생긴걸 알 수 있다.이전에 원본은 비활성화 해뒀으니, 이 Ground복사본에서는 풀 타일을 전부 지워주자. (헷갈린다면 그릴 타일맵만 따로 활성화해두고 그리면 편하다.)이렇게 흙만 남겨두고 다 지워주자. 그리고 백그..
슬롯을 만들다 보니 뭔가 이상한점을 발견했다.이렇게 툴팁이 가려진다... Canvas의 하위 객체들은 전체가 Canvas의 정렬 기준을 따른다. Canvas의 Sorting Layer를 수정하면 하위 객체 전체의 정렬기준이 설정되기 때문이다. 그래서 다른 방법을 고안해냈는데 다음과 같이 수정해주자. 일단 아이템 슬롯에서 툴팁을 제거해주자. 이렇게 툴팁을 바깥으로 빼주었다. 이전 설정은 전부 같다. 그리고 슬롯의 SlotManager 스크립트를 보면, 이전에 툴팁을 띄울때는 넣어서 해결해줬지만, 이번에는 프리팹을 생성할때, 오브젝트를 검색해서 자동으로 넣어줄 수 있도록 해볼것이다.public class SlotManager : MonoBehaviour{ //중략, 변수들을 선언한 부분이다. [S..
이전에 슬롯을 수정해 이제 아이템을 먹으면 아이템이 인벤토리에 추가되는것까지 완료했다.아이템의 수량과, 아이템의 설명이 정확히 나타났으면 좋겠는데 일단 내가 구현하고싶은건 다음과 같다.아이템에 마우스를 올리면 툴팁이 뜨는건 어떤가? 이 기능은 유니티에서 제공하는 마우스에 관련된 함수를 사용하면 구현 할 수 있을것 같다. 일단 구현하기에 앞서 SlotManager이라는 스크립트를 하나 생성해주자.스크립트를 생성해주고, slot프리팹을 클릭해 프리팹 편집화면으로 넘어가, 슬롯에 SlotManager를 붙여주자.이런식으로 간단하게 붙여주면 된다. 주의할점은 최 상단의 Slot 객체에 붙여야한다는점이다. (하위 오브젝트에 붙이지 말자...)그리고 Box Collider 2D도 함께 붙여주자. 사이즈는 가로 세로..
이전엔 슬롯을 오브젝트풀로 생성하고, 아이템을 습득했을 때, 인벤토리에 아이템이 추가되는것까지 완료하였다. 하지만, 인벤토리에 아이템이 추가되면 다음과 같이 뜬다.아이템이 뭔가 안예쁘게 정리되는 감이 있다... ㅠㅠ일단 슬롯간 구분을 위해 아이템 슬롯부터 좀 꾸며보자. 이전에 설명했던대로, 만들었던 프리팹을 더블클릭해서 프리펩 편집화면으로 들어오자.이제 이걸 꾸며줄건데, 간단하게 도트를 찍어서 꾸미자.나도 도트에 대해선 미적 감각이 부족하지만, 스팀의 Aseprite를 사용해 찍을것이다.(스팀에서 할인할때 하나 구비해두자. 꽤 쓸모가 많다.) Aseprite on SteamAseprite is a pixel-art tool to create 2D animations, sprites, and any kin..
이전에 아이템을 습득하고, 그 아이템이 인벤토리로 들어가는 과정까지 코딩했다.그럼 이제 플레이어가 인벤토리에서 아이템을 볼 수 있도록 하는 기능을 추가해보자. 일단 PlayerManager에 다음과 같이 코드를 추가하자. //중략 [SerializeField] GameObject inventoryUI; void Update() { //중략 if(Input.GetKeyDown(KeyCode.I)){ OpenInventory(); } } //인벤토리 여는 함수 추가 void OpenInventory(){ if(inventoryUI.activeSelf){ inventoryUI.Set..