Fix : Studio UI Merge
This commit is contained in:
8
Assets/Best MQTT Bundle.meta
Normal file
8
Assets/Best MQTT Bundle.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b87e57fddeda455489bb1537658e669e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
13
Assets/Best MQTT Bundle/Links.txt
Normal file
13
Assets/Best MQTT Bundle/Links.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Best MQTT Bundle is a bundle which includes the following assets. After purchasing this bundle, visit each package listed below, and you will be able to get them for free:
|
||||
1.) Best HTTP: https://assetstore.unity.com/packages/slug/267636
|
||||
2.) Best TLS Security: https://assetstore.unity.com/packages/slug/268761
|
||||
3.) Best WebSockets: https://assetstore.unity.com/packages/slug/268757
|
||||
4.) Best MQTT: https://assetstore.unity.com/packages/slug/268762
|
||||
|
||||
How to get them:
|
||||
---------------
|
||||
1.) Navigate to each individual product's store page using the links above.
|
||||
2.) Add each product to your cart.
|
||||
3.) The products should show as costing 0$. If they do not, contact me (https://bestdocshub.pages.dev/Shared/support/)!
|
||||
4.) Check out each product.
|
||||
5.) Download each product separately like normal.
|
||||
14
Assets/Best MQTT Bundle/Links.txt.meta
Normal file
14
Assets/Best MQTT Bundle/Links.txt.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe791f9505f124e409ce28ec6b94cd38
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 268837
|
||||
packageName: Best MQTT Bundle
|
||||
packageVersion: 3.0.0
|
||||
assetPath: Assets/Best MQTT Bundle/Links.txt
|
||||
uploadId: 623298
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
using TMPro;
|
||||
using UnityEngine.UI;
|
||||
@@ -40,6 +40,7 @@ namespace XED
|
||||
Button_AddClassName.onClick.AddListener(AddClassNameItem);
|
||||
Button_Save.onClick.AddListener(Save);
|
||||
}
|
||||
|
||||
private void SetUrlDropdown()
|
||||
{
|
||||
Dropdown_URL.ClearOptions();
|
||||
@@ -51,6 +52,7 @@ namespace XED
|
||||
}
|
||||
Dropdown_URL.AddOptions(options);
|
||||
Dropdown_URL.onValueChanged.AddListener(OnUrlValueChanged);
|
||||
OnUrlValueChanged(0);
|
||||
}
|
||||
|
||||
private void OnUrlValueChanged(int index)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -71,11 +71,13 @@ namespace XED
|
||||
Dropdown_DataStorage.AddOptions(displayNames);
|
||||
Dropdown_DataStorage.onValueChanged.AddListener(OnValueChangedDataStorageDropDown);
|
||||
}
|
||||
|
||||
private void OnValueChangedDataStorageDropDown(int index)
|
||||
{
|
||||
loadData = new SaveConnectAlarmData();
|
||||
AddStorageDataItem(index);
|
||||
}
|
||||
|
||||
private void AddStorageDataItem(int index)
|
||||
{
|
||||
foreach(var alarmData in alarmDatas)
|
||||
@@ -114,6 +116,7 @@ namespace XED
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
private void Save()
|
||||
{
|
||||
var saveConnectAlarmData = GetAlarmData();
|
||||
@@ -159,7 +162,7 @@ namespace XED
|
||||
loadData = savedData;
|
||||
|
||||
SetStorageDataDropdown();
|
||||
// dropdown¿¡¼ ¾Ë¸ÂÀº dataStorage index ã±â
|
||||
// dropdown에서 알맞은 dataStorage index 찾기
|
||||
for (int i = 0; i < dataList.Count; i++)
|
||||
{
|
||||
if(savedData.alarmDataName == dataList[i].name)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json;
|
||||
using Studio.UVC.UI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -21,7 +22,7 @@ namespace XED
|
||||
|
||||
public Toggle Toggle_Api;
|
||||
public Toggle Toggle_Storage;
|
||||
public TMP_Dropdown Dropdown_DataList;
|
||||
public UVCDropDown Dropdown_DataList;
|
||||
public Button Button_Cancel;
|
||||
public Button Button_Save;
|
||||
|
||||
@@ -77,6 +78,7 @@ namespace XED
|
||||
prf_AddOtherDataItem = Resources.Load<UI_AddOtherDataItem>("Prefabs/UI/PRF_AddOtherDataItem");
|
||||
prf_AddOtherDataTypeItem = Resources.Load<UI_AddOtherDataTypeItem>("Prefabs/UI/PRF_AddOtherDataTypeItem");
|
||||
|
||||
Dropdown_DataList = GetComponentInChildren<UVCDropDown>();
|
||||
Toggle_Api.onValueChanged.AddListener(OnAPIToggleValueChanged);
|
||||
Toggle_Storage.onValueChanged.AddListener(OnDataStorageToggleValueChanged);
|
||||
Toggle_limitStorageSetting.onValueChanged.AddListener(OnLimitStorageSettingToggleValueChanged);
|
||||
@@ -139,9 +141,11 @@ namespace XED
|
||||
var isActive = isOn;
|
||||
DataStorageContent.gameObject.SetActive(isActive);
|
||||
}
|
||||
|
||||
private void PopulateDataListDropdown(List<DataClass> data)
|
||||
{
|
||||
Dropdown_DataList.ClearOptions();
|
||||
Dropdown_DataList.Init();
|
||||
|
||||
List<string> displayNames = new List<string>();
|
||||
|
||||
if (isAPI)
|
||||
@@ -154,14 +158,14 @@ namespace XED
|
||||
displayNames.Add(api.name);
|
||||
}
|
||||
|
||||
Dropdown_DataList.AddOptions(displayNames);
|
||||
Dropdown_DataList.onValueChanged.RemoveAllListeners();
|
||||
Dropdown_DataList.onValueChanged.AddListener(OnValueChangedAPIDropDown);
|
||||
Dropdown_DataList.SetOptions(displayNames);
|
||||
Dropdown_DataList.DropDown.onValueChanged.RemoveAllListeners();
|
||||
Dropdown_DataList.DropDown.onValueChanged.AddListener(OnValueChangedAPIDropDown);
|
||||
|
||||
var notCheckIndex = currentDataListOptionName != null ? displayNames.IndexOf(currentDataListOptionName) : 0;
|
||||
var index = notCheckIndex >= 0 ? notCheckIndex : 0;
|
||||
|
||||
Dropdown_DataList.SetValueWithoutNotify(index);
|
||||
Dropdown_DataList.DropDown.SetValueWithoutNotify(index);
|
||||
SetLoadApiData(index);
|
||||
}
|
||||
else
|
||||
@@ -174,14 +178,14 @@ namespace XED
|
||||
displayNames.Add(storageData.name);
|
||||
}
|
||||
|
||||
Dropdown_DataList.AddOptions(displayNames);
|
||||
Dropdown_DataList.onValueChanged.RemoveAllListeners();
|
||||
Dropdown_DataList.onValueChanged.AddListener(OnValueChangedDataStorageDropDown);
|
||||
Dropdown_DataList.SetOptions(displayNames);
|
||||
Dropdown_DataList.DropDown.onValueChanged.RemoveAllListeners();
|
||||
Dropdown_DataList.DropDown.onValueChanged.AddListener(OnValueChangedDataStorageDropDown);
|
||||
|
||||
var notCheckIndex = currentDataListOptionName != null ? displayNames.IndexOf(currentDataListOptionName) : 0;
|
||||
var index = notCheckIndex >= 0 ? notCheckIndex : 0;
|
||||
|
||||
Dropdown_DataList.SetValueWithoutNotify(index);
|
||||
Dropdown_DataList.DropDown.SetValueWithoutNotify(index);
|
||||
OnValueChangedDataStorageDropDown(index);
|
||||
}
|
||||
}
|
||||
@@ -306,7 +310,7 @@ namespace XED
|
||||
saveData.otherDataClasses.Clear();
|
||||
|
||||
saveData.isAPI = isAPI;
|
||||
saveData.dataListOptionName = Dropdown_DataList.options[Dropdown_DataList.value].text;
|
||||
saveData.dataListOptionName = Dropdown_DataList.GetSelectOptionName();
|
||||
|
||||
saveData.isLimitStorageSetting = Toggle_limitStorageSetting.isOn;
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
using TMPro;
|
||||
using UnityEngine.UI;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace XED
|
||||
{
|
||||
@@ -30,18 +30,38 @@ namespace XED
|
||||
var mqttJson = Resources.Load<TextAsset>("MQTTData").text;
|
||||
loadMQTTData = JsonConvert.DeserializeObject<MQTTData>(mqttJson);
|
||||
}
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
TestDataConnected();
|
||||
prf_mqttTopicItem = Resources.Load<UI_DataBindingItem>("Prefabs/UI/PRF_DataBindingItemItem");
|
||||
|
||||
Text_Domain.SetText(loadMQTTData.domain);
|
||||
Text_Port.SetText(loadMQTTData.port);
|
||||
SetURLText();
|
||||
|
||||
Button_AddTopic.onClick.AddListener(AddTopicItem);
|
||||
Button_Save.onClick.AddListener(Save);
|
||||
}
|
||||
|
||||
//app_config
|
||||
/// <summary>
|
||||
/// 설정한 데이터값 가져와 적용
|
||||
/// </summary>
|
||||
private void ConnectedData()
|
||||
{
|
||||
//string path = Path.Combine(Application.streamingAssetsPath, "app_config.json");
|
||||
//string json = System.IO.File.ReadAllText(path);
|
||||
//loadMQTTData = JsonUtility.FromJson<MQTTData>(json);
|
||||
|
||||
SetURLText();
|
||||
}
|
||||
/// <summary>
|
||||
/// 도메인 PORT 설정
|
||||
/// </summary>
|
||||
private void SetURLText()
|
||||
{
|
||||
Text_Domain.SetText(loadMQTTData.domain);
|
||||
Text_Port.SetText(loadMQTTData.port);
|
||||
}
|
||||
private void OnClickFilterButton(UI_DataBindingItem item)
|
||||
{
|
||||
selectedTopicItem = item;
|
||||
@@ -49,6 +69,9 @@ namespace XED
|
||||
onClickFilterButton?.Invoke(itemName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 토픽 아이템 추가
|
||||
/// </summary>
|
||||
private void AddTopicItem()
|
||||
{
|
||||
var item = Instantiate(prf_mqttTopicItem, TopicContent);
|
||||
@@ -56,16 +79,29 @@ namespace XED
|
||||
item.onFilter += OnClickFilterButton;
|
||||
topicItems.Add(item);
|
||||
}
|
||||
/// <summary>
|
||||
/// TopicItem 제거
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
private void RemoveTopicItem(UI_DataBindingItem item)
|
||||
{
|
||||
topicItems.Remove(item);
|
||||
Destroy(item.gameObject);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MQTT 데이터 추가
|
||||
/// </summary>
|
||||
private void Save()
|
||||
{
|
||||
var saveData = GetMQTTData();
|
||||
onSaveMQTTData?.Invoke(saveData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="filterData"></param>
|
||||
public void SetFilterData(SaveFilterData filterData)
|
||||
{
|
||||
if (selectedTopicItem == null)
|
||||
@@ -75,6 +111,10 @@ namespace XED
|
||||
selectedTopicItem.SetChangedInputFieldTopicName();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MQTTData 가져오기
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private SaveMQTTData GetMQTTData()
|
||||
{
|
||||
SaveMQTTData saveMQTTData = new SaveMQTTData();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
@@ -8,6 +8,7 @@ using UnityEngine.UI;
|
||||
using Newtonsoft.Json;
|
||||
using TriLibCore.SFB;
|
||||
using System.Text;
|
||||
using Studio.UVC.UI;
|
||||
|
||||
namespace XED
|
||||
{
|
||||
@@ -19,7 +20,7 @@ namespace XED
|
||||
}
|
||||
public class Panel_MultilingualSettingModal : PanelBase
|
||||
{
|
||||
public TMP_Dropdown Dropdown_Languages;
|
||||
public UVCDropDown Dropdown_Languages;
|
||||
public Button Button_OpenFile;
|
||||
public Button Button_Save;
|
||||
|
||||
@@ -30,6 +31,8 @@ namespace XED
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
Dropdown_Languages = GetComponentInChildren<UVCDropDown>();
|
||||
Dropdown_Languages.Init();
|
||||
Button_OpenFile.onClick.AddListener(OnClickOpenFileButton);
|
||||
Button_Save.onClick.AddListener(OnClickSaveButton);
|
||||
}
|
||||
@@ -47,6 +50,12 @@ namespace XED
|
||||
if (items != null && items.Count > 0)
|
||||
{
|
||||
var item = items[0];
|
||||
if(string.IsNullOrEmpty(item.Name))
|
||||
{
|
||||
//TODO 팝업창 or 그냥 닫음
|
||||
Debug.Log("취소");
|
||||
return;
|
||||
}
|
||||
using (var reader = new StreamReader(item.OpenStream(), Encoding.UTF8))
|
||||
{
|
||||
json = reader.ReadToEnd();
|
||||
@@ -54,13 +63,13 @@ namespace XED
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("파일을 선택하지 않았습니다.");
|
||||
Debug.LogWarning("파일을 선택하지 않았습니다.");
|
||||
}
|
||||
|
||||
var data = JsonConvert.DeserializeObject<LanguageConfig>(json);
|
||||
if (data == null || data.languages == null)
|
||||
{
|
||||
Debug.LogError("데이터가 존재하지 않습니다.");
|
||||
Debug.LogError("데이터가 존재하지 않습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -69,23 +78,23 @@ namespace XED
|
||||
}
|
||||
private void SetLanguageDropdown()
|
||||
{
|
||||
Dropdown_Languages.ClearOptions();
|
||||
//Dropdown_Languages.ClearOptions();
|
||||
List<string> options = new List<string>();
|
||||
|
||||
foreach (var language in languages.Keys)
|
||||
{
|
||||
options.Add(language);
|
||||
}
|
||||
Dropdown_Languages.AddOptions(options);
|
||||
Dropdown_Languages.onValueChanged.AddListener(OnLanguageDropdownValueChanged);
|
||||
Dropdown_Languages.SetOptions(options);
|
||||
Dropdown_Languages.OnValueChange+=OnLanguageDropdownValueChanged;
|
||||
|
||||
var languageKey = Dropdown_Languages.options[0].text;
|
||||
var languageKey = Dropdown_Languages.GetSelectOptionName();
|
||||
selectedLanguage = languages[languageKey];
|
||||
}
|
||||
|
||||
private void OnLanguageDropdownValueChanged(int index)
|
||||
{
|
||||
var languageKey = Dropdown_Languages.options[index].text;
|
||||
var languageKey = Dropdown_Languages.GetSelectOptionName();
|
||||
selectedLanguage = languages[languageKey];
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
||||
namespace XED.Manage
|
||||
namespace XED.Manage
|
||||
{
|
||||
public class StudioPopupCanvasHandler : CanvasEventHandler
|
||||
{
|
||||
public StudioPopupCanvasHandler(StudioCanvas_Popup canvas_popup)
|
||||
public StudioPopupCanvasHandler(Canvas_Studio_Popup canvas_popup)
|
||||
{
|
||||
canvas_popup.panel_selectlogic.onClickAppSetting += canvas_popup.panel_applogiclist.OnSelectLogic;
|
||||
canvas_popup.panel_selectlogic.onClickAuthentication += canvas_popup.panel_applogiclist.OnSelectLogic;
|
||||
@@ -29,6 +29,9 @@ namespace XED.Manage
|
||||
canvas_popup.panel_openprojectinfo.onClickOpen += canvas_popup.panel_inspector.Open;
|
||||
canvas_popup.panel_openprojectinfo.onClickOpen += canvas_popup.panel_quickstart.Close;
|
||||
canvas_popup.panel_openprojectinfo.onClickOpen += canvas_popup.panel_openprojectinfo.Close;
|
||||
|
||||
canvas_popup.panel_datafiltersetting.onSaveFilterData += canvas_popup.panel_mqttconnectmodal.SetFilterData;
|
||||
canvas_popup.panel_datafiltersetting.onSaveFilterData += canvas_popup.panel_apiconnectmodal.SetFilterData;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
41
Assets/NewStudioPGD/Scripts/UI/Canvas/Canvas_Studio_Popup.cs
Normal file
41
Assets/NewStudioPGD/Scripts/UI/Canvas/Canvas_Studio_Popup.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using UnityEngine;
|
||||
using XED.Manage;
|
||||
using XED.UI;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace XED
|
||||
{
|
||||
public class Canvas_Studio_Popup : CanvasBase
|
||||
{
|
||||
public Panel_StartImage panel_startimage;
|
||||
public Panel_AppLogicList panel_applogiclist;
|
||||
public Panel_Inspector panel_inspector;
|
||||
public Panel_SelectLogic panel_selectlogic;
|
||||
public Panel_AppSetting panel_appsetting;
|
||||
public Panel_Authentication panel_authentication;
|
||||
public Panel_QuickStart panel_quickstart;
|
||||
public Panel_NewProjectInfo panel_newprojectinfo;
|
||||
public Panel_OpenProjectInfo panel_openprojectinfo;
|
||||
public Panel_APIConnectModal panel_apiconnectmodal;
|
||||
public Panel_MQTTConnectModal panel_mqttconnectmodal;
|
||||
public Panel_DataFilterSetting panel_datafiltersetting;
|
||||
public Panel_MultilingualSettingModal panel_multilingualsettingmodal;
|
||||
public Panel_LoggingModal panel_loggingmodal;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
var dataManager = FindAnyObjectByType<ConnectDataManager>();
|
||||
|
||||
canvasHandler = new StudioPopupCanvasHandler(this);
|
||||
|
||||
panel_apiconnectmodal.onClickFilterButton += dataManager.SetFilterData;
|
||||
panel_apiconnectmodal.onSaveAPIData += dataManager.SetAPIData;
|
||||
|
||||
panel_mqttconnectmodal.onClickFilterButton += dataManager.SetFilterData;
|
||||
panel_mqttconnectmodal.onSaveMQTTData += dataManager.SetMQTTData;
|
||||
|
||||
dataManager.mqttData += panel_datafiltersetting.SetLoadMQTTDataList;
|
||||
dataManager.apiData += panel_datafiltersetting.SetLoadAPIDataList;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c8f7b3147f30b34abbe0f3043aa96b2
|
||||
@@ -1,25 +0,0 @@
|
||||
using UnityEngine;
|
||||
using XED.Manage;
|
||||
using XED.UI;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace XED
|
||||
{
|
||||
public class StudioCanvas_Popup : CanvasBase
|
||||
{
|
||||
public Panel_StartImage panel_startimage;
|
||||
public Panel_AppLogicList panel_applogiclist;
|
||||
public Panel_Inspector panel_inspector;
|
||||
public Panel_SelectLogic panel_selectlogic;
|
||||
public Panel_AppSetting panel_appsetting;
|
||||
public Panel_Authentication panel_authentication;
|
||||
public Panel_QuickStart panel_quickstart;
|
||||
public Panel_NewProjectInfo panel_newprojectinfo;
|
||||
public Panel_OpenProjectInfo panel_openprojectinfo;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
canvasHandler = new StudioPopupCanvasHandler(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 962441d825727c54b92657b0c4e5fc72
|
||||
@@ -1,30 +1,25 @@
|
||||
using NUnit.Framework;
|
||||
using Ookii.Dialogs;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using UnityEditor.UIElements;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using XED.Manage;
|
||||
using XRLib.UI;
|
||||
using static UnityEngine.Rendering.DebugUI;
|
||||
|
||||
namespace XED.UI
|
||||
{
|
||||
public class Panel_AppLogicList : PanelBase
|
||||
{
|
||||
StudioCanvas_Popup studioCanvas_popup;
|
||||
Canvas_Studio_Popup studioCanvas_popup;
|
||||
|
||||
private List<UI_LogicItem> itemList = new();
|
||||
public GameObject logicItem;
|
||||
public RectTransform itemRoot;
|
||||
|
||||
public UI_LogicItem selectItem;
|
||||
public GameObject curInspectorPanel;
|
||||
public PanelBase curInspectorPanel;
|
||||
|
||||
public override void AfterAwake()
|
||||
{
|
||||
logicItem = Resources.Load<GameObject>("Prefabs/UI/PRF_LogicItem");
|
||||
studioCanvas_popup = EventConnector.instance.GetCanvas<StudioCanvas_Popup>();
|
||||
studioCanvas_popup = EventConnector.instance.GetCanvas<Canvas_Studio_Popup>();
|
||||
CreateItem();
|
||||
}
|
||||
|
||||
@@ -38,7 +33,7 @@ namespace XED.UI
|
||||
}
|
||||
|
||||
private void OnClickAdd(UI_LogicItem item)
|
||||
{
|
||||
{
|
||||
selectItem = item;
|
||||
studioCanvas_popup.panel_selectlogic.Open(true);
|
||||
}
|
||||
@@ -50,22 +45,27 @@ namespace XED.UI
|
||||
curInspectorPanel.gameObject.SetActive(false);
|
||||
curInspectorPanel = null;
|
||||
}
|
||||
|
||||
var size = studioCanvas_popup.panel_inspector.rectTransform.sizeDelta;
|
||||
var parent = studioCanvas_popup.panel_inspector.transform;
|
||||
switch (logic)
|
||||
{
|
||||
case ELogic.AppSetting:
|
||||
curInspectorPanel = studioCanvas_popup.panel_appsetting.gameObject;
|
||||
curInspectorPanel = studioCanvas_popup.panel_appsetting;
|
||||
break;
|
||||
case ELogic.Authentication:
|
||||
curInspectorPanel = studioCanvas_popup.panel_authentication.gameObject;
|
||||
curInspectorPanel = studioCanvas_popup.panel_authentication;
|
||||
break;
|
||||
case ELogic.Language:
|
||||
curInspectorPanel = studioCanvas_popup.panel_multilingualsettingmodal;
|
||||
break;
|
||||
case ELogic.Logging:
|
||||
curInspectorPanel = studioCanvas_popup.panel_loggingmodal;
|
||||
break;
|
||||
case ELogic.APIConnection:
|
||||
curInspectorPanel = studioCanvas_popup.panel_apiconnectmodal;
|
||||
break;
|
||||
case ELogic.MQTTConnection:
|
||||
curInspectorPanel = studioCanvas_popup.panel_mqttconnectmodal;
|
||||
break;
|
||||
case ELogic.Create3DObject:
|
||||
break;
|
||||
@@ -76,27 +76,36 @@ namespace XED.UI
|
||||
}
|
||||
|
||||
if (curInspectorPanel != null)
|
||||
curInspectorPanel.gameObject.SetActive(true);
|
||||
{
|
||||
SetModal(size, parent);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetModal(Vector2 size, Transform parent)
|
||||
{
|
||||
curInspectorPanel.transform.SetParent(parent);
|
||||
curInspectorPanel.transform.localPosition = Vector3.zero;
|
||||
curInspectorPanel.rectTransform.sizeDelta = size;
|
||||
curInspectorPanel.gameObject.SetActive(true);
|
||||
}
|
||||
private void OnClickRemove(UI_LogicItem item)
|
||||
{
|
||||
itemList.Remove(item);
|
||||
Destroy(item.gameObject);
|
||||
Destroy(item.gameObject);
|
||||
|
||||
if(selectItem == item)
|
||||
if (selectItem == item)
|
||||
{
|
||||
selectItem = null;
|
||||
if (curInspectorPanel != null)
|
||||
curInspectorPanel.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (itemList.Count == 0)
|
||||
CreateItem();
|
||||
}
|
||||
|
||||
public void OnSelectLogic(ELogic logic)
|
||||
{
|
||||
{
|
||||
selectItem.OnSelectLogic(logic);
|
||||
CreateItem();
|
||||
studioCanvas_popup.panel_selectlogic.Open(false);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace XED.UI
|
||||
|
||||
18
Assets/Panel_LoggingModal.cs
Normal file
18
Assets/Panel_LoggingModal.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
|
||||
namespace XED
|
||||
{
|
||||
public class Panel_LoggingModal : PanelBase
|
||||
{
|
||||
public void Open()
|
||||
{
|
||||
SetActive(true);
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Panel_LoggingModal.cs.meta
Normal file
2
Assets/Panel_LoggingModal.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 887127ae2ff06194285151b68c80d0df
|
||||
8
Assets/Prefabs/CommonUI.meta
Normal file
8
Assets/Prefabs/CommonUI.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 27e5d665d0c735f46bbd55d92192e434
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1204
Assets/Prefabs/CommonUI/UVCDropdown.prefab
Normal file
1204
Assets/Prefabs/CommonUI/UVCDropdown.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Prefabs/CommonUI/UVCDropdown.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCDropdown.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59a7b055088d4b043a9cb6ba53b959e7
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
227
Assets/Prefabs/CommonUI/UVCImageButton.prefab
Normal file
227
Assets/Prefabs/CommonUI/UVCImageButton.prefab
Normal file
@@ -0,0 +1,227 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2853096734297698429
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6839852970514249078}
|
||||
- component: {fileID: 8753388075770554521}
|
||||
- component: {fileID: 7778645077992593713}
|
||||
- component: {fileID: 7532054323562963817}
|
||||
m_Layer: 5
|
||||
m_Name: UVCImageButton
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6839852970514249078
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2853096734297698429}
|
||||
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:
|
||||
- {fileID: 7325995168660320061}
|
||||
m_Father: {fileID: 0}
|
||||
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: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8753388075770554521
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2853096734297698429}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7778645077992593713
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2853096734297698429}
|
||||
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: 33c5532bf6e8bc845ab3fd664ab3c004, 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!114 &7532054323562963817
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2853096734297698429}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d228e8ca7946fa546b95de748b8ff416, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &4686938401149116389
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7325995168660320061}
|
||||
- component: {fileID: 2153917058625337865}
|
||||
- component: {fileID: 2260212017536480779}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7325995168660320061
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4686938401149116389}
|
||||
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: 6839852970514249078}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2153917058625337865
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4686938401149116389}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2260212017536480779
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4686938401149116389}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Btn
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 10
|
||||
m_fontSizeBase: 10
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
7
Assets/Prefabs/CommonUI/UVCImageButton.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCImageButton.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e85fd28ee9664084ca248c710b4200d9
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
388
Assets/Prefabs/CommonUI/UVCRadioButton.prefab
Normal file
388
Assets/Prefabs/CommonUI/UVCRadioButton.prefab
Normal file
@@ -0,0 +1,388 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1089977822156698080
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5022841697432787575}
|
||||
- component: {fileID: 7972628233262231590}
|
||||
- component: {fileID: 5274701475660966328}
|
||||
m_Layer: 5
|
||||
m_Name: UVCRadioButton
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5022841697432787575
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1089977822156698080}
|
||||
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:
|
||||
- {fileID: 6597113983133026070}
|
||||
- {fileID: 2048927090574460687}
|
||||
m_Father: {fileID: 0}
|
||||
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: 160, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &7972628233262231590
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1089977822156698080}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 3998130256436250375}
|
||||
toggleTransition: 1
|
||||
graphic: {fileID: 8993377373409066721}
|
||||
m_Group: {fileID: 0}
|
||||
onValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_IsOn: 1
|
||||
--- !u!114 &5274701475660966328
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1089977822156698080}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 17092b09dad0ea7419dfd6410d22812d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &4106650688606622162
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2048927090574460687}
|
||||
- component: {fileID: 1909211878785236170}
|
||||
- component: {fileID: 9041163211297865558}
|
||||
m_Layer: 5
|
||||
m_Name: Label
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2048927090574460687
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4106650688606622162}
|
||||
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: 5022841697432787575}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 9, y: -0.5}
|
||||
m_SizeDelta: {x: -28, y: -3}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1909211878785236170
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4106650688606622162}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &9041163211297865558
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4106650688606622162}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text:
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 15
|
||||
m_fontSizeBase: 15
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &6336208487114930412
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4022916176769784560}
|
||||
- component: {fileID: 8009037934821428993}
|
||||
- component: {fileID: 8993377373409066721}
|
||||
m_Layer: 5
|
||||
m_Name: Checkmark
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4022916176769784560
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6336208487114930412}
|
||||
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: 6597113983133026070}
|
||||
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: 20, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8009037934821428993
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6336208487114930412}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8993377373409066721
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6336208487114930412}
|
||||
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: 43a6855cf69a71d41a552137f05dee6f, 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 &7228364074619456312
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6597113983133026070}
|
||||
- component: {fileID: 1524698553141097047}
|
||||
- component: {fileID: 3998130256436250375}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6597113983133026070
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7228364074619456312}
|
||||
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:
|
||||
- {fileID: 4022916176769784560}
|
||||
m_Father: {fileID: 5022841697432787575}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 10, y: -10}
|
||||
m_SizeDelta: {x: 20, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1524698553141097047
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7228364074619456312}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3998130256436250375
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7228364074619456312}
|
||||
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: 2618f2d97f270204bacfca39dfe7fbb8, 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
|
||||
7
Assets/Prefabs/CommonUI/UVCRadioButton.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCRadioButton.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8cf1caba24f0b3642a9f9b3c886e7d97
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
500
Assets/Prefabs/CommonUI/UVCScrollView.prefab
Normal file
500
Assets/Prefabs/CommonUI/UVCScrollView.prefab
Normal file
@@ -0,0 +1,500 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1418468527113902467
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3668974412533355684}
|
||||
- component: {fileID: 7856316314867096626}
|
||||
- component: {fileID: 3659942844975833385}
|
||||
m_Layer: 5
|
||||
m_Name: Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3668974412533355684
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1418468527113902467}
|
||||
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: 8767415226624267104}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 1, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7856316314867096626
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1418468527113902467}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3659942844975833385
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1418468527113902467}
|
||||
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: 45353c1f862bf56499821bebd0cfa3ee, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 25
|
||||
--- !u!1 &1864963411179644814
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8281250687382000572}
|
||||
- component: {fileID: 6474645013934311732}
|
||||
- component: {fileID: 1439665835867081027}
|
||||
- component: {fileID: 4301519188176582658}
|
||||
- component: {fileID: 231277771012865372}
|
||||
m_Layer: 5
|
||||
m_Name: UVCScrollView
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8281250687382000572
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1864963411179644814}
|
||||
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:
|
||||
- {fileID: 6663685262496820286}
|
||||
- {fileID: 173013935933673233}
|
||||
m_Father: {fileID: 0}
|
||||
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: 200, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6474645013934311732
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1864963411179644814}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1439665835867081027
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1864963411179644814}
|
||||
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: 0.392}
|
||||
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: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
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!114 &4301519188176582658
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1864963411179644814}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Content: {fileID: 5719451168689805125}
|
||||
m_Horizontal: 0
|
||||
m_Vertical: 1
|
||||
m_MovementType: 2
|
||||
m_Elasticity: 0.1
|
||||
m_Inertia: 1
|
||||
m_DecelerationRate: 0.135
|
||||
m_ScrollSensitivity: 1
|
||||
m_Viewport: {fileID: 6663685262496820286}
|
||||
m_HorizontalScrollbar: {fileID: 0}
|
||||
m_VerticalScrollbar: {fileID: 6366829184741825372}
|
||||
m_HorizontalScrollbarVisibility: 2
|
||||
m_VerticalScrollbarVisibility: 2
|
||||
m_HorizontalScrollbarSpacing: -3
|
||||
m_VerticalScrollbarSpacing: -3
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &231277771012865372
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1864963411179644814}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 663b0bae46f9f1c4692c00ea482744f8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &2655245092928527348
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5719451168689805125}
|
||||
- component: {fileID: 2152467666601079940}
|
||||
m_Layer: 5
|
||||
m_Name: Content
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5719451168689805125
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2655245092928527348}
|
||||
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: 6663685262496820286}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &2152467666601079940
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2655245092928527348}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_HorizontalFit: 0
|
||||
m_VerticalFit: 2
|
||||
--- !u!1 &3690881797196394413
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8767415226624267104}
|
||||
m_Layer: 5
|
||||
m_Name: Sliding Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8767415226624267104
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3690881797196394413}
|
||||
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:
|
||||
- {fileID: 3668974412533355684}
|
||||
m_Father: {fileID: 173013935933673233}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &7076309334072665908
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6663685262496820286}
|
||||
- component: {fileID: 331252045699405659}
|
||||
- component: {fileID: 1021284540039825415}
|
||||
- component: {fileID: 993387894104036843}
|
||||
m_Layer: 5
|
||||
m_Name: Viewport
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6663685262496820286
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7076309334072665908}
|
||||
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:
|
||||
- {fileID: 5719451168689805125}
|
||||
m_Father: {fileID: 8281250687382000572}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!222 &331252045699405659
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7076309334072665908}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1021284540039825415
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7076309334072665908}
|
||||
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: 10917, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
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!114 &993387894104036843
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7076309334072665908}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_ShowMaskGraphic: 0
|
||||
--- !u!1 &8207062515946744844
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 173013935933673233}
|
||||
- component: {fileID: 5441967613687056454}
|
||||
- component: {fileID: 825504674663522840}
|
||||
- component: {fileID: 6366829184741825372}
|
||||
m_Layer: 5
|
||||
m_Name: Scrollbar Vertical
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &173013935933673233
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8207062515946744844}
|
||||
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:
|
||||
- {fileID: 8767415226624267104}
|
||||
m_Father: {fileID: 8281250687382000572}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -4, y: 4}
|
||||
m_SizeDelta: {x: 1, y: -8}
|
||||
m_Pivot: {x: 1, y: 0}
|
||||
--- !u!222 &5441967613687056454
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8207062515946744844}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &825504674663522840
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8207062515946744844}
|
||||
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: 0.20754719, g: 0.20754719, b: 0.20754719, a: 0.31764707}
|
||||
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: f995acd2e3363da4693858d6b2b3e033, 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: 7
|
||||
--- !u!114 &6366829184741825372
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8207062515946744844}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 3659942844975833385}
|
||||
m_HandleRect: {fileID: 3668974412533355684}
|
||||
m_Direction: 3
|
||||
m_Value: 0
|
||||
m_Size: 1
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
7
Assets/Prefabs/CommonUI/UVCScrollView.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCScrollView.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83576c841110efe4bb467a20bacad33e
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
815
Assets/Prefabs/CommonUI/UVCSlider.prefab
Normal file
815
Assets/Prefabs/CommonUI/UVCSlider.prefab
Normal file
@@ -0,0 +1,815 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &483352281009434215
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8881705084527983706}
|
||||
- component: {fileID: 7176967542688799975}
|
||||
- component: {fileID: 5138511089698655698}
|
||||
m_Layer: 5
|
||||
m_Name: Text_Value
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8881705084527983706
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483352281009434215}
|
||||
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: 5511339194818633497}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 20, y: 20}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!222 &7176967542688799975
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483352281009434215}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5138511089698655698
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 483352281009434215}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: 5
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294937380
|
||||
m_fontColor: {r: 0.14117648, g: 0.54509807, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 14
|
||||
m_fontSizeBase: 14
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &3083934565711268063
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3825429722504808035}
|
||||
- component: {fileID: 4876224511263141569}
|
||||
- component: {fileID: 1058910124902638414}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Icon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3825429722504808035
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3083934565711268063}
|
||||
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: 5511339194818633497}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 60, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4876224511263141569
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3083934565711268063}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1058910124902638414
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3083934565711268063}
|
||||
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: 8ff2996fb3c997940b1fb4a46cc5547d, 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 &4215073789238606568
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7499783587181514192}
|
||||
- component: {fileID: 1435374586936567355}
|
||||
- component: {fileID: 4145961510090935338}
|
||||
m_Layer: 5
|
||||
m_Name: Fill
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7499783587181514192
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4215073789238606568}
|
||||
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: 6713198440308569480}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 10, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1435374586936567355
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4215073789238606568}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4145961510090935338
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4215073789238606568}
|
||||
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: e8eec744ee7813c4796cb9e86515d6c6, 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 &4433350498458361535
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7765013687415539520}
|
||||
m_Layer: 5
|
||||
m_Name: Handle Slide Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7765013687415539520
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4433350498458361535}
|
||||
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:
|
||||
- {fileID: 8222284260679629820}
|
||||
m_Father: {fileID: 2673660733111271902}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -0.5, y: 2}
|
||||
m_SizeDelta: {x: -9, y: -4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &5940305654693879010
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2673660733111271902}
|
||||
- component: {fileID: 3748619588315430153}
|
||||
m_Layer: 5
|
||||
m_Name: ValueSlider
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2673660733111271902
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5940305654693879010}
|
||||
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:
|
||||
- {fileID: 1242565570153478422}
|
||||
- {fileID: 6713198440308569480}
|
||||
- {fileID: 7765013687415539520}
|
||||
m_Father: {fileID: 5511339194818633497}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 501, y: 28}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &3748619588315430153
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5940305654693879010}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 4295433895914141962}
|
||||
m_FillRect: {fileID: 7499783587181514192}
|
||||
m_HandleRect: {fileID: 8222284260679629820}
|
||||
m_Direction: 0
|
||||
m_MinValue: 0
|
||||
m_MaxValue: 4
|
||||
m_WholeNumbers: 1
|
||||
m_Value: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &6673703496133566578
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8222284260679629820}
|
||||
- component: {fileID: 772577371050053459}
|
||||
- component: {fileID: 4295433895914141962}
|
||||
m_Layer: 5
|
||||
m_Name: Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8222284260679629820
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6673703496133566578}
|
||||
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: 7765013687415539520}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 13, y: -7}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &772577371050053459
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6673703496133566578}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4295433895914141962
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6673703496133566578}
|
||||
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: 0b1550195dcb8ff4d8fa08f12fef15c8, 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 &6836110774183448062
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1625340058823357829}
|
||||
- component: {fileID: 8737619020604900046}
|
||||
- component: {fileID: 3090115838061919982}
|
||||
m_Layer: 5
|
||||
m_Name: Text_Title
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1625340058823357829
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6836110774183448062}
|
||||
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: 5511339194818633497}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 156, y: 32}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8737619020604900046
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6836110774183448062}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3090115838061919982
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6836110774183448062}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Title_Name
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 14
|
||||
m_fontSizeBase: 14
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &7534796672450848639
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6713198440308569480}
|
||||
m_Layer: 5
|
||||
m_Name: Fill Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6713198440308569480
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7534796672450848639}
|
||||
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:
|
||||
- {fileID: 7499783587181514192}
|
||||
m_Father: {fileID: 2673660733111271902}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -5, y: 0}
|
||||
m_SizeDelta: {x: -20, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &9004767511023763174
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1242565570153478422}
|
||||
- component: {fileID: 4427891387700540679}
|
||||
- component: {fileID: 3597273997780759238}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1242565570153478422
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9004767511023763174}
|
||||
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: 2673660733111271902}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4427891387700540679
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9004767511023763174}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3597273997780759238
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9004767511023763174}
|
||||
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: 3b738ded34512ab48a5e558a979bf570, 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 &9056692331951446274
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5511339194818633497}
|
||||
- component: {fileID: 1397352284942832852}
|
||||
- component: {fileID: 7777990900192151255}
|
||||
m_Layer: 5
|
||||
m_Name: UVCSlider
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5511339194818633497
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9056692331951446274}
|
||||
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:
|
||||
- {fileID: 3825429722504808035}
|
||||
- {fileID: 1625340058823357829}
|
||||
- {fileID: 2673660733111271902}
|
||||
- {fileID: 8881705084527983706}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1397352284942832852
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9056692331951446274}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 3
|
||||
m_Spacing: 4
|
||||
m_ChildForceExpandWidth: 1
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildControlWidth: 0
|
||||
m_ChildControlHeight: 0
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!114 &7777990900192151255
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9056692331951446274}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b3865e66319ab554cbb3bb19044d5f72, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
7
Assets/Prefabs/CommonUI/UVCSlider.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCSlider.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 637022c95000cec4db783754632077b2
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
277
Assets/Prefabs/CommonUI/UVCSwitchButton.prefab
Normal file
277
Assets/Prefabs/CommonUI/UVCSwitchButton.prefab
Normal file
@@ -0,0 +1,277 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2811720845175508435
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9172929782572919720}
|
||||
- component: {fileID: 8736496093249785801}
|
||||
- component: {fileID: 3652504184146080161}
|
||||
m_Layer: 5
|
||||
m_Name: Image_background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &9172929782572919720
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2811720845175508435}
|
||||
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: 953276898610861037}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8736496093249785801
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2811720845175508435}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3652504184146080161
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2811720845175508435}
|
||||
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: 0.27429688, g: 0.8679245, b: 0.29990438, 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: ea9f00cd65a822d4f9daecde0b798469, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 4
|
||||
--- !u!1 &3401810747447310705
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6510746003936204973}
|
||||
- component: {fileID: 4690590794083811930}
|
||||
- component: {fileID: 4090580205630988931}
|
||||
- component: {fileID: 3630249145513062361}
|
||||
- component: {fileID: 3560587852731672157}
|
||||
m_Layer: 5
|
||||
m_Name: Button_switch
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6510746003936204973
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3401810747447310705}
|
||||
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: 953276898610861037}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 2, y: 0}
|
||||
m_SizeDelta: {x: 27, y: 27}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!222 &4690590794083811930
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3401810747447310705}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4090580205630988931
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3401810747447310705}
|
||||
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: 1e9bb2a491695a941a43dea94f3d32b7, 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!114 &3630249145513062361
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3401810747447310705}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 4090580205630988931}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &3560587852731672157
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3401810747447310705}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.2784314}
|
||||
m_EffectDistance: {x: 1, y: -1}
|
||||
m_UseGraphicAlpha: 1
|
||||
--- !u!1 &7578838943388945266
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 953276898610861037}
|
||||
- component: {fileID: 6946932034249908548}
|
||||
- component: {fileID: 3215420024917430079}
|
||||
m_Layer: 5
|
||||
m_Name: UVCSwitchButton
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &953276898610861037
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7578838943388945266}
|
||||
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:
|
||||
- {fileID: 9172929782572919720}
|
||||
- {fileID: 6510746003936204973}
|
||||
m_Father: {fileID: 0}
|
||||
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: 51, y: 31}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6946932034249908548
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7578838943388945266}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3215420024917430079
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7578838943388945266}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 934fce4b892f1d549b12df3a199d99f8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
space: 2
|
||||
speed_MoveTo: 1
|
||||
duration_MoveTo: 10
|
||||
normalBG: {r: 0.28235295, g: 0.28235295, b: 0.28235295, a: 0.3529412}
|
||||
SelectBG: {r: 0.27450982, g: 0.87058824, b: 0.3019608, a: 1}
|
||||
7
Assets/Prefabs/CommonUI/UVCSwitchButton.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCSwitchButton.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8e4bd0a1692ee264ca3531f7f59f1cf1
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
282
Assets/Prefabs/CommonUI/UVCTabButton.prefab
Normal file
282
Assets/Prefabs/CommonUI/UVCTabButton.prefab
Normal file
@@ -0,0 +1,282 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1103117457639292196
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2955246670373270637}
|
||||
- component: {fileID: 2054444802996249088}
|
||||
- component: {fileID: 7288995949574559143}
|
||||
m_Layer: 5
|
||||
m_Name: Text_Name
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2955246670373270637
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1103117457639292196}
|
||||
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: 6979262846185234204}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2054444802996249088
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1103117457639292196}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7288995949574559143
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1103117457639292196}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Button
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 24
|
||||
m_fontSizeBase: 24
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &2940723019932460568
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6979262846185234204}
|
||||
- component: {fileID: 6956058148239678376}
|
||||
- component: {fileID: 5241126291345577379}
|
||||
- component: {fileID: 4981626796543352058}
|
||||
- component: {fileID: 5969921100306668649}
|
||||
m_Layer: 5
|
||||
m_Name: UVCTabButton
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6979262846185234204
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2940723019932460568}
|
||||
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:
|
||||
- {fileID: 2955246670373270637}
|
||||
m_Father: {fileID: 0}
|
||||
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: 180, y: 32}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6956058148239678376
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2940723019932460568}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5241126291345577379
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2940723019932460568}
|
||||
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: e4fc3befe92ee044f98721b777e4188a, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 2.5
|
||||
--- !u!114 &4981626796543352058
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2940723019932460568}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 5241126291345577379}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &5969921100306668649
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2940723019932460568}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 63abeabf96bb6b64b895ab577888d1fd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
onClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
selected: 0
|
||||
Space: 8
|
||||
normalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
HighLightColor: {r: 0, g: 0.48235294, b: 0.8962264, a: 0.6156863}
|
||||
selectColor: {r: 0, g: 0.8235294, b: 0.8980392, a: 1}
|
||||
normalSprite: {fileID: 21300000, guid: e4fc3befe92ee044f98721b777e4188a, type: 3}
|
||||
selectSprite: {fileID: 21300000, guid: 5531666309b973c4daec6f70f538f537, type: 3}
|
||||
7
Assets/Prefabs/CommonUI/UVCTabButton.prefab.meta
Normal file
7
Assets/Prefabs/CommonUI/UVCTabButton.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6a21bfa2d7314d24ea23697213413d29
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
8
Assets/Scripts/UVC.meta
Normal file
8
Assets/Scripts/UVC.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 04aa7d6d8329abc469af0a3bf60efb26
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Scripts/UVC/UI.meta
Normal file
8
Assets/Scripts/UVC/UI.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 728a34b7ce2f5c841bf1e38aeca940bd
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
17
Assets/Scripts/UVC/UI/ITabButton.cs
Normal file
17
Assets/Scripts/UVC/UI/ITabButton.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
public interface ITabButton
|
||||
{
|
||||
int Index { get; set; }
|
||||
|
||||
void Select();
|
||||
|
||||
void Deselect();
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/ITabButton.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/ITabButton.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a694b88bd170754da56bc46b2a2ec59
|
||||
9
Assets/Scripts/UVC/UI/ITabContent.cs
Normal file
9
Assets/Scripts/UVC/UI/ITabContent.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
public interface ITabContent
|
||||
{
|
||||
int Index { get; set; }
|
||||
void Show();
|
||||
void Hide();
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/ITabContent.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/ITabContent.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 11447fe7eb9002c418d16138621ba2ca
|
||||
59
Assets/Scripts/UVC/UI/TabController.cs
Normal file
59
Assets/Scripts/UVC/UI/TabController.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using Studio.UVC.UI;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Studio.UVC.Controller.UI
|
||||
{
|
||||
public class TabController
|
||||
{
|
||||
public int SelectedIndex { get; private set; } = -1;
|
||||
|
||||
private List<ITabButton> tabButtons = new List<ITabButton>();
|
||||
private List<ITabContent> tabContents = new List<ITabContent>();
|
||||
|
||||
public List<ITabButton> TabButtons => tabButtons;
|
||||
public List<ITabContent> TabContents => tabContents;
|
||||
|
||||
public void Add(ITabButton tabButton, ITabContent tabContent)
|
||||
{
|
||||
tabButton.Index = tabButtons.Count;
|
||||
tabContent.Index = tabContents.Count;
|
||||
tabButtons.Add(tabButton);
|
||||
tabContents.Add(tabContent);
|
||||
tabButton.Deselect();
|
||||
tabContent.Hide();
|
||||
}
|
||||
|
||||
public void Select(int index)
|
||||
{
|
||||
if (SelectedIndex == index)
|
||||
return;
|
||||
|
||||
if (SelectedIndex != -1)
|
||||
{
|
||||
tabButtons[SelectedIndex].Deselect();
|
||||
tabContents[SelectedIndex].Hide();
|
||||
}
|
||||
|
||||
SelectedIndex = index;
|
||||
tabButtons[SelectedIndex].Select();
|
||||
tabContents[SelectedIndex].Show();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
tabButtons.Clear();
|
||||
tabContents.Clear();
|
||||
}
|
||||
|
||||
public void Deselect()
|
||||
{
|
||||
if (SelectedIndex == -1)
|
||||
return;
|
||||
|
||||
tabButtons[SelectedIndex].Deselect();
|
||||
tabContents[SelectedIndex].Hide();
|
||||
SelectedIndex = -1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/TabController.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/TabController.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 301730ca80e97ce41a9525162920a815
|
||||
132
Assets/Scripts/UVC/UI/UVCButton.cs
Normal file
132
Assets/Scripts/UVC/UI/UVCButton.cs
Normal file
@@ -0,0 +1,132 @@
|
||||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class UVCButton : UnityEngine.MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
|
||||
{
|
||||
private static GameObject prefab;
|
||||
|
||||
public static UVCButton Create(string text, Transform parent = null)
|
||||
{
|
||||
if (prefab == null) prefab = Resources.Load("Prefabs/Common/UVCButton", typeof(GameObject)) as GameObject;
|
||||
var instance = Instantiate(prefab, parent);
|
||||
var btn = instance.GetComponent<UVCButton>();
|
||||
if (text != null && text.Length > 0) btn.GetComponentInChildren<TextMeshProUGUI>().text = text;
|
||||
return btn;
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private bool selected = false;
|
||||
public bool Selected { get => selected; }
|
||||
|
||||
public int Index { get; set; }
|
||||
|
||||
private TextMeshProUGUI txt;
|
||||
private UnityEngine.UI.Button button;
|
||||
|
||||
private RectTransform rect;
|
||||
public RectTransform Rect { get { return rect; } }
|
||||
|
||||
private Image image;
|
||||
public Image Image { get { return image; } }
|
||||
|
||||
public float Space = 8f;
|
||||
|
||||
[Header("Color")]
|
||||
public Color normalColor;
|
||||
public Color HighLightColor;
|
||||
public Color selectColor;
|
||||
[Header("Sprite")]
|
||||
public Sprite normalSprite;
|
||||
public Sprite selectSprite;
|
||||
|
||||
public UnityEvent onClickButton;
|
||||
public void Init()
|
||||
{
|
||||
txt = GetComponentInChildren<TextMeshProUGUI>();
|
||||
button = GetComponent<UnityEngine.UI.Button>();
|
||||
rect = GetComponent<RectTransform>();
|
||||
image = GetComponent<Image>();
|
||||
|
||||
if (button != null)
|
||||
{
|
||||
button.onClick.AddListener(() =>
|
||||
{
|
||||
if (selected) return;
|
||||
selected = true;
|
||||
onClickButton.Invoke();
|
||||
});
|
||||
}
|
||||
|
||||
if (selected) Select();
|
||||
else Deselect();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 텍스트 길이에 따른 사이즈 변경
|
||||
/// </summary>
|
||||
/// <param name="text">Title Name</param>
|
||||
public void SetText(string text)
|
||||
{
|
||||
txt.text = text;
|
||||
rect.sizeDelta = new Vector2(txt.preferredWidth + Space, rect.sizeDelta.y);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 선택된 탭
|
||||
/// </summary>
|
||||
public void Select()
|
||||
{
|
||||
if (image == null) image = GetComponent<Image>();
|
||||
if (txt == null) txt = GetComponentInChildren<TextMeshProUGUI>();
|
||||
|
||||
image.sprite = selectSprite;
|
||||
image.color = selectColor;
|
||||
|
||||
selected = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 탭이 변경 될 경우
|
||||
/// </summary>
|
||||
public void Deselect()
|
||||
{
|
||||
if (image == null) image = GetComponent<Image>();
|
||||
if (txt == null) txt = GetComponentInChildren<TextMeshProUGUI>();
|
||||
|
||||
image.sprite = normalSprite;
|
||||
image.color = normalColor;
|
||||
|
||||
selected = false;
|
||||
}
|
||||
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (button != null) button.onClick.RemoveAllListeners();
|
||||
onClickButton.RemoveAllListeners();
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
image.sprite = selectSprite;
|
||||
image.color = HighLightColor;
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
if (selected)
|
||||
image.color = selectColor;
|
||||
else
|
||||
image.sprite = normalSprite;
|
||||
image.color = normalColor;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCButton.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCButton.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ee25828847e2554a8f07bfdb12c527d
|
||||
66
Assets/Scripts/UVC/UI/UVCDropDown.cs
Normal file
66
Assets/Scripts/UVC/UI/UVCDropDown.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// DropDown
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(TMP_Dropdown))]
|
||||
public class UVCDropDown : MonoBehaviour
|
||||
{
|
||||
private TMP_Dropdown dropdown;
|
||||
public TMP_Dropdown DropDown
|
||||
{
|
||||
get
|
||||
{
|
||||
if (dropdown == null)
|
||||
dropdown = GetComponent<TMP_Dropdown>();
|
||||
return dropdown;
|
||||
}
|
||||
}
|
||||
|
||||
public Action<int> OnValueChange;
|
||||
public virtual void Init()
|
||||
{
|
||||
dropdown = GetComponent<TMP_Dropdown>();
|
||||
dropdown.ClearOptions();
|
||||
dropdown.onValueChanged.AddListener(OnDropdownValueChange);
|
||||
}
|
||||
|
||||
private void OnDropdownValueChange(int index)
|
||||
{
|
||||
OnValueChange?.Invoke(index);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setting Option
|
||||
/// </summary>
|
||||
/// <param name="data">Option Name</param>
|
||||
public virtual void SetOption(string data)
|
||||
{
|
||||
if (dropdown == null)
|
||||
{
|
||||
Debug.Log("dropdown Null");
|
||||
return;
|
||||
}
|
||||
|
||||
TMP_Dropdown.OptionData option = new TMP_Dropdown.OptionData();
|
||||
option.text = data;
|
||||
dropdown.options.Add(option);
|
||||
}
|
||||
|
||||
public virtual void SetOptions(List<string> datas)
|
||||
{
|
||||
dropdown.AddOptions(datas);
|
||||
}
|
||||
|
||||
public virtual string GetSelectOptionName()
|
||||
{
|
||||
return dropdown.options[dropdown.value].text;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCDropDown.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCDropDown.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1704a2490ff01d147867e1d24b9bedbf
|
||||
43
Assets/Scripts/UVC/UI/UVCImageButton.cs
Normal file
43
Assets/Scripts/UVC/UI/UVCImageButton.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// 이미지 버튼
|
||||
/// </summary>
|
||||
public class UVCImageButton : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler
|
||||
{
|
||||
private TextMeshProUGUI text_btnName;
|
||||
|
||||
public Action onClickImageBtn;
|
||||
public Action onEnterImageBtn;
|
||||
public Action onExitImageBtn;
|
||||
|
||||
public TextMeshProUGUI Text_btnName
|
||||
{
|
||||
get
|
||||
{
|
||||
if (text_btnName == null)
|
||||
text_btnName = GetComponentInChildren<TextMeshProUGUI>();
|
||||
return text_btnName;
|
||||
}
|
||||
|
||||
}
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
onClickImageBtn?.Invoke();
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
onEnterImageBtn?.Invoke();
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
onExitImageBtn?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCImageButton.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCImageButton.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d228e8ca7946fa546b95de748b8ff416
|
||||
81
Assets/Scripts/UVC/UI/UVCRadioButton.cs
Normal file
81
Assets/Scripts/UVC/UI/UVCRadioButton.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// 값이 없는 상태가 존재하면 안될 때
|
||||
/// 선택지 중 하나만 골라야 할 때
|
||||
/// 라디오 버튼 사용
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(Toggle))]
|
||||
public class UVCRadioButton : MonoBehaviour
|
||||
{
|
||||
private Toggle toggle;
|
||||
private TextMeshProUGUI label;
|
||||
private Image background;
|
||||
private Image checkmark;
|
||||
public Toggle Toggle
|
||||
{
|
||||
get
|
||||
{
|
||||
if (toggle == null)
|
||||
toggle = GetComponent<Toggle>();
|
||||
return toggle;
|
||||
}
|
||||
}
|
||||
public TextMeshProUGUI Label
|
||||
{
|
||||
get
|
||||
{
|
||||
if (label == null)
|
||||
{
|
||||
var findText = GetComponentsInChildren<TextMeshProUGUI>();
|
||||
label = findText.FirstOrDefault(x => x.name.Equals(nameof(label), System.StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
return label;
|
||||
}
|
||||
}
|
||||
public Image Background
|
||||
{
|
||||
get
|
||||
{
|
||||
if (background == null)
|
||||
{
|
||||
var findText = GetComponentsInChildren<Image>();
|
||||
background = findText.FirstOrDefault(x => x.name.Equals(nameof(background), System.StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
return background;
|
||||
}
|
||||
}
|
||||
public Image Checkmark
|
||||
{
|
||||
get
|
||||
{
|
||||
if (checkmark == null)
|
||||
{
|
||||
var findText = GetComponentsInChildren<Image>();
|
||||
checkmark = findText.FirstOrDefault(x => x.name.Equals(nameof(checkmark), System.StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
return checkmark;
|
||||
}
|
||||
}
|
||||
private static GameObject prefab;
|
||||
public static UVCRadioButton Create(string text, Transform parent = null)
|
||||
{
|
||||
if (prefab == null)
|
||||
prefab = Resources.Load("Prefabs/Common/UVCRadioButton") as GameObject;
|
||||
|
||||
var asset = Instantiate(prefab, parent);
|
||||
var radio = asset.GetComponent<UVCRadioButton>();
|
||||
radio.GetComponentInChildren<TextMeshProUGUI>().text = text;
|
||||
|
||||
return radio;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCRadioButton.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCRadioButton.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17092b09dad0ea7419dfd6410d22812d
|
||||
58
Assets/Scripts/UVC/UI/UVCRadioController.cs
Normal file
58
Assets/Scripts/UVC/UI/UVCRadioController.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// 라디오Controller
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(ToggleGroup))]
|
||||
public class UVCRadioController : MonoBehaviour
|
||||
{
|
||||
private RectTransform rect;
|
||||
private ToggleGroup radioGroup;
|
||||
public ToggleGroup RadioGroup
|
||||
{
|
||||
get
|
||||
{
|
||||
if (radioGroup == null)
|
||||
{
|
||||
radioGroup = GetComponent<ToggleGroup>();
|
||||
}
|
||||
return radioGroup;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 그룹으로 묶여 있는 토글 중 아무것도 선택을 하지 않는 것을 허용 True 비허용 False
|
||||
/// </summary>
|
||||
/// <param name="isOn"></param>
|
||||
public void SetAllowSwitch(bool isOn)
|
||||
{
|
||||
RadioGroup.allowSwitchOff = isOn;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 하위에 있는 모든 토글 상태 변경
|
||||
/// </summary>
|
||||
/// <param name="isOn"></param>
|
||||
public void AllToggleOnOff(bool isOn)
|
||||
{
|
||||
RadioGroup.SetAllTogglesOff(isOn);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="toggle"></param>
|
||||
public void AddRadio(Toggle toggle)
|
||||
{
|
||||
toggle.group = RadioGroup;
|
||||
}
|
||||
|
||||
private void ExpandYSize()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCRadioController.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCRadioController.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b55b0f3817765fd43b35350c4ea27d7b
|
||||
81
Assets/Scripts/UVC/UI/UVCScrollView.cs
Normal file
81
Assets/Scripts/UVC/UI/UVCScrollView.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XED.VirtualFactory;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
public class UVCScrollView : MonoBehaviour
|
||||
{
|
||||
private ScrollRect scrollRect;
|
||||
private UVCScrollviewItem item;
|
||||
private Action onClickScrollItem;
|
||||
|
||||
private List<UVCScrollviewItem> scrollItems = new();
|
||||
public void Init(Vector2 size)
|
||||
{
|
||||
scrollRect = GetComponent<ScrollRect>();
|
||||
var rect = GetComponent<RectTransform>();
|
||||
|
||||
rect.sizeDelta = size;
|
||||
item = Resources.Load<UVCScrollviewItem>("Prefabs/Common/UVCScrollviewItem");
|
||||
}
|
||||
|
||||
public void SetVerticalItem<T>(List<T> items)
|
||||
{
|
||||
if (!scrollRect.gameObject.TryGetComponent<VerticalLayoutGroup>(out var layout))
|
||||
{
|
||||
layout.gameObject.AddComponent<VerticalLayoutGroup>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void SetHorizontalItem<T>(List<T> items)
|
||||
{
|
||||
if (!scrollRect.gameObject.TryGetComponent<HorizontalLayoutGroup>(out var layout))
|
||||
{
|
||||
layout.gameObject.AddComponent<HorizontalLayoutGroup>();
|
||||
}
|
||||
}
|
||||
|
||||
private void SetPadding(LayoutGroup layoutGroup)
|
||||
{
|
||||
//layoutGroup.padding.
|
||||
if(layoutGroup is HorizontalLayoutGroup)
|
||||
{
|
||||
|
||||
}
|
||||
switch (layoutGroup)
|
||||
{
|
||||
//case layoutGroup as VerticalLayoutGroup:
|
||||
// break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void SetLayOutGroupItem<T>(List<T>items,Vector2 cellSize)
|
||||
{
|
||||
if(!scrollRect.gameObject.TryGetComponent<GridLayoutGroup>(out var layout))
|
||||
{
|
||||
layout.gameObject.AddComponent<GridLayoutGroup>();
|
||||
layout.cellSize = cellSize;
|
||||
}
|
||||
|
||||
foreach (T item in items)
|
||||
{
|
||||
var itme = CreateItem();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public UVCScrollviewItem CreateItem()
|
||||
{
|
||||
var resultItem = Instantiate<UVCScrollviewItem>(item, scrollRect.content);
|
||||
resultItem.onClickButton?.Invoke();
|
||||
scrollItems.Add(resultItem);
|
||||
return resultItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCScrollView.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCScrollView.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 663b0bae46f9f1c4692c00ea482744f8
|
||||
9
Assets/Scripts/UVC/UI/UVCScrollviewItem.cs
Normal file
9
Assets/Scripts/UVC/UI/UVCScrollviewItem.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
public class UVCScrollviewItem : UVCButton
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCScrollviewItem.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCScrollviewItem.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a18d515b0e788d44ea93843d842f4752
|
||||
78
Assets/Scripts/UVC/UI/UVCSlider.cs
Normal file
78
Assets/Scripts/UVC/UI/UVCSlider.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
public class UVCSlider : MonoBehaviour
|
||||
{
|
||||
private Slider slider;
|
||||
private Image background;
|
||||
private Image image_Icon;
|
||||
private Image handle;
|
||||
|
||||
public Slider Slider
|
||||
{
|
||||
get
|
||||
{
|
||||
if (slider == null)
|
||||
{
|
||||
slider = GetComponentInChildren<Slider>();
|
||||
}
|
||||
return slider;
|
||||
}
|
||||
}
|
||||
|
||||
public Image Image_Icon
|
||||
{
|
||||
get
|
||||
{
|
||||
if (image_Icon == null)
|
||||
{
|
||||
var images = GetComponentsInChildren<Image>();
|
||||
image_Icon = images.FirstOrDefault(x => x.name.Equals(nameof(image_Icon), StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
return image_Icon;
|
||||
}
|
||||
}
|
||||
|
||||
public Image Background
|
||||
{
|
||||
get
|
||||
{
|
||||
if (background == null)
|
||||
{
|
||||
var images = GetComponentsInChildren<Image>();
|
||||
background = images.FirstOrDefault(x => x.name.Equals(nameof(background), StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
return background;
|
||||
}
|
||||
}
|
||||
|
||||
public Image Handle
|
||||
{
|
||||
get
|
||||
{
|
||||
if (handle == null)
|
||||
{
|
||||
var images = GetComponentsInChildren<Image>();
|
||||
handle = images.FirstOrDefault(x => x.name.Equals(nameof(handle), StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
return handle;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// wholeCount 설정 minvalue + upCount
|
||||
/// </summary>
|
||||
/// <param name="upCount"></param>
|
||||
public void SetWholeNumber(int upCount)
|
||||
{
|
||||
var maxCount = (int)slider.minValue + upCount;
|
||||
|
||||
Slider.wholeNumbers = true;
|
||||
Slider.maxValue = upCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCSlider.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCSlider.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b3865e66319ab554cbb3bb19044d5f72
|
||||
90
Assets/Scripts/UVC/UI/UVCSwitchButton.cs
Normal file
90
Assets/Scripts/UVC/UI/UVCSwitchButton.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// On/Off 상태를 나타내는 버튼
|
||||
/// </summary>
|
||||
public class UVCSwitchButton : MonoBehaviour
|
||||
{
|
||||
private RectTransform rect;
|
||||
private Button button_switch;
|
||||
private RectTransform switch_rect;
|
||||
private Image image_background;
|
||||
|
||||
private bool selected = false;
|
||||
public bool Selected { get { return selected; } }
|
||||
|
||||
[SerializeField]
|
||||
private float space;
|
||||
[SerializeField]
|
||||
private float speed_MoveTo;
|
||||
[SerializeField]
|
||||
private float duration_MoveTo;
|
||||
|
||||
private float switchBtnSize;
|
||||
private float bgWidthSize;
|
||||
|
||||
private float process;
|
||||
public Action<bool> onClickSwitch;
|
||||
private float timer;
|
||||
|
||||
[Header("BG_Color")]
|
||||
[SerializeField]
|
||||
private Color normalBG;
|
||||
[SerializeField]
|
||||
private Color SelectBG;
|
||||
public void Init()
|
||||
{
|
||||
rect = GetComponent<RectTransform>();
|
||||
button_switch = GetComponentInChildren<Button>();
|
||||
switch_rect = button_switch.GetComponent<RectTransform>();
|
||||
button_switch.onClick.AddListener(OnClickSwichBtn);
|
||||
var images = GetComponentsInChildren<Image>();
|
||||
image_background = images.FirstOrDefault(x => x.name.Equals(nameof(image_background), System.StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
image_background.color = normalBG;
|
||||
switchBtnSize = switch_rect.sizeDelta.x;
|
||||
bgWidthSize = rect.sizeDelta.x;
|
||||
}
|
||||
|
||||
private void OnClickSwichBtn()
|
||||
{
|
||||
StopCoroutine(SwitchOnOff());
|
||||
selected = !selected;
|
||||
StartCoroutine(SwitchOnOff());
|
||||
}
|
||||
|
||||
IEnumerator SwitchOnOff()
|
||||
{
|
||||
ProcessWinding();
|
||||
var pos = selected ? new Vector2(bgWidthSize - (switchBtnSize + space), switch_rect.anchoredPosition.y) : new Vector2(space, switch_rect.anchoredPosition.y);
|
||||
|
||||
while (process < 1f)
|
||||
{
|
||||
timer += speed_MoveTo * 0.1f;
|
||||
process += timer / duration_MoveTo;
|
||||
switch_rect.anchoredPosition = Vector2.Lerp(switch_rect.anchoredPosition,pos, process);
|
||||
yield return null;
|
||||
}
|
||||
|
||||
image_background.color = selected ? SelectBG : normalBG;
|
||||
timer = 0;
|
||||
onClickSwitch?.Invoke(selected);
|
||||
}
|
||||
|
||||
|
||||
private void ProcessWinding()
|
||||
{
|
||||
timer = 0;
|
||||
if (process > 0f)
|
||||
{
|
||||
process = 1f - process;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCSwitchButton.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCSwitchButton.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 934fce4b892f1d549b12df3a199d99f8
|
||||
146
Assets/Scripts/UVC/UI/UVCTabButton.cs
Normal file
146
Assets/Scripts/UVC/UI/UVCTabButton.cs
Normal file
@@ -0,0 +1,146 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Studio.UVC.UI
|
||||
{
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
public class UVCTabButton : UnityEngine.MonoBehaviour, ITabButton, IPointerEnterHandler, IPointerExitHandler
|
||||
{
|
||||
private static GameObject prefab;
|
||||
|
||||
public static UVCTabButton Create(string text, Transform parent = null)
|
||||
{
|
||||
if (prefab == null) prefab = Resources.Load("Prefabs/Common/UVCTabButton", typeof(GameObject)) as GameObject;
|
||||
var instance = Instantiate(prefab, parent);
|
||||
var btn = instance.GetComponent<UVCTabButton>();
|
||||
if (text != null && text.Length > 0) btn.GetComponentInChildren<TextMeshProUGUI>().text = text;
|
||||
return btn;
|
||||
}
|
||||
|
||||
|
||||
public UnityEvent<int, bool> onClick = new UnityEvent<int, bool>();
|
||||
|
||||
[SerializeField]
|
||||
private bool selected = false;
|
||||
public bool Selected { get => selected; }
|
||||
|
||||
public int Index { get; set; }
|
||||
|
||||
private TextMeshProUGUI txt;
|
||||
private UnityEngine.UI.Button button;
|
||||
|
||||
private RectTransform rect;
|
||||
public RectTransform Rect { get { return rect; } }
|
||||
|
||||
private Image image;
|
||||
public Image Image { get { return image; } }
|
||||
|
||||
public float Space = 8f;
|
||||
|
||||
[Header("Color")]
|
||||
public Color normalColor;
|
||||
public Color highLightColor;
|
||||
public Color selectColor;
|
||||
[Header("Sprite")]
|
||||
public Sprite normalSprite;
|
||||
public Sprite selectSprite;
|
||||
|
||||
public void Init()
|
||||
{
|
||||
txt = GetComponentInChildren<TextMeshProUGUI>();
|
||||
button = GetComponent<UnityEngine.UI.Button>();
|
||||
rect = GetComponent<RectTransform>();
|
||||
image = GetComponent<Image>();
|
||||
|
||||
if (button != null)
|
||||
{
|
||||
button.onClick.AddListener(() =>
|
||||
{
|
||||
if (selected) return;
|
||||
selected = true;
|
||||
onClick.Invoke(Index, selected);
|
||||
});
|
||||
}
|
||||
|
||||
if (selected) Select();
|
||||
else Deselect();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 텍스트 길이에 따른 사이즈 변경
|
||||
/// </summary>
|
||||
/// <param name="text">Title Name</param>
|
||||
/// <param name="isSize">autosizeing</param>
|
||||
public void SetText(string text,bool isAutoSize)
|
||||
{
|
||||
txt.text = text;
|
||||
if(isAutoSize)
|
||||
rect.sizeDelta = new Vector2(txt.preferredWidth + Space, rect.sizeDelta.y);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 선택된 탭
|
||||
/// </summary>
|
||||
public void Select()
|
||||
{
|
||||
if (image == null) image = GetComponent<Image>();
|
||||
if (txt == null) txt = GetComponentInChildren<TextMeshProUGUI>();
|
||||
|
||||
image.sprite = selectSprite;
|
||||
image.color = selectColor;
|
||||
|
||||
selected = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 탭이 변경 될 경우
|
||||
/// </summary>
|
||||
public void Deselect()
|
||||
{
|
||||
if (image == null) image = GetComponent<Image>();
|
||||
if (txt == null) txt = GetComponentInChildren<TextMeshProUGUI>();
|
||||
|
||||
image.sprite = normalSprite;
|
||||
image.color = normalColor;
|
||||
|
||||
selected = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 버튼 상태에 따른 색상 설정
|
||||
/// </summary>
|
||||
/// <param name="_normalColor"></param>
|
||||
/// <param name="_highLightColor"></param>
|
||||
/// <param name="_selectColor"></param>
|
||||
public void SetButtonColor(Color _normalColor, Color _highLightColor, Color _selectColor)
|
||||
{
|
||||
normalColor = _normalColor;
|
||||
highLightColor = _highLightColor;
|
||||
selectColor = _selectColor;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (button != null) button.onClick.RemoveAllListeners();
|
||||
onClick.RemoveAllListeners();
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
image.sprite = selectSprite;
|
||||
image.color = highLightColor;
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
if (selected)
|
||||
image.color = selectColor;
|
||||
else
|
||||
image.sprite = normalSprite;
|
||||
image.color = normalColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/UI/UVCTabButton.cs.meta
Normal file
2
Assets/Scripts/UVC/UI/UVCTabButton.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 63abeabf96bb6b64b895ab577888d1fd
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace XRLib.UI
|
||||
using UnityEngine;
|
||||
|
||||
namespace XRLib.UI
|
||||
{
|
||||
public abstract class PanelBase : UIBase
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
28
Packages/com.tivadar.best.http/CHANGELOG.md
Normal file
28
Packages/com.tivadar.best.http/CHANGELOG.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Changelog
|
||||
|
||||
## 3.0.0 (2023-01-01)
|
||||
|
||||
__Additions and improvements__
|
||||
|
||||
- New namespace hierarchy.
|
||||
- Added [DNSCache](https://bestdocshub.pages.dev/Shared/DNS/dns-cache.md) implementation to speed up consecutive connection processes.
|
||||
- Added support for [DNSCache](https://bestdocshub.pages.dev/HTTP/api-reference/Cache/DNSCache.md) to manually store and retrieve entries.
|
||||
- Added new [Negotiator](https://bestdocshub.pages.dev/HTTP/api-reference/Tcp/Negotiator.md) class help building new plugins that doesn't use HTTP, but require the same lower-level infrastructure.
|
||||
- Added new [TCPRingmaster](https://bestdocshub.pages.dev/HTTP/api-reference/Tcp/TCPRingmaster.md) class to speed up TCP connection process by sending out multiple tcp connection requests and use the first connected one.
|
||||
- Reimplemented connection logic to use the new DNS cache, negotiator and tcp-ringmaster.
|
||||
- Reimplemented network read and write operations. Instead of blocking Reads&Writes, now the plugin uses non-blocking functions. This enabled implementing new ways for downloads and uploads. There's forward and backward feedback between the low level tcp layer and higher level connection layers. If the [download-stream](https://bestdocshub.pages.dev/HTTP/api-reference/Response/DownloadContentStream.md)'s buffer is full, it can notify the tcp layer that it can resume receiving from the server.
|
||||
- Reimplemented [HTTPCache](https://bestdocshub.pages.dev/HTTP/api-reference/Caching/HTTPCache.md), it's got more robust and future proof.
|
||||
- (#69) Now it's possible and easy to populate the local HTTP cache.
|
||||
- Added new, cleaner samples for both old and new features.
|
||||
- Halved active threads per connections.
|
||||
- Added [Memory](https://bestdocshub.pages.dev/Shared/Profiler/memory.md) and [Network](https://bestdocshub.pages.dev/Shared/Profiler/memory.md) profilers.
|
||||
|
||||
__Removals__
|
||||
|
||||
- Removed old, cluttered samples.
|
||||
|
||||
__Fixes__
|
||||
|
||||
- Fixed chaos around different upload sources (RawData, Forms, UploadStream) and unified them in one [UploadStream](https://bestdocshub.pages.dev/HTTP/getting-started/uploads.md).
|
||||
|
||||
For API changes and upgrade guides see the [Upgrade Guide topic](https://bestdocshub.pages.dev/HTTP/upgrade-guide.md).
|
||||
14
Packages/com.tivadar.best.http/CHANGELOG.md.meta
Normal file
14
Packages/com.tivadar.best.http/CHANGELOG.md.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a17df9b0515742b44b02487fd902a50a
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/CHANGELOG.md
|
||||
uploadId: 743984
|
||||
8
Packages/com.tivadar.best.http/Editor.meta
Normal file
8
Packages/com.tivadar.best.http/Editor.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de19425b9f4e6b244a8fce52c1b74253
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Packages/com.tivadar.best.http/Editor/Profiler.meta
Normal file
8
Packages/com.tivadar.best.http/Editor/Profiler.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a1b9757b08647fd429fb2d3a504d3788
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee6898caa8b437445b91ccde35286fae
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,25 @@
|
||||
#if BESTHTTP_PROFILE && UNITY_2021_2_OR_NEWER
|
||||
using Best.HTTP.Profiler.Memory;
|
||||
|
||||
using Unity.Profiling.Editor;
|
||||
|
||||
namespace Best.HTTP.Editor.Profiler.Memory
|
||||
{
|
||||
[System.Serializable]
|
||||
[ProfilerModuleMetadata(MemoryStats.CategoryName)]
|
||||
public sealed class MemoryStatsProfilerModule : ProfilerModule
|
||||
{
|
||||
static readonly ProfilerCounterDescriptor[] k_Counters =
|
||||
{
|
||||
new ProfilerCounterDescriptor(MemoryStats.BorrowedName, MemoryStats.Category),
|
||||
new ProfilerCounterDescriptor(MemoryStats.PooledName, MemoryStats.Category),
|
||||
new ProfilerCounterDescriptor(MemoryStats.CacheHitsName, MemoryStats.Category),
|
||||
new ProfilerCounterDescriptor(MemoryStats.ArrayAllocationsName, MemoryStats.Category)
|
||||
};
|
||||
|
||||
public MemoryStatsProfilerModule() : base(k_Counters)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a27483e3bb01d5546bd803c92f53c77f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Editor/Profiler/Memory/MemoryStatsProfilerModule.cs
|
||||
uploadId: 743984
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e4f967529f18d5439bc00808ed1f326
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,34 @@
|
||||
#if BESTHTTP_PROFILE && UNITY_2021_2_OR_NEWER
|
||||
using Unity.Profiling.Editor;
|
||||
|
||||
using Best.HTTP.Profiler.Network;
|
||||
|
||||
namespace Best.HTTP.Editor.Profiler.Network
|
||||
{
|
||||
[System.Serializable]
|
||||
[ProfilerModuleMetadata(NetworkStats.CategoryName)]
|
||||
public sealed class NetworkStatsProfilerModule : ProfilerModule
|
||||
{
|
||||
static readonly ProfilerCounterDescriptor[] k_Counters =
|
||||
{
|
||||
new ProfilerCounterDescriptor(NetworkStats.BufferedToSendName, NetworkStats.Category),
|
||||
new ProfilerCounterDescriptor(NetworkStats.SentSinceLastFrameName, NetworkStats.Category),
|
||||
new ProfilerCounterDescriptor(NetworkStats.SentTotalName, NetworkStats.Category),
|
||||
|
||||
new ProfilerCounterDescriptor(NetworkStats.ReceivedAndUnprocessedName, NetworkStats.Category),
|
||||
new ProfilerCounterDescriptor(NetworkStats.ReceivedSinceLastFrameName, NetworkStats.Category),
|
||||
new ProfilerCounterDescriptor(NetworkStats.ReceivedTotalName, NetworkStats.Category),
|
||||
|
||||
new ProfilerCounterDescriptor(NetworkStats.OpenConnectionsName, NetworkStats.Category),
|
||||
new ProfilerCounterDescriptor(NetworkStats.TotalConnectionsName, NetworkStats.Category),
|
||||
|
||||
new ProfilerCounterDescriptor(NetworkStats.TotalDNSCacheHits, NetworkStats.Category),
|
||||
new ProfilerCounterDescriptor(NetworkStats.TotalDNSCacheMiss, NetworkStats.Category),
|
||||
};
|
||||
|
||||
public NetworkStatsProfilerModule() : base(k_Counters)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 997070aa1f569c44ab6386e5a3b8c075
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Editor/Profiler/Network/NetworkStatsProfilerModule.cs
|
||||
uploadId: 743984
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "com.Tivadar.Best.HTTP.Profiler.Editor",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"GUID:b46779583a009f04ba9f5f31d0e7e6ac",
|
||||
"GUID:9069ac25d95ca17448a247f3bb1c769f"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": false,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [
|
||||
{
|
||||
"name": "com.unity.profiling.core",
|
||||
"expression": "1.0.0",
|
||||
"define": "BESTHTTP_PROFILE"
|
||||
}
|
||||
],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f5172b08096bc564e960c6b5e420e790
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Editor/Profiler/com.Tivadar.Best.HTTP.Profiler.Editor.asmdef
|
||||
uploadId: 743984
|
||||
1
Packages/com.tivadar.best.http/LICENSE.md
Normal file
1
Packages/com.tivadar.best.http/LICENSE.md
Normal file
@@ -0,0 +1 @@
|
||||
The plugin's license falls under the Unity Asset Store EULA that can be found here under Appendix 1: https://unity3d.com/legal/as_terms
|
||||
14
Packages/com.tivadar.best.http/LICENSE.md.meta
Normal file
14
Packages/com.tivadar.best.http/LICENSE.md.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2e6e996ec793e84fa9174fa8769cc7f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/LICENSE.md
|
||||
uploadId: 743984
|
||||
85
Packages/com.tivadar.best.http/README.md
Normal file
85
Packages/com.tivadar.best.http/README.md
Normal file
@@ -0,0 +1,85 @@
|
||||
Best HTTP is a comprehensive networking library for Unity that empowers developers to make HTTP and HTTPS requests with ease.
|
||||
Whether you're building web applications, multiplayer games, or real-time communication solutions, Best HTTP has got you covered.
|
||||
|
||||
## Overview
|
||||
In today's digital era, efficient and reliable web communication forms the backbone of many applications.
|
||||
Whether you're fetching data from remote servers, sending game scores, or updating user profiles, HTTP requests are indispensable.
|
||||
Recognizing the multifaceted needs of Unity developers, Best HTTP is designed to simplify these interactions, providing a streamlined and efficient means to handle web-based communication.
|
||||
|
||||
## Key Features
|
||||
- **Supported Unity Versions**: Best HTTP is compatible with Unity versions starting from :fontawesome-brands-unity: **2021.1 onwards**.
|
||||
- **Cross-Platform:** Best HTTP is designed to work seamlessly across a diverse range of Unity platforms, ensuring versatility for all your development needs. Specifically, it supports:
|
||||
- :fontawesome-solid-desktop: **Desktop**: Windows, Linux, MacOS
|
||||
- :fontawesome-solid-mobile: **Mobile**: iOS, Android
|
||||
- :material-microsoft-windows: **Universal Windows Platform** (UWP)
|
||||
- :material-web: **Web Browsers**: WebGL
|
||||
|
||||
This broad platform support means you can confidently use Best HTTP, regardless of your target audience or deployment strategy.
|
||||
|
||||
- **Versatile Request Outcome Handling**: Best HTTP ensures flexibility in managing network request outcomes to seamlessly fit within your development style and the varied structures of different applications:
|
||||
- **Traditional Callbacks:** Adopt the classic approach with regular C# callbacks. Ideal for those who prefer traditional programming patterns, allowing for simple and straightforward handling of responses.
|
||||
- **Unity Coroutines:** For those who are deeply integrated with Unity's workflow, Best HTTP provides native support for Unity's coroutines. This facilitates non-blocking operations while keeping the code structure clean and readable, particularly when sequencing multiple network requests.
|
||||
- **Async-Await Pattern:** Embrace the modern C# asynchronous programming paradigm with the async-await pattern. Best HTTP's support for this ensures that developers can write non-blocking code in a linear fashion, greatly simplifying error handling and state management for asynchronous operations.
|
||||
|
||||
With these diverse options for request outcome handling, developers can choose the best approach that aligns with their project requirements and personal coding preferences.
|
||||
|
||||
- **HTTP/HTTPS Support**: Best HTTP supports both HTTP and HTTPS protocols, ensuring secure communication for your applications.
|
||||
- **HTTP/2 Support**: Benefit from the advantages of HTTP/2, including faster loading times, reduced latency and **trailing headers** for advanced scenarios like **GRPC**.
|
||||
- **Caching**: Implement efficient caching mechanisms to reduce redundant network requests, optimizing your application's performance and data usage.
|
||||
- **Authentication**: Easily handle various authentication methods, such as Basic, Digest, and Bearer token authentication.
|
||||
- **Cookie Management**: Manage cookies effortlessly, ensuring smooth user experiences in web applications.
|
||||
- **Compression**: Compress and decompress data using gzip and deflate algorithms to save bandwidth and improve loading times.
|
||||
- **Streaming**: Best HTTP supports streaming for both downloads and uploads. This enables you to stream large files and responses directly to storage when downloading, and stream data from storage when uploading, effectively avoiding memory bottlenecks.
|
||||
- **Customization**: Tailor your HTTP requests with customizable headers, timeouts, and other parameters to meet your specific needs.
|
||||
- **Built-In Profiler Support**: Best HTTP now comes with a built-in profiler, ensuring developers have direct access to critical insights without the need for external tools.
|
||||
This enhancement is instrumental in understanding the performance and network behavior of your application, thereby facilitating optimization and debugging. Key features of the built-in profiler include:
|
||||
- **Memory Profiler:** Dive into the library's internal memory usage. This tool is invaluable for ensuring optimal memory management and for identifying potential bottlenecks or leaks.
|
||||
- **Network Profiler:** This profiler allows for a granular analysis of your network operations. Notable features include:
|
||||
- **Byte Tracking:** Monitor the bytes sent and received between two frames, providing a clear overview of data transfers and insight into traffic patterns.
|
||||
- **Connection Analysis:** Stay informed on the total number of open and closed connections. This data gives a transparent view of your app's network activity.
|
||||
- **DNS Cache Profiling:** With this feature, you can track DNS cache hits and misses, aiding in the fine-tuning of DNS cache strategies and understanding potential network resolution delays.
|
||||
|
||||
With the integration of this built-in profiler support, developers can not only ensure that their application's network activities are optimized but also make data-driven decisions that enhance both performance and user experience.
|
||||
|
||||
## Installation Guide
|
||||
|
||||
Getting started with Best HTTP is straightforward.
|
||||
Depending on your preference, you can either install the package via the Unity Asset Store or use a .unitypackage.
|
||||
Below are step-by-step guides for both methods:
|
||||
|
||||
### Installing from the Unity Asset Store using the Package Manager Window
|
||||
|
||||
1. **Purchase:** If you haven't previously purchased the package, proceed to do so. Once purchased, Unity will recognize your purchase, and you can install the package directly from within the Unity Editor. If you already own the package, you can skip these steps.
|
||||
1. **Visit the Unity Asset Store:** Using your preferred web browser, navigate to the [Unity Asset Store](https://assetstore.unity.com/publishers/4137?aid=1101lfX8E).
|
||||
2. **Search for Best HTTP:** Locate and choose the official Best HTTP package.
|
||||
3. **Buy Best HTTP:** By clicking on the `Buy Now` button go though the purchase process.
|
||||
2. **Open Unity & Access the Package Manager:** Launch Unity and open your desired project. Navigate to [Window > Package Manager](https://docs.unity3d.com/Manual/upm-ui.html).
|
||||
3. **Select 'My Assets':** In the Package Manager window, switch to the [My Assets](https://docs.unity3d.com/Manual/upm-ui-import.html) tab. This will show all assets you have access to, including ones you've purchased or added to your Asset Store account.
|
||||
4. **Find Best HTTP and Download:** Locate "Best HTTP" in the list. Once found, click on it to view the details. If the package isn't already downloaded, you'll see a Download button. Click this button and wait for the package to download. Once downloaded, the button will change to Import.
|
||||
5. **Import the Package:** After downloading, click the Import button. Unity will then show you a list of all the assets associated with the Best HTTP package. Ensure all assets are checked and click Import.
|
||||
6. **Confirmation:** Upon importing, Best HTTP will be added to your project, indicating a successful installation.
|
||||
|
||||
### Installing from a .unitypackage file
|
||||
|
||||
In some cases you might have a .unitypackage file containing the plugin.
|
||||
|
||||
1. **Download the .unitypackage:** Ensure you have the Best HTTP.unitypackage file saved on your computer. This might be from a direct download link or an email attachment, depending on how it was distributed.
|
||||
2. **Import into Unity:** Launch Unity and open your project. Go to Assets > Import Package > Custom Package.
|
||||
3. **Locate and Select the .unitypackage:** Navigate to the location where you saved the Best HTTP.unitypackage file. Select it and click Open.
|
||||
4. **Review and Import:** Unity will show you a list of all the assets contained in the package. Make sure all assets are selected and click Import.
|
||||
5. **Confirmation:** After importing, you should see all the Best HTTP assets added to your project's Asset folder, confirming a successful installation.
|
||||
|
||||
!!! Note
|
||||
Best HTTP also supports other installation methods as documented in Unity's manual for packages.
|
||||
For more advanced installation options, refer to the Unity Manual on [Sharing Packages](https://docs.unity3d.com/Manual/cus-share.html).
|
||||
|
||||
### Assembly Definitions and Runtime References
|
||||
For developers familiar with Unity's development patterns, it's essential to understand how Best HTTP incorporates Unity's systems:
|
||||
|
||||
- **Assembly Definition Files:** Best HTTP incorporates [Unity's Assembly Definition files](https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html). It aids in organizing and managing the codebase efficiently.
|
||||
- **Auto-Referencing of Runtime DLLs:** The runtime DLLs produced by Best HTTP are [Auto Referenced](https://docs.unity3d.com/Manual/class-AssemblyDefinitionImporter.html), allowing Unity to automatically recognize and utilize them without manual intervention.
|
||||
- **Manual Package Referencing:** Should you need to reference Best HTTP manually in your project (for advanced setups or specific use cases), you can do so. Simply [reference the package](https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html#reference-another-assembly) by searching for `com.Tivadar.Best.HTTP`.
|
||||
|
||||
That's it! You've now successfully installed Best HTTP in your Unity project. Dive into the [Getting Started guide](getting-started/index.md) to begin your journey with Best HTTP.
|
||||
|
||||
If you encounter any issues or need further assistance, please visit our [Community and Support page](../Shared/support.md).
|
||||
14
Packages/com.tivadar.best.http/README.md.meta
Normal file
14
Packages/com.tivadar.best.http/README.md.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d945ceaee22ec124ea21e8924d1780f9
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/README.md
|
||||
uploadId: 743984
|
||||
8
Packages/com.tivadar.best.http/Runtime.meta
Normal file
8
Packages/com.tivadar.best.http/Runtime.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 547ae4cc6dd99314dab4bd761faa6802
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Packages/com.tivadar.best.http/Runtime/3rdParty.meta
Normal file
8
Packages/com.tivadar.best.http/Runtime/3rdParty.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2720467a1ae4cdb4c949d469c1827cc2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle.meta
vendored
Normal file
8
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle.meta
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 262d190881d534841b89c75741207e22
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
7
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/License.txt
vendored
Normal file
7
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/License.txt
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
Copyright (c) 2000 - 2017 The Legion of the Bouncy Castle Inc. (https://www.bouncycastle.org)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
14
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/License.txt.meta
vendored
Normal file
14
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/License.txt.meta
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
fileFormatVersion: 2
|
||||
guid: deffb42883fe27b4c833e8617deec47f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/License.txt
|
||||
uploadId: 743984
|
||||
8
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1.meta
vendored
Normal file
8
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1.meta
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 95944b65ba7736c42b16376b8a546a47
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
32
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1Generator.cs
vendored
Normal file
32
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1Generator.cs
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||||
#pragma warning disable
|
||||
using System.IO;
|
||||
|
||||
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
|
||||
{
|
||||
public abstract class Asn1Generator
|
||||
{
|
||||
private Stream _out;
|
||||
|
||||
protected Asn1Generator(
|
||||
Stream outStream)
|
||||
{
|
||||
_out = outStream;
|
||||
}
|
||||
|
||||
protected Stream Out
|
||||
{
|
||||
get { return _out; }
|
||||
}
|
||||
|
||||
public abstract void AddObject(Asn1Encodable obj);
|
||||
|
||||
public abstract void AddObject(Asn1Object obj);
|
||||
|
||||
public abstract Stream GetRawOutputStream();
|
||||
|
||||
public abstract void Close();
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endif
|
||||
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1Generator.cs.meta
vendored
Normal file
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1Generator.cs.meta
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7773fea4f16e26d4480e20f8df896c7f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1Generator.cs
|
||||
uploadId: 743984
|
||||
17
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1OctetStringParser.cs
vendored
Normal file
17
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1OctetStringParser.cs
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||||
#pragma warning disable
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
|
||||
{
|
||||
public interface Asn1OctetStringParser
|
||||
: IAsn1Convertible
|
||||
{
|
||||
/// <summary>Return the content of the OCTET STRING as a <see cref="Stream"/>.</summary>
|
||||
/// <returns>A <see cref="Stream"/> represnting the OCTET STRING's content.</returns>
|
||||
Stream GetOctetStream();
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endif
|
||||
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1OctetStringParser.cs.meta
vendored
Normal file
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1OctetStringParser.cs.meta
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 106a99bb8c6b6c046b7a5d3f6dc106a2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1OctetStringParser.cs
|
||||
uploadId: 743984
|
||||
12
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SequenceParser.cs
vendored
Normal file
12
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SequenceParser.cs
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||||
#pragma warning disable
|
||||
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
|
||||
{
|
||||
public interface Asn1SequenceParser
|
||||
: IAsn1Convertible
|
||||
{
|
||||
IAsn1Convertible ReadObject();
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endif
|
||||
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SequenceParser.cs.meta
vendored
Normal file
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SequenceParser.cs.meta
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a5d90107b1bb70649bd933287abb52a6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SequenceParser.cs
|
||||
uploadId: 743984
|
||||
12
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SetParser.cs
vendored
Normal file
12
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SetParser.cs
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||||
#pragma warning disable
|
||||
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
|
||||
{
|
||||
public interface Asn1SetParser
|
||||
: IAsn1Convertible
|
||||
{
|
||||
IAsn1Convertible ReadObject();
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endif
|
||||
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SetParser.cs.meta
vendored
Normal file
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SetParser.cs.meta
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d056b261f918f64b8a91a610ceb8702
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1SetParser.cs
|
||||
uploadId: 743984
|
||||
248
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1StreamParser.cs
vendored
Normal file
248
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1StreamParser.cs
vendored
Normal file
@@ -0,0 +1,248 @@
|
||||
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||||
#pragma warning disable
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
|
||||
{
|
||||
public class Asn1StreamParser
|
||||
{
|
||||
private readonly Stream _in;
|
||||
private readonly int _limit;
|
||||
|
||||
private readonly byte[][] tmpBuffers;
|
||||
|
||||
public Asn1StreamParser(Stream input)
|
||||
: this(input, Asn1InputStream.FindLimit(input))
|
||||
{
|
||||
}
|
||||
|
||||
public Asn1StreamParser(byte[] encoding)
|
||||
: this(new MemoryStream(encoding, false), encoding.Length)
|
||||
{
|
||||
}
|
||||
|
||||
public Asn1StreamParser(Stream input, int limit)
|
||||
: this(input, limit, new byte[16][])
|
||||
{
|
||||
}
|
||||
|
||||
internal Asn1StreamParser(Stream input, int limit, byte[][] tmpBuffers)
|
||||
{
|
||||
if (!input.CanRead)
|
||||
throw new ArgumentException("Expected stream to be readable", "input");
|
||||
|
||||
this._in = input;
|
||||
this._limit = limit;
|
||||
this.tmpBuffers = tmpBuffers;
|
||||
}
|
||||
|
||||
public virtual IAsn1Convertible ReadObject()
|
||||
{
|
||||
int tagHdr = _in.ReadByte();
|
||||
if (tagHdr < 0)
|
||||
return null;
|
||||
|
||||
return ImplParseObject(tagHdr);
|
||||
}
|
||||
|
||||
internal IAsn1Convertible ImplParseObject(int tagHdr)
|
||||
{
|
||||
// turn off looking for "00" while we resolve the tag
|
||||
Set00Check(false);
|
||||
|
||||
//
|
||||
// calculate tag number
|
||||
//
|
||||
int tagNo = Asn1InputStream.ReadTagNumber(_in, tagHdr);
|
||||
|
||||
//
|
||||
// calculate length
|
||||
//
|
||||
int length = Asn1InputStream.ReadLength(_in, _limit,
|
||||
tagNo == Asn1Tags.BitString || tagNo == Asn1Tags.OctetString || tagNo == Asn1Tags.Sequence ||
|
||||
tagNo == Asn1Tags.Set || tagNo == Asn1Tags.External);
|
||||
|
||||
if (length < 0) // indefinite-length method
|
||||
{
|
||||
if (0 == (tagHdr & Asn1Tags.Constructed))
|
||||
throw new IOException("indefinite-length primitive encoding encountered");
|
||||
|
||||
IndefiniteLengthInputStream indIn = new IndefiniteLengthInputStream(_in, _limit);
|
||||
Asn1StreamParser sp = new Asn1StreamParser(indIn, _limit, tmpBuffers);
|
||||
|
||||
int tagClass = tagHdr & Asn1Tags.Private;
|
||||
if (0 != tagClass)
|
||||
return new BerTaggedObjectParser(tagClass, tagNo, sp);
|
||||
|
||||
return sp.ParseImplicitConstructedIL(tagNo);
|
||||
}
|
||||
else
|
||||
{
|
||||
DefiniteLengthInputStream defIn = new DefiniteLengthInputStream(_in, length, _limit);
|
||||
|
||||
if (0 == (tagHdr & Asn1Tags.Flags))
|
||||
return ParseImplicitPrimitive(tagNo, defIn);
|
||||
|
||||
Asn1StreamParser sp = new Asn1StreamParser(defIn, defIn.Remaining, tmpBuffers);
|
||||
|
||||
int tagClass = tagHdr & Asn1Tags.Private;
|
||||
if (0 != tagClass)
|
||||
{
|
||||
bool isConstructed = (tagHdr & Asn1Tags.Constructed) != 0;
|
||||
|
||||
return new DLTaggedObjectParser(tagClass, tagNo, isConstructed, sp);
|
||||
}
|
||||
|
||||
return sp.ParseImplicitConstructedDL(tagNo);
|
||||
}
|
||||
}
|
||||
|
||||
internal Asn1Object LoadTaggedDL(int tagClass, int tagNo, bool constructed)
|
||||
{
|
||||
if (!constructed)
|
||||
{
|
||||
byte[] contentsOctets = ((DefiniteLengthInputStream)_in).ToArray();
|
||||
return Asn1TaggedObject.CreatePrimitive(tagClass, tagNo, contentsOctets);
|
||||
}
|
||||
|
||||
Asn1EncodableVector contentsElements = ReadVector();
|
||||
return Asn1TaggedObject.CreateConstructedDL(tagClass, tagNo, contentsElements);
|
||||
}
|
||||
|
||||
internal Asn1Object LoadTaggedIL(int tagClass, int tagNo)
|
||||
{
|
||||
Asn1EncodableVector contentsElements = ReadVector();
|
||||
return Asn1TaggedObject.CreateConstructedIL(tagClass, tagNo, contentsElements);
|
||||
}
|
||||
|
||||
internal IAsn1Convertible ParseImplicitConstructedDL(int univTagNo)
|
||||
{
|
||||
switch (univTagNo)
|
||||
{
|
||||
case Asn1Tags.BitString:
|
||||
// TODO[asn1] DLConstructedBitStringParser
|
||||
return new BerBitStringParser(this);
|
||||
case Asn1Tags.External:
|
||||
return new DerExternalParser(this);
|
||||
case Asn1Tags.OctetString:
|
||||
// TODO[asn1] DLConstructedOctetStringParser
|
||||
return new BerOctetStringParser(this);
|
||||
case Asn1Tags.Set:
|
||||
return new DerSetParser(this);
|
||||
case Asn1Tags.Sequence:
|
||||
return new DerSequenceParser(this);
|
||||
default:
|
||||
throw new Asn1Exception("unknown DL object encountered: 0x" + univTagNo.ToString("X"));
|
||||
}
|
||||
}
|
||||
|
||||
internal IAsn1Convertible ParseImplicitConstructedIL(int univTagNo)
|
||||
{
|
||||
switch (univTagNo)
|
||||
{
|
||||
case Asn1Tags.BitString:
|
||||
return new BerBitStringParser(this);
|
||||
case Asn1Tags.External:
|
||||
// TODO[asn1] BERExternalParser
|
||||
return new DerExternalParser(this);
|
||||
case Asn1Tags.OctetString:
|
||||
return new BerOctetStringParser(this);
|
||||
case Asn1Tags.Sequence:
|
||||
return new BerSequenceParser(this);
|
||||
case Asn1Tags.Set:
|
||||
return new BerSetParser(this);
|
||||
default:
|
||||
throw new Asn1Exception("unknown BER object encountered: 0x" + univTagNo.ToString("X"));
|
||||
}
|
||||
}
|
||||
|
||||
internal IAsn1Convertible ParseImplicitPrimitive(int univTagNo)
|
||||
{
|
||||
return ParseImplicitPrimitive(univTagNo, (DefiniteLengthInputStream)_in);
|
||||
}
|
||||
|
||||
internal IAsn1Convertible ParseImplicitPrimitive(int univTagNo, DefiniteLengthInputStream defIn)
|
||||
{
|
||||
// Some primitive encodings can be handled by parsers too...
|
||||
switch (univTagNo)
|
||||
{
|
||||
case Asn1Tags.BitString:
|
||||
return new DLBitStringParser(defIn);
|
||||
case Asn1Tags.External:
|
||||
throw new Asn1Exception("externals must use constructed encoding (see X.690 8.18)");
|
||||
case Asn1Tags.OctetString:
|
||||
return new DerOctetStringParser(defIn);
|
||||
case Asn1Tags.Set:
|
||||
throw new Asn1Exception("sequences must use constructed encoding (see X.690 8.9.1/8.10.1)");
|
||||
case Asn1Tags.Sequence:
|
||||
throw new Asn1Exception("sets must use constructed encoding (see X.690 8.11.1/8.12.1)");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return Asn1InputStream.CreatePrimitiveDerObject(univTagNo, defIn, tmpBuffers);
|
||||
}
|
||||
catch (ArgumentException e)
|
||||
{
|
||||
throw new Asn1Exception("corrupted stream detected", e);
|
||||
}
|
||||
}
|
||||
|
||||
internal IAsn1Convertible ParseObject(int univTagNo)
|
||||
{
|
||||
if (univTagNo < 0 || univTagNo > 30)
|
||||
throw new ArgumentException("invalid universal tag number: " + univTagNo, "univTagNo");
|
||||
|
||||
int tagHdr = _in.ReadByte();
|
||||
if (tagHdr < 0)
|
||||
return null;
|
||||
|
||||
if ((tagHdr & ~Asn1Tags.Constructed) != univTagNo)
|
||||
throw new IOException("unexpected identifier encountered: " + tagHdr);
|
||||
|
||||
return ImplParseObject(tagHdr);
|
||||
}
|
||||
|
||||
internal Asn1TaggedObjectParser ParseTaggedObject()
|
||||
{
|
||||
int tagHdr = _in.ReadByte();
|
||||
if (tagHdr< 0)
|
||||
return null;
|
||||
|
||||
int tagClass = tagHdr & Asn1Tags.Private;
|
||||
if (0 == tagClass)
|
||||
throw new Asn1Exception("no tagged object found");
|
||||
|
||||
return (Asn1TaggedObjectParser)ImplParseObject(tagHdr);
|
||||
}
|
||||
|
||||
// TODO[asn1] Prefer 'LoadVector'
|
||||
internal Asn1EncodableVector ReadVector()
|
||||
{
|
||||
int tagHdr = _in.ReadByte();
|
||||
if (tagHdr < 0)
|
||||
return new Asn1EncodableVector(0);
|
||||
|
||||
Asn1EncodableVector v = new Asn1EncodableVector();
|
||||
do
|
||||
{
|
||||
IAsn1Convertible obj = ImplParseObject(tagHdr);
|
||||
|
||||
v.Add(obj.ToAsn1Object());
|
||||
}
|
||||
while ((tagHdr = _in.ReadByte()) >= 0);
|
||||
return v;
|
||||
}
|
||||
|
||||
private void Set00Check(bool enabled)
|
||||
{
|
||||
if (_in is IndefiniteLengthInputStream indef)
|
||||
{
|
||||
indef.SetEofOn00(enabled);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endif
|
||||
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1StreamParser.cs.meta
vendored
Normal file
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1StreamParser.cs.meta
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2ba3873ab071c0c4cb935177f746056d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1StreamParser.cs
|
||||
uploadId: 743984
|
||||
39
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1TaggedObjectParser.cs
vendored
Normal file
39
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1TaggedObjectParser.cs
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||||
#pragma warning disable
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
|
||||
{
|
||||
public interface Asn1TaggedObjectParser
|
||||
: IAsn1Convertible
|
||||
{
|
||||
int TagClass { get; }
|
||||
|
||||
int TagNo { get; }
|
||||
|
||||
bool HasContextTag(int tagNo);
|
||||
|
||||
bool HasTag(int tagClass, int tagNo);
|
||||
|
||||
/// <exception cref="IOException"/>
|
||||
IAsn1Convertible ParseBaseUniversal(bool declaredExplicit, int baseTagNo);
|
||||
|
||||
/// <summary>Needed for open types, until we have better type-guided parsing support.</summary>
|
||||
/// <remarks>
|
||||
/// Use sparingly for other purposes, and prefer <see cref="ParseExplicitBaseTagged"/> or
|
||||
/// <see cref="ParseBaseUniversal(bool, int)"/> where possible. Before using, check for matching tag
|
||||
/// <see cref="TagClass">class</see> and <see cref="TagNo">number</see>.
|
||||
/// </remarks>
|
||||
/// <exception cref="IOException"/>
|
||||
IAsn1Convertible ParseExplicitBaseObject();
|
||||
|
||||
/// <exception cref="IOException"/>
|
||||
Asn1TaggedObjectParser ParseExplicitBaseTagged();
|
||||
|
||||
/// <exception cref="IOException"/>
|
||||
Asn1TaggedObjectParser ParseImplicitBaseTagged(int baseTagClass, int baseTagNo);
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endif
|
||||
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1TaggedObjectParser.cs.meta
vendored
Normal file
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1TaggedObjectParser.cs.meta
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ea10709a890a7a246bd1f3dd49c4a30f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/ASN1TaggedObjectParser.cs
|
||||
uploadId: 743984
|
||||
36
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/Asn1BitStringParser.cs
vendored
Normal file
36
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/Asn1BitStringParser.cs
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||||
#pragma warning disable
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Best.HTTP.SecureProtocol.Org.BouncyCastle.Asn1
|
||||
{
|
||||
public interface Asn1BitStringParser
|
||||
: IAsn1Convertible
|
||||
{
|
||||
/// <summary>Return a <see cref="Stream"/> representing the contents of the BIT STRING. The final byte, if any,
|
||||
/// may include pad bits. See <see cref="PadBits"/>.</summary>
|
||||
/// <returns>A <see cref="Stream"/> with its source as the BIT STRING content.</returns>
|
||||
/// <exception cref="IOException"/>
|
||||
Stream GetBitStream();
|
||||
|
||||
/// <summary>Return a <see cref="Stream"/> representing the contents of the BIT STRING, where the content is
|
||||
/// expected to be octet-aligned (this will be automatically checked during parsing).</summary>
|
||||
/// <returns>A <see cref="Stream"/> with its source as the BIT STRING content.</returns>
|
||||
/// <exception cref="IOException"/>
|
||||
Stream GetOctetStream();
|
||||
|
||||
/// <summary>Return the number of pad bits, if any, in the final byte, if any, read from
|
||||
/// <see cref="GetBitStream"/>.</summary>
|
||||
/// <remarks>
|
||||
/// This number is in the range zero to seven. That number of the least significant bits of the final byte, if
|
||||
/// any, are not part of the contents and should be ignored. NOTE: Must be called AFTER the stream has been
|
||||
/// fully processed. (Does not need to be called if <see cref="GetOctetStream"/> was used instead of
|
||||
/// <see cref="GetBitStream"/>.
|
||||
/// </remarks>
|
||||
/// <returns>The number of pad bits. In the range zero to seven.</returns>
|
||||
int PadBits { get; }
|
||||
}
|
||||
}
|
||||
#pragma warning restore
|
||||
#endif
|
||||
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/Asn1BitStringParser.cs.meta
vendored
Normal file
18
Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/Asn1BitStringParser.cs.meta
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8af37adf1ddd05d40a2f5b914eb19ca0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 267636
|
||||
packageName: Best HTTP
|
||||
packageVersion: 3.0.15
|
||||
assetPath: Packages/com.tivadar.best.http/Runtime/3rdParty/BouncyCastle/asn1/Asn1BitStringParser.cs
|
||||
uploadId: 743984
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user