이미지 정리 및 검색 코드작업

This commit is contained in:
김판돌 2025-01-31 09:24:37 +09:00
parent 0feb2e8aaf
commit 22cd21f449
11 changed files with 1377 additions and 776 deletions

File diff suppressed because it is too large Load Diff

View File

@ -11,15 +11,12 @@ public class Common : MonoBehaviour
[SerializeField] TMP_Dropdown dRegion; [SerializeField] TMP_Dropdown dRegion;
//내부 저장 기능 만들기 //내부 저장 기능 만들기
//버전 기능 까지 만들어서 버전 체크후 새로 다운받아오게 만들기. //버전 기능 까지 만들어서 버전 체크후 새로 다운받아오게 만들기.
List<CommonData> animalTypes;
List<CommonData> suitStyle;
List<CommonData> suitType;
List<CommonData> region;
void Start() void Start()
{ {
NetworkManager.Instance.CreateRequest<List<CommonData>>("common/animalTypes", new object(), (data) => NetworkManager.Instance.CreateRequest<List<CommonData>>("common/animalTypes", new object(), (data) =>
{ {
animalTypes = data; GameManager.Instance.animalTypes = data;
List<string> strings = new List<string>(); List<string> strings = new List<string>();
for(int n = 0; n < data.Count; n++) for(int n = 0; n < data.Count; n++)
{ {
@ -29,7 +26,7 @@ public class Common : MonoBehaviour
}, null, BestHTTP.HTTPMethods.Get); }, null, BestHTTP.HTTPMethods.Get);
NetworkManager.Instance.CreateRequest<List<CommonData>>("common/suitStyle", new object(), (data) => NetworkManager.Instance.CreateRequest<List<CommonData>>("common/suitStyle", new object(), (data) =>
{ {
suitStyle = data; GameManager.Instance.suitStyle = data;
List<string> strings = new List<string>(); List<string> strings = new List<string>();
for (int n = 0; n < data.Count; n++) for (int n = 0; n < data.Count; n++)
{ {
@ -39,7 +36,7 @@ public class Common : MonoBehaviour
}, null, BestHTTP.HTTPMethods.Get); }, null, BestHTTP.HTTPMethods.Get);
NetworkManager.Instance.CreateRequest<List<CommonData>>("common/suitType", new object(), (data) => NetworkManager.Instance.CreateRequest<List<CommonData>>("common/suitType", new object(), (data) =>
{ {
suitType = data; GameManager.Instance.suitType = data;
List<string> strings = new List<string>(); List<string> strings = new List<string>();
for (int n = 0; n < data.Count; n++) for (int n = 0; n < data.Count; n++)
{ {
@ -49,7 +46,7 @@ public class Common : MonoBehaviour
}, null, BestHTTP.HTTPMethods.Get); }, null, BestHTTP.HTTPMethods.Get);
NetworkManager.Instance.CreateRequest<List<CommonData>>("common/region", new object(), (data) => NetworkManager.Instance.CreateRequest<List<CommonData>>("common/region", new object(), (data) =>
{ {
region = data; GameManager.Instance.region = data;
List<string> strings = new List<string>(); List<string> strings = new List<string>();
for (int n = 0; n < data.Count; n++) for (int n = 0; n < data.Count; n++)
{ {

View File

@ -10,9 +10,8 @@ public class ScreenMove : MonoBehaviour
readonly Vector2 stretch = new Vector2(0f, 0.5f); readonly Vector2 stretch = new Vector2(0f, 0.5f);
readonly Vector2 middle = new Vector2(1f, 0.5f); readonly Vector2 middle = new Vector2(1f, 0.5f);
readonly Vector2 center = new Vector2(0.5f, 0.5f); readonly Vector2 center = new Vector2(0.5f, 0.5f);
readonly Vector2 movePos = new Vector2(-58.5f, 20f); readonly Vector2 pos = new Vector2(-58.5f, 20f);
readonly Vector2 moveSize = new Vector2(-343f, 100f); readonly Vector2 moveSize = new Vector2(-343f, 100f);
readonly Vector2 idlePos = new Vector2(-58.5f, 20f);
readonly Vector2 idleSize = new Vector2(553f, 100f); readonly Vector2 idleSize = new Vector2(553f, 100f);
bool isMobile; bool isMobile;
void Awake() void Awake()
@ -26,6 +25,20 @@ public class ScreenMove : MonoBehaviour
if (isMobile) if (isMobile)
{ {
rectTransform.sizeDelta = new Vector2(Screen.width, Screen.height); rectTransform.sizeDelta = new Vector2(Screen.width, Screen.height);
if (Screen.width < 1280)
{
test_rectTransform.anchorMin = center;
test_rectTransform.anchorMax = center;
test_rectTransform.anchoredPosition = pos;
test_rectTransform.sizeDelta = idleSize;
}
else
{
test_rectTransform.anchorMin = stretch;
test_rectTransform.anchorMax = middle;
test_rectTransform.anchoredPosition = pos;
test_rectTransform.sizeDelta = moveSize;
}
} }
} }
@ -35,23 +48,20 @@ public class ScreenMove : MonoBehaviour
if (!isMobile) if (!isMobile)
{ {
rectTransform.sizeDelta = new Vector2(Screen.width, Screen.height); rectTransform.sizeDelta = new Vector2(Screen.width, Screen.height);
//1280
//Debug.Log($"{Screen.width} : {Screen.height}");
if (Screen.width < 1280) if (Screen.width < 1280)
{ {
test_rectTransform.anchorMin = center; test_rectTransform.anchorMin = center;
test_rectTransform.anchorMax = center; test_rectTransform.anchorMax = center;
test_rectTransform.anchoredPosition = idlePos; test_rectTransform.anchoredPosition = pos;
test_rectTransform.sizeDelta = idleSize; test_rectTransform.sizeDelta = idleSize;
} }
else else
{ {
test_rectTransform.anchorMin = stretch; test_rectTransform.anchorMin = stretch;
test_rectTransform.anchorMax = middle; test_rectTransform.anchorMax = middle;
test_rectTransform.anchoredPosition = movePos; test_rectTransform.anchoredPosition = pos;
test_rectTransform.sizeDelta = moveSize; test_rectTransform.sizeDelta = moveSize;
} }
//Debug.Log($"{test_rectTransform.anchoredPosition} : {test_rectTransform.sizeDelta}");
} }
} }

View File

@ -1,13 +1,137 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
public class SearchCtrl : MonoBehaviour public class SearchCtrl : MonoBehaviour
{ {
[SerializeField] GameObject opsion; [SerializeField] GameObject opsion;
[SerializeField] TMP_InputField name;
[SerializeField] TMP_Dropdown suitStyle;
[SerializeField] TMP_Dropdown suitType;
[SerializeField] TMP_Dropdown region;
[SerializeField] TMP_Dropdown animalTypes;
[SerializeField] Toggle[] colors;
[SerializeField] Sprite[] isOnSprite;
private SearchRequest request;
private List<Library> librarys;
private void Awake()
{
opsion.SetActive(false);
}
public void OpsionButton() public void OpsionButton()
{ {
opsion.SetActive(!opsion.activeSelf); opsion.SetActive(!opsion.activeSelf);
ResetButton();
}
public void SearchButton()
{
Debug.Log("검색 시작");
request = new SearchRequest();
request.fursuitName = name.text;
if (suitStyle.value != 0)
request.suitStyle = GameManager.Instance.suitStyle[suitStyle.value - 1].code_id;
if (suitType.value != 0)
request.suitType = GameManager.Instance.suitType[suitType.value - 1].code_id;
if (region.value != 0)
request.suitRegion = GameManager.Instance.region[region.value - 1].code_id;
if (animalTypes.value != 0)
request.suitAnimalType = GameManager.Instance.animalTypes[animalTypes.value - 1].code_id;
NetworkManager.Instance.CreateRequest<SearchResponse>("library/select/suiters", request, (data) =>
{
librarys = data.data;
for(int n = 0; n < data.data.Count; n++)
{
Debug.Log($"name : {data.data[n].suit_name}");
}
});
}
public void NextSearch()
{
request.page++;
NetworkManager.Instance.CreateRequest<SearchResponse>("library/select/suiters", request, (data) =>
{
librarys.AddRange(data.data);
for (int n = 0; n < data.data.Count; n++)
{
Debug.Log($"name : {data.data[n].suit_name}");
}
});
}
public void GetImage(int velue)
{
NetworkManager.Instance.CreateImageRequest(librarys[velue].imageBase64.Substring(1), new object(), (data) =>
{
librarys[velue]._suit_image = Sprite.Create(data, new Rect(0, 0, data.width, data.height), new Vector2(0.5f, 0.5f));
}, null, BestHTTP.HTTPMethods.Get);
}
public void ResetButton()
{
suitStyle.value = 0;
suitType.value = 0;
region.value = 0;
animalTypes.value = 0;
for(int n = 0; n < colors.Length; n++)
{
colors[n].isOn = false;
colors[n].image.sprite = isOnSprite[0];
} }
} }
public void OnToggle(int velue)
{
colors[velue].image.sprite = isOnSprite[(colors[velue].isOn ? 1 : 0)];
}
}
public class SearchRequest
{
public int xid;
public string fursuitName = ""; /*오너,슈트 이름*/
public string suitMaker; /*사용안함*/
public string suitRegion = ""; /*활동 국가*/
public string suitStyle = ""; /*슈트 스타일*/
public string suitAnimalType = ""; /*슈트 동물 종*/
public string suitType = ""; /*슈트 형태*/
public List<string> colorList = new List<string>(); /*슈트 색상*/
public int page = 1;
public int size = 5;
public int offset = 0;
}
public class SearchResponse
{
public List<Library> data;
public bool hasMore;
}
public class ImageResponse
{
public byte[] imageBytes;
}
public class Library
{
public string imageBase64;
public string suit_name;
public string owner_id;
public string owner_name;
public string production_date;
public string suit_image;//사용안함
public Sprite _suit_image;
public string maker;
public string region;
public string animal_type;
public string suit_style;
public string suit_type;
public List<string> suit_color;
}

View File

@ -1,4 +1,11 @@
 
using static Common;
using System.Collections.Generic;
public class GameManager : DontDestroy<GameManager> public class GameManager : DontDestroy<GameManager>
{ {
public List<CommonData> animalTypes;
public List<CommonData> suitStyle;
public List<CommonData> suitType;
public List<CommonData> region;
} }

View File

@ -16,7 +16,6 @@ public class NetworkManager : SingletonMonoBehaviour<NetworkManager>
/// <param name="onRequestFinished">데이터 받은 후 처리할 절차</param> /// <param name="onRequestFinished">데이터 받은 후 처리할 절차</param>
/// <param name="serializeData">전송할 데이터, null로 넣으면 안보냅니다.</param> /// <param name="serializeData">전송할 데이터, null로 넣으면 안보냅니다.</param>
/// <param name="methods">동작방식</param> /// <param name="methods">동작방식</param>
/// <param name="codec">암복호화 할 것인지</param>
/// <returns>역직렬화된 데이터 or 기본값(반환 받지 못함)</returns> /// <returns>역직렬화된 데이터 or 기본값(반환 받지 못함)</returns>
public HTTPRequest CreateRequest<T>(string api, object serializeData, Action<T> onSuccess, Action<T> onFail = null, HTTPMethods methods = HTTPMethods.Post) public HTTPRequest CreateRequest<T>(string api, object serializeData, Action<T> onSuccess, Action<T> onFail = null, HTTPMethods methods = HTTPMethods.Post)
{ {
@ -43,6 +42,34 @@ public class NetworkManager : SingletonMonoBehaviour<NetworkManager>
httpRquest.RawData = System.Text.Encoding.UTF8.GetBytes(json); httpRquest.RawData = System.Text.Encoding.UTF8.GetBytes(json);
} }
httpRquest.Send();
return httpRquest;
}
public HTTPRequest CreateImageRequest(string api, object serializeData, Action<Texture2D> onSuccess, Action<Texture2D> onFail = null, HTTPMethods methods = HTTPMethods.Post)
{
string url = $"{baseUrl}{api}".Replace("\\p{Z}", String.Empty);
var httpRquest = new HTTPRequest(new Uri(url) //url ³Ö±â
, methods //µ¿ÀÛ ¹æ½Ä ³Ö±â
, (request, response) => {
if (response == null || (response.StatusCode != 200))
{
onFail?.Invoke(null);
}
else
{
Texture2D deSerialized = response.DataAsTexture2D;
onSuccess?.Invoke(deSerialized);
}
});
if (serializeData != null)
{
httpRquest.SetHeader("Content-Type", "application/json; charset=UTF-8");
string json = JsonConvert.SerializeObject(serializeData);
httpRquest.RawData = System.Text.Encoding.UTF8.GetBytes(json);
}
httpRquest.Send(); httpRquest.Send();
return httpRquest; return httpRquest;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long