드디어 답변을 받고 이해가 가서 로그인시 직업을 받아올수있게되었습니다..
public void GetmyClass()
{
var bro = Backend.GameData.GetMyData("Character", new Where(), 10);
if (bro.IsSuccess() == false)
{
// 요청 실패 처리
Debug.Log(bro);
return;
}
if (bro.GetReturnValuetoJSON()["rows"].Count <= 0)
{
// 요청이 성공해도 where 조건에 부합하는 데이터가 없을 수 있기 때문에
// 데이터가 존재하는지 확인
// 위와 같은 new Where() 조건의 경우 테이블에 row가 하나도 없으면 Count가 0 이하 일 수 있다.
Debug.Log(bro);
return;
}
// 검색한 데이터의 모든 row의 inDate 값 확인
for (int i = 0; i < bro.Rows().Count; ++i)
{
var inDate = bro.Rows()[i]["MyClass"]["S"].ToString();
Debug.Log(inDate);
}
}
닉네임으로 유저정보를 받아올려고 그렇게 기를썼는데 그렇게는 못얻어 온다고 하더라구요
마지막 구절 FOR문에서 정보를 받아오는거고 이렇게 한결과
이런식으로 로그인시 정보를 받아올수 있게되었습니다.
이렇게 헤딩 하면서 결과를 받아서 더 잘 이해할수있었고.
나중에 인벤토리나 이런거할때는 좀 더 수월하게 불러올수 있을거 같습니다.
그리고 업데이트문에서 닉네임을 계속 그려주는거는 낭비라고생각해서
코루틴으로 시작해주고 닉네임이 null이 아니라면 스탑코루틴으로하는게 좀더 나을거같아서 그런식으로 코드를 수정해줬습니다.
public void Update()
{
StartCoroutine(GetNickName(nicknameText));
if( nickname != null)
{
StopCoroutine(GetNickName(nicknameText));
}
}
IEnumerator GetNickName(Text text)
{
while(text != null)
{
nickname = Backend.UserNickName;
text.text = nickname;
yield return null;
}
}
이제 메인신에서
직업에따라 캐릭터가 나오게끔 할예정이며
이동 까지 구현해볼 예정이다.
일단 캐릭터 메인신에서 새로 만들어줘야하기때문에 idle 애니메이션 까지는 다 구현 해줄예정이라 만든후 프리팹화 시켜주었다.
이제 메인신 매니저 오브젝트 생성 및 스크립트 생성해준다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainManager : MonoBehaviour
{
public static MainManager instance;
private void Awake()
{
if (instance == null) instance = this;
else if (instance != null) return;
}
public void CreateCharacter(string myClass)
{
switch(myClass)
{
case "Archer":
break;
case "Paladin":
break;
case "Warrior":
break;
case "Fighter":
break;
}
}
}
이런식으로 뼈대를 만들어준다
인스턴스화는 함수를 만들고 다른데서 갖다쓰기 편하기위해 했고
class 를 받아서 switch 로 구별하여 instantiate 를 할예정이고 플레이어가 생성되는위치는 게임오브젝트 생성해놓고 거기 자식으로 들어갈 예정이다.
부모로 했더니 부모쪽에 콜라이더가 없어 계속 떨어져가지구 부모쪽으로 말고 transform 만 같도록해줄예정이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BackEnd;
using UnityEngine.UI;
public class MainManager : MonoBehaviour
{
public static MainManager instance;
public string myclass;
public Transform StartPosition;
public Image playersimbol;
public Sprite[] Icon;
RectTransform rectTransform;
public Text Uiclass;
private void Awake()
{
if (instance == null) instance = this;
else if (instance != null) return;
}
private void Start()
{
CreateCharacter();
var bro = Backend.GameData.GetMyData("Character", new Where(), 10);
for (int i = 0; i < bro.Rows().Count; ++i)
{
myclass = bro.Rows()[i]["MyClass"]["S"].ToString();
// Debug.Log(myclass);
Uiclass.text = "("+myclass+")";
}
rectTransform = (RectTransform)playersimbol.transform;
}
public void CreateCharacter( )
{
var bro = Backend.GameData.GetMyData("Character", new Where(), 10);
for (int i = 0; i < bro.Rows().Count; ++i)
{
myclass = bro.Rows()[i]["MyClass"]["S"].ToString();
// Debug.Log(myclass);
}
switch (myclass)
{
case "Archer":
Debug.Log("CreateArcher");
GameObject Archer = Instantiate(Resources.Load("Prefabs/Archer") as GameObject,StartPosition.position,StartPosition.rotation);
rectTransform.sizeDelta=new Vector2(100,100);
playersimbol.sprite = Icon[3];
break;
case "Paladin":
Debug.Log("CreatePaladin");
GameObject Paladin = Instantiate(Resources.Load("Prefabs/Paladin") as GameObject, StartPosition.position, StartPosition.rotation);
playersimbol.sprite = Icon[1];
break;
case "Warrior":
Debug.Log("CreateWarrior");
GameObject Warrior = Instantiate(Resources.Load("Prefabs/Warrior") as GameObject, StartPosition.position, StartPosition.rotation);
playersimbol.sprite = Icon[0];
break;
case "Fighter":
Debug.Log("CreateFighter");
GameObject Fighter = Instantiate(Resources.Load("Prefabs/Fighter") as GameObject, StartPosition.position, StartPosition.rotation);
playersimbol.sprite = Icon[2];
break;
}
}
}
이런식으로 동작하게된다.
오늘은 일단 여기까지만 해야할거같다 클래스를 받고나서 string 에 넣어주는걸로 시간을 너무 잡아먹어서 내일부터는 캐릭터 구현을 할예정이고 일단은 Archer 먼저 구현해보려한다 왜냐면 근접캐릭터는 많이 구현해봤기때문이다.
'개인프로젝트 3D RPG 개발일지' 카테고리의 다른 글
9. (유니티포폴) 메인신구현 (0) | 2022.06.25 |
---|---|
8. (유니티포폴) 캐릭터 구현 (0) | 2022.06.23 |
6.(유니티포폴) 메인신 구현 (2) | 2022.06.20 |
5. (유니티포폴) 뒤끝서버 사용해보기 (0) | 2022.06.16 |
4.(유니티포폴)메인메뉴 (0) | 2022.06.15 |