버그 수정 및 로딩 추가
This commit is contained in:
parent
8107321f04
commit
740bb595ab
File diff suppressed because it is too large
Load Diff
|
|
@ -10,19 +10,27 @@ public class ItemPrefab : MonoBehaviour, System.IEquatable<ItemPrefab>
|
|||
[SerializeField] TMP_Text suitName;
|
||||
[SerializeField] TMP_Text ownerName;
|
||||
[SerializeField] RawImage suitImage;
|
||||
[SerializeField] GameObject loading;
|
||||
|
||||
public void Set(Library library)
|
||||
{
|
||||
this._library = library;
|
||||
suitName.text = library.suit_name;
|
||||
ownerName.text = library.owner_name;
|
||||
//if(_library._suit_image == null)
|
||||
// SearchCtrl.Instance.GetImage(this, _library);
|
||||
//else
|
||||
// ImageSet();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (loading.activeSelf)
|
||||
{
|
||||
loading.transform.rotation *= Quaternion.Euler(0, 0, 5);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void ImageSet()
|
||||
{
|
||||
loading.SetActive(false);
|
||||
suitImage.texture = library._suit_image;
|
||||
suitImage.SetNativeSize();
|
||||
RectTransform rect = suitImage.gameObject.GetComponent<RectTransform>();
|
||||
|
|
|
|||
|
|
@ -10,13 +10,25 @@ public class ModalCtrl : MonoBehaviour
|
|||
[SerializeField] TMP_Text ownerName;
|
||||
[SerializeField] TMP_Text suitMaker;
|
||||
[SerializeField] TMP_Text debutDate;
|
||||
[SerializeField] TMP_Text suitType;
|
||||
[SerializeField] TMP_Text animalType;
|
||||
[SerializeField] TMP_Text suitStyle;
|
||||
[SerializeField] GameObject[] colors;
|
||||
|
||||
[SerializeField] GameObject _modelCanvas;
|
||||
|
||||
public GameObject modelCanvas { get { return _modelCanvas; } }
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetKey(KeyCode.Escape))
|
||||
{
|
||||
_modelCanvas.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void Set(Library library)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
_modelCanvas.SetActive(true);
|
||||
suitImage.texture = library._suit_image;
|
||||
suitImage.SetNativeSize();
|
||||
RectTransform rect = suitImage.gameObject.GetComponent<RectTransform>();
|
||||
|
|
@ -29,7 +41,7 @@ public class ModalCtrl : MonoBehaviour
|
|||
ownerName.text = library.owner_name;
|
||||
suitMaker.text = library.maker;
|
||||
debutDate.text = library.production_date;
|
||||
suitType.text = library.suit_type;
|
||||
animalType.text = library.animal_type;
|
||||
suitStyle.text = library.suit_style;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ using System.Threading.Tasks;
|
|||
using System.Linq;
|
||||
using System;
|
||||
using BestHTTP;
|
||||
using Unity.VisualScripting;
|
||||
|
||||
public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
||||
{
|
||||
|
|
@ -28,16 +29,17 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
[SerializeField] ItemPrefab item;
|
||||
[SerializeField] Transform results;
|
||||
[SerializeField] GameObject listTop;
|
||||
[SerializeField] GameObject bar;
|
||||
[SerializeField] RectTransform content;
|
||||
[SerializeField] Animator searchUI;
|
||||
[SerializeField] GameObject loading;
|
||||
[SerializeField] Transform loadingImage;
|
||||
|
||||
// 모달 UI
|
||||
[SerializeField] ModalCtrl model;
|
||||
|
||||
// 검색 결과 데이터
|
||||
private SearchRequest request;
|
||||
private List<Library> librarys;
|
||||
private SearchRequest request = new SearchRequest();
|
||||
[SerializeField] private List<Library> librarys;
|
||||
private bool hasMore;
|
||||
|
||||
// 검색결과 UI 프리팹
|
||||
|
|
@ -49,13 +51,24 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
private bool isRefreshing = false;
|
||||
private Queue<Library> searchResults = new Queue<Library>();
|
||||
|
||||
bool isLoading = false;
|
||||
|
||||
protected override void OnAwake()
|
||||
{
|
||||
name.onEndEdit.AddListener(INPUTFIELD);
|
||||
librarys = new List<Library>();
|
||||
itemPrefabPool = new ObjectPool<ItemPrefab>(itemPrefabs_OnCreate, itemPrefabs_OnGet, itemPrefabs_OnRelease, null, true, 100);
|
||||
itemPrefabs = new List<ItemPrefab>();
|
||||
}
|
||||
|
||||
void INPUTFIELD(string input)
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter))
|
||||
{
|
||||
SearchButton();
|
||||
}
|
||||
}
|
||||
|
||||
#region ObjectPool
|
||||
private ItemPrefab itemPrefabs_OnCreate()
|
||||
{
|
||||
|
|
@ -78,8 +91,9 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
private void OnEnable()
|
||||
{
|
||||
hasMore = false;
|
||||
model.gameObject.SetActive(false);
|
||||
model.modelCanvas.SetActive(false);
|
||||
searchUI.SetTrigger("reset");
|
||||
loading.SetActive(false);
|
||||
ResetButton();
|
||||
ObjectClear();
|
||||
}
|
||||
|
|
@ -88,7 +102,6 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
{
|
||||
results.gameObject.SetActive(false);
|
||||
listTop.SetActive(false);
|
||||
bar.SetActive(false);
|
||||
librarys.Clear();
|
||||
while (itemPrefabPool.CountActive > 0)
|
||||
{
|
||||
|
|
@ -112,24 +125,89 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
|
||||
public void SearchButton()
|
||||
{
|
||||
ObjectClear();
|
||||
request = new SearchRequest();
|
||||
bool isBefore = true;
|
||||
if(request.fursuitName != name.text)
|
||||
{
|
||||
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;
|
||||
|
||||
results.gameObject.SetActive(true);
|
||||
listTop.SetActive(true);
|
||||
bar.SetActive(true);
|
||||
SearchSuiters().Forget();
|
||||
isBefore = false;
|
||||
}
|
||||
|
||||
if (suitStyle.value != 0)
|
||||
{
|
||||
if (request.suitStyle != GameManager.Instance.suitStyle[suitStyle.value - 1].code_id)
|
||||
{
|
||||
request.suitStyle = GameManager.Instance.suitStyle[suitStyle.value - 1].code_id;
|
||||
isBefore = false;
|
||||
}
|
||||
}
|
||||
else if(request.suitStyle != "")
|
||||
{
|
||||
request.suitStyle = "";
|
||||
isBefore = false;
|
||||
}
|
||||
|
||||
if (suitType.value != 0)
|
||||
{
|
||||
if (request.suitType != GameManager.Instance.suitType[suitType.value - 1].code_id)
|
||||
{
|
||||
request.suitType = GameManager.Instance.suitType[suitType.value - 1].code_id;
|
||||
isBefore = false;
|
||||
}
|
||||
}
|
||||
else if (request.suitType != "")
|
||||
{
|
||||
request.suitType = "";
|
||||
isBefore = false;
|
||||
}
|
||||
|
||||
if (region.value != 0)
|
||||
{
|
||||
if (request.suitRegion != GameManager.Instance.region[region.value - 1].code_id)
|
||||
{
|
||||
request.suitRegion = GameManager.Instance.region[region.value - 1].code_id;
|
||||
isBefore = false;
|
||||
}
|
||||
}
|
||||
else if (request.suitRegion != "")
|
||||
{
|
||||
request.suitRegion = "";
|
||||
isBefore = false;
|
||||
}
|
||||
|
||||
if (animalTypes.value != 0)
|
||||
{
|
||||
if (request.suitAnimalType != GameManager.Instance.animalTypes[animalTypes.value - 1].code_id)
|
||||
{
|
||||
request.suitAnimalType = GameManager.Instance.animalTypes[animalTypes.value - 1].code_id;
|
||||
isBefore = false;
|
||||
}
|
||||
}
|
||||
else if (request.suitAnimalType != "")
|
||||
{
|
||||
request.suitAnimalType = "";
|
||||
isBefore = false;
|
||||
}
|
||||
|
||||
//첫 검색이거나 이전과 검색결과가 같지 않으면 검색진행
|
||||
if (!isBefore || !listTop.activeSelf)
|
||||
{
|
||||
request.offset = 0;
|
||||
request.page = 1;
|
||||
request.size = 10;
|
||||
ObjectClear();
|
||||
results.gameObject.SetActive(true);
|
||||
listTop.SetActive(true);
|
||||
SearchSuiters().Forget();
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (isLoading)
|
||||
{
|
||||
loadingImage.rotation *= Quaternion.Euler(0, 0, 5);
|
||||
}
|
||||
}
|
||||
public async UniTask SearchSuiters()
|
||||
{
|
||||
if (isSearching) return;
|
||||
|
|
@ -148,6 +226,7 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
}
|
||||
hasMore = data.hasMore;
|
||||
tcs.SetResult(true); // 응답 완료 신호
|
||||
loading.SetActive(hasMore);
|
||||
}
|
||||
);
|
||||
|
||||
|
|
@ -171,8 +250,6 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
{
|
||||
librarys.Add(result);
|
||||
}
|
||||
|
||||
// librarys.Sort((a,b) => a.owner_id.CompareTo(b.owner_id));
|
||||
}
|
||||
|
||||
int n = 0;
|
||||
|
|
@ -183,14 +260,15 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
await UniTask.Yield();
|
||||
}
|
||||
|
||||
|
||||
for (; n < librarys.Count; n++)
|
||||
{
|
||||
var item = itemPrefabPool.Get();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(content);
|
||||
item.Set(librarys[n]);
|
||||
await UniTask.Yield();
|
||||
}
|
||||
|
||||
isLoading = false;
|
||||
loadingImage.rotation = Quaternion.identity;
|
||||
for (; n > librarys.Count; n--)
|
||||
{
|
||||
var item = itemPrefabs.Last();
|
||||
|
|
@ -198,7 +276,7 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
await UniTask.Yield();
|
||||
}
|
||||
await ApplayImages();
|
||||
// LayoutRebuilder.ForceRebuildLayoutImmediate(content);
|
||||
|
||||
isRefreshing = false;
|
||||
}
|
||||
|
||||
|
|
@ -258,7 +336,7 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
suitType.value = 0;
|
||||
region.value = 0;
|
||||
animalTypes.value = 0;
|
||||
for(int n = 0; n < colors.Length; n++)
|
||||
for (int n = 0; n < colors.Length; n++)
|
||||
{
|
||||
colors[n].isOn = false;
|
||||
colors[n].image.sprite = isOnSprite[0];
|
||||
|
|
@ -275,13 +353,15 @@ public class SearchCtrl : SingletonMonoBehaviour<SearchCtrl>
|
|||
model.Set(library);
|
||||
}
|
||||
|
||||
public void ScrollValue(RectTransform Content) {
|
||||
if(Content.anchoredPosition.y < 0.0f)
|
||||
public void ScrollValue(RectTransform Content)
|
||||
{
|
||||
if (Content.anchoredPosition.y < 0.0f)
|
||||
{
|
||||
Content.anchoredPosition = Vector2.zero;
|
||||
}
|
||||
else if(hasMore && Content.sizeDelta.y != Screen.height && Content.sizeDelta.y - Screen.height < Content.anchoredPosition.y)
|
||||
else if (hasMore && Content.sizeDelta.y != Screen.height && Content.sizeDelta.y - Screen.height < (Content.anchoredPosition.y + 25))
|
||||
{
|
||||
isLoading = true;
|
||||
NextSearch();
|
||||
}
|
||||
}
|
||||
|
|
@ -298,7 +378,7 @@ public class SearchRequest
|
|||
public string suitType = ""; /*슈트 형태*/
|
||||
public List<string> colorList = new List<string>(); /*슈트 색상*/
|
||||
public int page = 1;
|
||||
public int size = 5;
|
||||
public int size = 10;
|
||||
public int offset = 0;
|
||||
}
|
||||
public class SearchResponse
|
||||
|
|
@ -319,7 +399,6 @@ public class Library
|
|||
public string owner_id;
|
||||
public string owner_name;
|
||||
public string production_date;
|
||||
public string suit_image;//»ç¿ë¾ÈÇÔ
|
||||
public Texture2D _suit_image = null;
|
||||
public string maker;
|
||||
public string region;
|
||||
|
|
|
|||
|
|
@ -14,4 +14,24 @@ public class GameManager : DontDestroy<GameManager>
|
|||
{
|
||||
Application.targetFrameRate = 100;
|
||||
}
|
||||
|
||||
public enum eColor
|
||||
{
|
||||
핑크벚꽃 = 500001,
|
||||
빨강 = 500002,
|
||||
주황 = 500003,
|
||||
노랑 = 500004,
|
||||
연두 = 500005,
|
||||
초록 = 500006,
|
||||
민트 = 500007,
|
||||
하늘 = 500008,
|
||||
파랑 = 500009,
|
||||
보라 = 500010,
|
||||
자주 = 500011,
|
||||
갈색 = 500012,
|
||||
아이보리 = 500013,
|
||||
연회색 = 500014,
|
||||
진회색 = 500015,
|
||||
검정 = 500016,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public class TopMenuCtrl : MonoBehaviour
|
|||
fursuit.text = sizeY < 0.5f ? "퍼\n슈\n트\n\n등\n록" : "퍼\n슈\n트";
|
||||
sizeY = (sizeY < 1.0f ? sizeY : 1.0f);
|
||||
rectTransform.sizeDelta = new Vector2(282.5f, 242 - (sizeY * 87));
|
||||
topButton.anchoredPosition = new Vector2(-50, -100f + (sizeY * 150f));
|
||||
topButton.anchoredPosition = new Vector2(-28, -100f + (sizeY * 129f));
|
||||
}
|
||||
}
|
||||
public void TopButton()
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 165 KiB |
|
|
@ -137,9 +137,23 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: 1da056f246b185842aae317b0faf0a3b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_library:
|
||||
imageBase64:
|
||||
suit_name:
|
||||
owner_id:
|
||||
owner_name:
|
||||
production_date:
|
||||
_suit_image: {fileID: 0}
|
||||
maker:
|
||||
region:
|
||||
animal_type:
|
||||
suit_style:
|
||||
suit_type:
|
||||
suit_color: []
|
||||
suitName: {fileID: 8144517625848204680}
|
||||
ownerName: {fileID: 2525889181953908848}
|
||||
suitImage: {fileID: 3834666193358897927}
|
||||
loading: {fileID: 5262172002440681221}
|
||||
--- !u!114 &748755465289565643
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -566,6 +580,81 @@ MonoBehaviour:
|
|||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &5262172002440681221
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7097115115093172578}
|
||||
- component: {fileID: 3151196771925636361}
|
||||
- component: {fileID: 4446388371920305231}
|
||||
m_Layer: 5
|
||||
m_Name: Loading
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7097115115093172578
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5262172002440681221}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 716527630986831245}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3151196771925636361
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5262172002440681221}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4446388371920305231
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5262172002440681221}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 96ae92151615e4241b2e95873bbc5ede, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &6543022936957413842
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -598,6 +687,7 @@ RectTransform:
|
|||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 104449160465615579}
|
||||
- {fileID: 7097115115093172578}
|
||||
- {fileID: 6213423518440723368}
|
||||
m_Father: {fileID: 6212042657398888647}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -408,7 +408,7 @@ PlayerSettings:
|
|||
m_APIs: 10000000
|
||||
m_Automatic: 1
|
||||
m_BuildTargetVRSettings: []
|
||||
m_DefaultShaderChunkSizeInMB: 32
|
||||
m_DefaultShaderChunkSizeInMB: 256
|
||||
m_DefaultShaderChunkCount: 0
|
||||
openGLRequireES31: 0
|
||||
openGLRequireES31AEP: 0
|
||||
|
|
@ -687,7 +687,7 @@ PlayerSettings:
|
|||
webGLMemoryGrowthMode: 2
|
||||
webGLMemoryLinearGrowthStep: 16
|
||||
webGLMemoryGeometricGrowthStep: 0.2
|
||||
webGLMemoryGeometricGrowthCap: 96
|
||||
webGLMemoryGeometricGrowthCap: 256
|
||||
webGLPowerPreference: 2
|
||||
scriptingDefineSymbols:
|
||||
WebGL: ODIN_INSPECTOR;ODIN_INSPECTOR_3;ODIN_INSPECTOR_3_1
|
||||
|
|
@ -780,7 +780,13 @@ PlayerSettings:
|
|||
XboxOneOverrideIdentityName:
|
||||
XboxOneOverrideIdentityPublisher:
|
||||
vrEditorSettings: {}
|
||||
cloudServicesEnabled: {}
|
||||
cloudServicesEnabled:
|
||||
Build: 0
|
||||
Game Performance: 0
|
||||
Legacy Analytics: 0
|
||||
Purchasing: 0
|
||||
UDP: 0
|
||||
Unity Ads: 0
|
||||
luminIcon:
|
||||
m_Name:
|
||||
m_ModelFolderPath:
|
||||
|
|
@ -797,14 +803,14 @@ PlayerSettings:
|
|||
embeddedLinuxEnableGamepadInput: 1
|
||||
hmiLogStartupTiming: 0
|
||||
hmiCpuConfiguration:
|
||||
apiCompatibilityLevel: 3
|
||||
apiCompatibilityLevel: 6
|
||||
activeInputHandler: 0
|
||||
windowsGamepadBackendHint: 0
|
||||
cloudProjectId: 30451103-25d6-4a7d-873a-a34ec38976d2
|
||||
cloudProjectId:
|
||||
framebufferDepthMemorylessMode: 0
|
||||
qualitySettingsNames: []
|
||||
projectName: Unity_Web
|
||||
organizationId: jyp0036
|
||||
projectName:
|
||||
organizationId:
|
||||
cloudEnabled: 0
|
||||
legacyClampBlendShapeWeights: 0
|
||||
hmiLoadingImage: {fileID: 0}
|
||||
|
|
|
|||
Loading…
Reference in New Issue