【主界面场景切换】提交主界面场景切换功能
parent
e974b56b3e
commit
9bdd261ecb
File diff suppressed because it is too large
Load Diff
|
|
@ -7,6 +7,7 @@
|
|||
None,
|
||||
// add your event name here
|
||||
|
||||
//MainPanel
|
||||
EN_ShowAllCharacterSortType,
|
||||
EN_CharacterLevelUp,
|
||||
EN_ShowAllCharacterOpenDetailUI,
|
||||
|
|
@ -14,6 +15,7 @@
|
|||
EN_ShowAllCharacterOpenBaseAttriUI,
|
||||
EN_UIControllCultivateMainInput,
|
||||
EN_UICultivateUIStateChange,
|
||||
ChangeMainPanelPoster,
|
||||
// level battle
|
||||
UnitDispose,
|
||||
LevelUnitBorn,
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ public partial class UIManager
|
|||
|
||||
_WindowMeta(UINameConst.UI_CommandSkillCultivate, UIWindowLayer.Normal);
|
||||
_WindowMeta(UINameConst.UI_TeamAndSkillSelect, UIWindowLayer.Normal);
|
||||
_WindowMeta(UINameConst.UICameraAndPosterChange, UIWindowLayer.Normal, UIOpenType.FullScreen);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -166,6 +167,7 @@ public static class UINameConst
|
|||
public static readonly string UIGiftCodeAwards = "MainScene/GiftCode/UIGiftCodeAwards";
|
||||
public static readonly string UI_Email = "Mail/UI_Email";
|
||||
public static readonly string UI_CameraChange = "Interface/UI_CameraChange";
|
||||
public static readonly string UICameraAndPosterChange = "Interface/UICameraAndPosterChange";
|
||||
public static readonly string UI_PVPDefendPrepare = "PVP/UI_PVPDefendPrepare";
|
||||
public static readonly string UI_Shop = "Interface/Shop/UI_Shop";
|
||||
public static readonly string UI_Purchase = "Interface/Shop/UI_Purchase";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
using System;
|
||||
using Cysharp.Threading.Tasks;
|
||||
|
||||
namespace Gameplay
|
||||
{
|
||||
public class MainSceneReLoadingExecutor: LoadingExecutorWithUILoadingController
|
||||
{
|
||||
protected override async UniTask<LoadingResult> _DoLoading()
|
||||
{
|
||||
_destProgress = 10f;
|
||||
GC.Collect();
|
||||
_destProgress = 20f;
|
||||
|
||||
return LoadingResult.Success;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 03b301ad30164ad0b75da22d912cec7b
|
||||
timeCreated: 1710136713
|
||||
|
|
@ -126,4 +126,16 @@ public class GameSceneHelper : Singlenton<GameSceneHelper>
|
|||
return null;
|
||||
return _uiViewSceneStack.Peek().Item2;
|
||||
}
|
||||
|
||||
public async void ChangeSceneForUIView(string scenePath, LoadSceneMode loadSceneMode = LoadSceneMode.Single)
|
||||
{
|
||||
var uiViewScene = _uiViewSceneStack.Pop();
|
||||
var sceneHandle = await GameSceneManager.Instance.LoadSceneAsync(scenePath, loadSceneMode);
|
||||
if (sceneHandle == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_uiViewSceneStack.Push((scenePath, sceneHandle));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -284,6 +284,10 @@ public class UIScrollFocusHelper: MonoBehaviour, IBeginDragHandler, IDragHandler
|
|||
|
||||
public void ChangeIndex(bool isAdd)
|
||||
{
|
||||
if (_isPlayingMove)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_DoMoveContent(isAdd);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,98 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.UIElements;
|
||||
using Button = UnityEngine.UI.Button;
|
||||
using Image = UnityEngine.UI.Image;
|
||||
using Toggle = UnityEngine.UI.Toggle;
|
||||
using ScrollView = PhxhSDK.PhxhScrollView;
|
||||
|
||||
public class UICameraAndPosterChangeBinder
|
||||
{
|
||||
|
||||
public static void GetComponents(UICameraAndPosterChangeController window)
|
||||
{
|
||||
window.Image_CBG = window.GetComponent<Image>("ImageBG/Image_CBG");
|
||||
window.Button_Back = window.GetComponent<Button>("ImageBG/UI_Topbtn/Button_Back");
|
||||
window.Text_Back = window.GetComponent<TMP_Text>("ImageBG/UI_Topbtn/Button_Back/Text_Back");
|
||||
window.Button_Home = window.GetComponent<Button>("ImageBG/UI_Topbtn/Button_Home");
|
||||
window.Button_Scene01 = window.GetComponent<Button>("ImageBG/SceneChange/Button_Scene01");
|
||||
window.Button_Scene02 = window.GetComponent<Button>("ImageBG/SceneChange/Button_Scene02");
|
||||
window.Image_View01 = window.GetComponent<Image>("ImageBG/SceneChange/Button_Scene02/Image_View01");
|
||||
window.Image_View02 = window.GetComponent<Image>("ImageBG/SceneChange/Button_Scene02/Image_View02");
|
||||
window.Image_View03 = window.GetComponent<Image>("ImageBG/SceneChange/Button_Scene02/Image_View03");
|
||||
window.Text_ChangeThisScene = window.GetComponent<TMP_Text>("ImageBG/SceneChange/Button_Scene02/Text_ChangeThisScene");
|
||||
window.Button_Scene03 = window.GetComponent<Button>("ImageBG/SceneChange/Button_Scene03");
|
||||
window.Button_Scene04 = window.GetComponent<Button>("ImageBG/SceneChange/Button_Scene04");
|
||||
window.Button_Confirm = window.GetComponent<Button>("ImageBG/SceneChange/Button_Confirm");
|
||||
window.Text_BtnConfirm = window.GetComponent<TMP_Text>("ImageBG/SceneChange/Button_Confirm/Text_BtnConfirm");
|
||||
window.Button_Cancel = window.GetComponent<Button>("ImageBG/SceneChange/Button_Cancel");
|
||||
window.Button_ChangePoster = window.GetComponent<Button>("ImageBG/Button_ChangePoster");
|
||||
window.Text_ChangePoster = window.GetComponent<TMP_Text>("ImageBG/Button_ChangePoster/Text_ChangePoster");
|
||||
window.Button_ChangeScene = window.GetComponent<Button>("ImageBG/Button_ChangeScene");
|
||||
window.Text_ChangeScene = window.GetComponent<TMP_Text>("ImageBG/Button_ChangeScene/Text_ChangeScene");
|
||||
window.Image_Menu = window.GetComponent<Image>("ImageBG/PosterChange/Image_Menu");
|
||||
window.Button_Rarity = window.GetComponent<Button>("ImageBG/PosterChange/Image_Menu/Button_Rarity");
|
||||
window.Text_Rarity = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Image_Menu/Button_Rarity/Text_Rarity");
|
||||
window.Text_RaritySelect = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Image_Menu/Button_Rarity/Text_Rarity/Text_RaritySelect");
|
||||
window.Button_Level = window.GetComponent<Button>("ImageBG/PosterChange/Image_Menu/Button_Level");
|
||||
window.Text_Lv = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Image_Menu/Button_Level/Text_Lv");
|
||||
window.Text_LvSelect = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Image_Menu/Button_Level/Text_Lv/Text_LvSelect");
|
||||
window.Image_Lv = window.GetComponent<Image>("ImageBG/PosterChange/Image_Menu/Button_Level/Image_Lv");
|
||||
window.Image_Down1 = window.GetComponent<Image>("ImageBG/PosterChange/Image_Menu/Button_Level/Image_Lv/Image_Down1");
|
||||
window.Button_AdvanceLevel = window.GetComponent<Button>("ImageBG/PosterChange/Image_Menu/Button_AdvanceLevel");
|
||||
window.Text_AdvSelect = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Image_Menu/Button_AdvanceLevel/Text_AdvSelect");
|
||||
window.Text_Advance = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Image_Menu/Button_AdvanceLevel/Text_Advance");
|
||||
window.Image_Down2 = window.GetComponent<Image>("ImageBG/PosterChange/Image_Menu/Button_AdvanceLevel/ImageDefault/Image_Down2");
|
||||
window.Dropdown_ChangeLevel = window.GetComponent<TMP_Dropdown>("ImageBG/PosterChange/Image_Menu/Dropdown_ChangeLevel");
|
||||
window.Text_Profession = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Image_Menu/Other/Job/Text_Profession");
|
||||
window.Button_Confirm01 = window.GetComponent<Button>("ImageBG/PosterChange/Button_Confirm01");
|
||||
window.Text_Confirm = window.GetComponent<TMP_Text>("ImageBG/PosterChange/Button_Confirm01/Text_Confirm");
|
||||
window.Button_Cancel01 = window.GetComponent<Button>("ImageBG/PosterChange/Button_Cancel01");
|
||||
|
||||
}
|
||||
|
||||
/****** 定义变量语句 ******
|
||||
public Image Image_CBG;
|
||||
public Button Button_Back;
|
||||
public TMP_Text Text_Back;
|
||||
public Button Button_Home;
|
||||
public Button Button_Scene01;
|
||||
public Button Button_Scene02;
|
||||
public Image Image_View01;
|
||||
public Image Image_View02;
|
||||
public Image Image_View03;
|
||||
public TMP_Text Text_ChangeThisScene;
|
||||
public Button Button_Scene03;
|
||||
public Button Button_Scene04;
|
||||
public Button Button_Confirm;
|
||||
public TMP_Text Text_BtnConfirm;
|
||||
public Button Button_Cancel;
|
||||
public Button Button_ChangePoster;
|
||||
public TMP_Text Text_ChangePoster;
|
||||
public Button Button_ChangeScene;
|
||||
public TMP_Text Text_ChangeScene;
|
||||
public Image Image_Menu;
|
||||
public Button Button_Rarity;
|
||||
public TMP_Text Text_Rarity;
|
||||
public TMP_Text Text_RaritySelect;
|
||||
public Button Button_Level;
|
||||
public TMP_Text Text_Lv;
|
||||
public TMP_Text Text_LvSelect;
|
||||
public Image Image_Lv;
|
||||
public Image Image_Down1;
|
||||
public Button Button_AdvanceLevel;
|
||||
public TMP_Text Text_AdvSelect;
|
||||
public TMP_Text Text_Advance;
|
||||
public Image Image_Down2;
|
||||
public TMP_Dropdown Dropdown_ChangeLevel;
|
||||
public TMP_Text Text_Profession;
|
||||
public Button Button_Confirm01;
|
||||
public TMP_Text Text_Confirm;
|
||||
public Button Button_Cancel01;
|
||||
|
||||
****** End ******/
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2c064810fc5d33e43a8a237fe45584c9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,593 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using BehaviorDesigner.Runtime.Tasks.Unity.UnityGameObject;
|
||||
using cfg.CharacterCfg;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.UIElements;
|
||||
using Button = UnityEngine.UI.Button;
|
||||
using Image = UnityEngine.UI.Image;
|
||||
using Toggle = UnityEngine.UI.Toggle;
|
||||
using ScrollView = PhxhSDK.PhxhScrollView;
|
||||
using Framework;
|
||||
using Gameplay;
|
||||
using PhxhSDK;
|
||||
|
||||
public class UICameraAndPosterChangeController : UIWindow
|
||||
{
|
||||
//UI GameObj
|
||||
///Auto Gen Start///
|
||||
public Image Image_CBG;
|
||||
public Button Button_Back;
|
||||
public TMP_Text Text_Back;
|
||||
public Button Button_Home;
|
||||
public Button Button_Scene01;
|
||||
public Button Button_Scene02;
|
||||
public Image Image_View01;
|
||||
public Image Image_View02;
|
||||
public Image Image_View03;
|
||||
public TMP_Text Text_ChangeThisScene;
|
||||
public Button Button_Scene03;
|
||||
public Button Button_Scene04;
|
||||
public Button Button_Confirm;
|
||||
public TMP_Text Text_BtnConfirm;
|
||||
public Button Button_Cancel;
|
||||
public Button Button_ChangePoster;
|
||||
public TMP_Text Text_ChangePoster;
|
||||
public Button Button_ChangeScene;
|
||||
public TMP_Text Text_ChangeScene;
|
||||
public Image Image_Menu;
|
||||
public Button Button_Rarity;
|
||||
public TMP_Text Text_Rarity;
|
||||
public TMP_Text Text_RaritySelect;
|
||||
public Button Button_Level;
|
||||
public TMP_Text Text_Lv;
|
||||
public TMP_Text Text_LvSelect;
|
||||
public Image Image_Lv;
|
||||
public Image Image_Down1;
|
||||
public Button Button_AdvanceLevel;
|
||||
public TMP_Text Text_AdvSelect;
|
||||
public TMP_Text Text_Advance;
|
||||
public Image Image_Down2;
|
||||
public TMP_Dropdown Dropdown_ChangeLevel;
|
||||
public TMP_Text Text_Profession;
|
||||
public Button Button_Confirm01;
|
||||
public TMP_Text Text_Confirm;
|
||||
public Button Button_Cancel01;
|
||||
|
||||
///Auto Gen End///
|
||||
|
||||
//test data
|
||||
private List<string> _testImgList = new()
|
||||
{
|
||||
"Assets/Art/UI/Texture/CameraChange/NewCameraChange/UI_Pic01.png",
|
||||
"Assets/Art/UI/Texture/CameraChange/NewCameraChange/UI_Pic02.png",
|
||||
"Assets/Art/UI/Texture/CameraChange/NewCameraChange/UI_Pic03.png",
|
||||
"Assets/Art/UI/Texture/CameraChange/NewCameraChange/UI_Pic04.png",
|
||||
};
|
||||
|
||||
private enum PageEnum
|
||||
{
|
||||
Scene,
|
||||
Poster
|
||||
}
|
||||
|
||||
private PageEnum _curPage = PageEnum.Scene;//当前切页
|
||||
private GameObject _sceneObj;
|
||||
private GameObject _posterObj;
|
||||
|
||||
//场景切换页面
|
||||
private ScrollRect _sceneScrollRect;
|
||||
private GameObject _sceneScrollContent;
|
||||
//场景滑动列表相关
|
||||
private List<float> _itemPosYList;
|
||||
private List<GameObject> _sceneItemList;
|
||||
private int _curSceneIndex;
|
||||
private int _curCameraPosIdx;
|
||||
private float _scrollMidPosY;
|
||||
|
||||
private RectTransform _itemFullRectTrans;
|
||||
private RectTransform _itemRectTrans;
|
||||
|
||||
//立绘切换页面
|
||||
private ScrollView _scrollPosterPool;
|
||||
private ScrollView _scrollSkin;
|
||||
|
||||
private List<uint> _charIDList;
|
||||
private int _curSelect; //当前选择的角色
|
||||
private int _curSelectSkin; //当前选择的皮肤
|
||||
private List<DataCharacterSkin> _skinDataList; //当前选择角色的皮肤列表
|
||||
|
||||
// deal with input data
|
||||
public override void PreLoad(object data = null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Use this for initialization
|
||||
public override void OnInit()
|
||||
{
|
||||
//bind UI GameObj
|
||||
UICameraAndPosterChangeBinder.GetComponents(this);
|
||||
|
||||
_sceneObj = FindObj("ImageBG/SceneChange");
|
||||
_posterObj = FindObj("ImageBG/PosterChange");
|
||||
_sceneScrollRect = GetComponent<ScrollRect>("ImageBG/SceneChange/SceneScrollView");
|
||||
_sceneScrollContent = CommonUtils.GetGameObject(_sceneScrollRect.gameObject,"Viewport/Content");
|
||||
|
||||
_sceneItemList = new List<GameObject>();
|
||||
_itemPosYList = new List<float>();
|
||||
for (int i = 0; i < _sceneScrollContent.transform.childCount; i++)
|
||||
{
|
||||
var item = _sceneScrollContent.transform.GetChild(i);
|
||||
_sceneItemList.Add(item.gameObject);
|
||||
}
|
||||
|
||||
_scrollMidPosY = -_sceneScrollRect.GetComponent<RectTransform>().rect.height * 0.5f;
|
||||
_itemRectTrans = CommonUtils.GetComponent<RectTransform>(_sceneItemList[0], "ButtonScene");
|
||||
_itemFullRectTrans = CommonUtils.GetComponent<RectTransform>(_sceneItemList[0], "ButtonSceneFull");
|
||||
|
||||
_scrollPosterPool = GetComponent<ScrollView>("ImageBG/PosterChange/ChangeHeadPic/PosterScrollView");
|
||||
_scrollSkin = GetComponent<ScrollView>("ImageBG/PosterChange/ChangeSkin/SkinScrollView");
|
||||
|
||||
_charIDList = new List<uint>();
|
||||
var charList = CharacterDataInfoManager.Instance.DataList;
|
||||
for (int i = 0; i < charList.Count; i++)
|
||||
{
|
||||
_charIDList.Add(charList[i].Uid);
|
||||
}
|
||||
|
||||
_sceneScrollRect.onValueChanged.AddListener(_OnScrollViewValChange);
|
||||
|
||||
BindButton(Button_Back, _OnClickClose);
|
||||
BindButton(Button_ChangePoster, _OnClickPosterTab);
|
||||
BindButton(Button_ChangeScene, _OnClickSceneTab);
|
||||
BindButton(Button_Confirm, _OnClickSceneConfirm);
|
||||
BindButton(Button_Confirm01, _OnClickPosterConfirm);
|
||||
}
|
||||
|
||||
//invoke when open window
|
||||
protected override void OnShowWindow(object data = null)
|
||||
{
|
||||
_InitSceneScroll();
|
||||
_InitPosterScroll();
|
||||
_Refresh();
|
||||
}
|
||||
|
||||
|
||||
//invoke when reload window
|
||||
protected override void OnReloadWindow(object data = null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//invoke when close window
|
||||
protected override void OnHideWindow()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//invoke when destroy
|
||||
public override void OnRelease()
|
||||
{
|
||||
base.OnRelease();
|
||||
_sceneItemList.Clear();
|
||||
_itemPosYList.Clear();
|
||||
}
|
||||
|
||||
#region #Event Function
|
||||
|
||||
protected override void OnUpdate()
|
||||
{
|
||||
base.OnUpdate();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 刷新界面
|
||||
/// </summary>
|
||||
#region RefreshPanel
|
||||
|
||||
private void _Refresh()
|
||||
{
|
||||
_RefreshTab();
|
||||
}
|
||||
|
||||
private void _RefreshTab()
|
||||
{
|
||||
switch (_curPage)
|
||||
{
|
||||
case PageEnum.Scene:
|
||||
{
|
||||
Button_ChangePoster.gameObject.SetActive(false);
|
||||
Button_ChangeScene.gameObject.SetActive(true);
|
||||
_sceneObj.SetActive(true);
|
||||
_posterObj.SetActive(false);
|
||||
break;
|
||||
}
|
||||
case PageEnum.Poster:
|
||||
{
|
||||
Button_ChangePoster.gameObject.SetActive(true);
|
||||
Button_ChangeScene.gameObject.SetActive(false);
|
||||
_sceneObj.SetActive(false);
|
||||
_posterObj.SetActive(true);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void _RefreshPanel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更换场景
|
||||
/// </summary>
|
||||
#region ScenePage
|
||||
|
||||
private void _RefreshScenePage()
|
||||
{
|
||||
_RefreshSceneListView();
|
||||
}
|
||||
|
||||
private void _RefreshSceneListView()
|
||||
{
|
||||
if(_sceneScrollContent)
|
||||
{
|
||||
_InitSceneScroll();
|
||||
}
|
||||
|
||||
_RefreshSceneScroll();
|
||||
}
|
||||
|
||||
private void _RefreshSceneScroll()
|
||||
{
|
||||
for (int i = 0; i < _sceneItemList.Count; i++)
|
||||
{
|
||||
var item = _sceneItemList[i];
|
||||
_RefreshSingleItem(item, i);
|
||||
}
|
||||
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(_sceneScrollContent.GetComponent<RectTransform>());
|
||||
}
|
||||
|
||||
private void _RefreshSingleItem(GameObject go, int index)
|
||||
{
|
||||
var btnScene = CommonUtils.GetComponent<Button>(go, "ButtonScene");
|
||||
var btnFull = CommonUtils.GetComponent<Button>(go, "ButtonSceneFull");
|
||||
if (_curSceneIndex == index)
|
||||
{
|
||||
btnFull.gameObject.SetActive(true);
|
||||
btnScene.gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
btnScene.gameObject.SetActive(true);
|
||||
btnFull.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void _OnScrollViewValChange(Vector2 pos)
|
||||
{
|
||||
var curIndex = GetClosestIdx();
|
||||
if (curIndex == _curSceneIndex)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_curSceneIndex = curIndex;
|
||||
_SetPosYListData();
|
||||
_RefreshSceneScroll();
|
||||
}
|
||||
|
||||
private int GetClosestIdx()
|
||||
{
|
||||
int closest = _curSceneIndex;
|
||||
|
||||
var minDis = CommonUtils.GetComponent<RectTransform>(_sceneItemList[0], "ButtonScene").rect.height;
|
||||
var maxDis = CommonUtils.GetComponent<RectTransform>(_sceneItemList[0], "ButtonSceneFull").rect.height;
|
||||
for (int i = 0; i < _itemPosYList.Count; i++)
|
||||
{
|
||||
var verticalGroup = _sceneScrollRect.GetComponent<VerticalLayoutGroup>();
|
||||
var contentOffset = _sceneScrollContent.GetComponent<RectTransform>().localPosition.y;
|
||||
var start = contentOffset + _itemPosYList[i];
|
||||
var end = start - minDis;
|
||||
if (_curSceneIndex == i)
|
||||
{
|
||||
end = start - maxDis;
|
||||
}
|
||||
if (_scrollMidPosY < start && _scrollMidPosY > end)
|
||||
{
|
||||
//minDis = dis;
|
||||
closest = i;
|
||||
}
|
||||
}
|
||||
|
||||
return closest;
|
||||
}
|
||||
|
||||
private void _SetPosYListData()
|
||||
{
|
||||
_itemPosYList.Clear();
|
||||
for (int i = 0; i < _sceneItemList.Count; i++)
|
||||
{
|
||||
var item = _sceneItemList[i];
|
||||
var rectTrans = item.GetComponent<RectTransform>();
|
||||
var posY = rectTrans.localPosition.y;
|
||||
_itemPosYList.Add(posY);// - _itemRectTrans.rect.height);
|
||||
}
|
||||
}
|
||||
|
||||
private void _InitSceneScroll()
|
||||
{
|
||||
_curSceneIndex = 1;
|
||||
_RefreshSceneScroll();
|
||||
_SetPosYListData();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 更换看板娘
|
||||
/// </summary>
|
||||
#region PosterPage
|
||||
|
||||
private void _RefreshPosterPage()
|
||||
{
|
||||
_CreatePoolScroll();
|
||||
}
|
||||
|
||||
private void _InitPosterScroll()
|
||||
{
|
||||
_InitSelectCharacter();
|
||||
_CreatePoolScroll();
|
||||
_CreateSkinScroll();
|
||||
}
|
||||
|
||||
//右侧角色池列表
|
||||
private void _CreatePoolScroll()
|
||||
{
|
||||
var content = CommonUtils.GetGameObject(_scrollPosterPool.gameObject, "Viewport/Content");
|
||||
if (content)
|
||||
{
|
||||
CommonUtils.DestoryAllChildGameObject(content);
|
||||
}
|
||||
|
||||
_RefreshPoolScroll();
|
||||
}
|
||||
|
||||
private void _RefreshPoolScroll()
|
||||
{
|
||||
_scrollPosterPool.SetUpdateFunc(_RefreshPoolItem);
|
||||
_scrollPosterPool.SetItemCountFunc(_GetPoolCountFunc);
|
||||
_scrollPosterPool.UpdateData(false);
|
||||
_scrollPosterPool.SetButton(_SetPoolItemButton);
|
||||
}
|
||||
|
||||
private async void _RefreshPoolItem(int index, Transform item)
|
||||
{
|
||||
var go = item.gameObject;
|
||||
var uid = _charIDList[index];
|
||||
var headPicPath = CommonUtils.GetDefaultHeadPathByUid(uid);
|
||||
|
||||
var imgHead = CommonUtils.GetComponent<Image>(go, "ImageHead");
|
||||
var btn = CommonUtils.GetComponent<Button>(go, "ImageHead");
|
||||
var goSelect = CommonUtils.GetGameObject(go, "ImageHead/ImageChooseRect");
|
||||
|
||||
imgHead.sprite = await AssetManager.Instance.LoadAssetAsync<Sprite>(headPicPath);
|
||||
goSelect.SetActive(_curSelect == index);
|
||||
ClearBind(btn);
|
||||
BindButton(btn, _OnClickPoolHeadItem, index);
|
||||
|
||||
go.SetActive(true);
|
||||
}
|
||||
|
||||
private int _GetPoolCountFunc()
|
||||
{
|
||||
return _charIDList.Count;
|
||||
}
|
||||
|
||||
private void _SetPoolItemButton(GameObject obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//左侧角色皮肤列表
|
||||
private void _CreateSkinScroll()
|
||||
{
|
||||
var content = CommonUtils.GetGameObject(_scrollSkin.gameObject, "Viewport/Content");
|
||||
if (content)
|
||||
{
|
||||
CommonUtils.DestoryAllChildGameObject(content);
|
||||
}
|
||||
|
||||
_RefreshSkinScroll();
|
||||
}
|
||||
|
||||
private void _RefreshSkinScroll()
|
||||
{
|
||||
_scrollSkin.SetUpdateFunc(_RefreshSkinItem);
|
||||
_scrollSkin.SetItemCountFunc(_GetSkinItemFunc);
|
||||
_scrollSkin.UpdateData(false);
|
||||
_scrollSkin.SetButton(_SetSkinItemButton);
|
||||
}
|
||||
|
||||
private async void _RefreshSkinItem(int index, Transform item)
|
||||
{
|
||||
var go = item.gameObject;
|
||||
//var skinDataCfg = _skinDataList[index];
|
||||
var posterPic =
|
||||
CommonUtils.GetCharacterPicPath((int)_charIDList[_curSelect], CommonUtils.ECharacterPicPathType.Favorable, index + 1);
|
||||
var imgSkin = CommonUtils.GetComponent<Image>(go, "ButtonChange/ImageSkin");
|
||||
var imgSelect = CommonUtils.GetGameObject(go, "ButtonChange/ImageChooseRect");
|
||||
var imgDoSelect = CommonUtils.GetGameObject(go, "ButtonChange/ImageCover");
|
||||
var btn = CommonUtils.GetComponent<Button>(go, "ButtonChange");
|
||||
|
||||
imgSkin.sprite = await AssetManager.Instance.LoadAssetAsync<Sprite>(posterPic);
|
||||
|
||||
imgSelect.SetActive(_curSelectSkin == index);
|
||||
imgDoSelect.SetActive(_curSelectSkin != index);
|
||||
|
||||
ClearBind(btn);
|
||||
BindButton(btn, _OnClickSkinItem, index);
|
||||
go.SetActive(true);
|
||||
}
|
||||
|
||||
private int _GetSkinItemFunc()
|
||||
{
|
||||
return _skinDataList.Count;
|
||||
}
|
||||
|
||||
private void _SetSkinItemButton(GameObject go)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void _ChangeSelectCharacter(int index)
|
||||
{
|
||||
if (_curSelect == index)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_curSelect = index;
|
||||
_curSelectSkin = 1;
|
||||
_skinDataList = CommonUtils.GetCharacterSkinCfgList((int)_charIDList[_curSelect]);
|
||||
}
|
||||
|
||||
private void _InitSelectCharacter()
|
||||
{
|
||||
var storeData =
|
||||
StorageMgr.Instance.GetStorage<MainPanelSceneStoreData>("MainPanelSceneStoreData");
|
||||
if (storeData != null)
|
||||
{
|
||||
_curSelect = storeData.PosterIdx;
|
||||
_curSelectSkin = storeData.PosterSkinIdx;
|
||||
}
|
||||
_skinDataList = CommonUtils.GetCharacterSkinCfgList((int)_charIDList[_curSelect]);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region ClickEvent
|
||||
|
||||
private void _OnClickClose()
|
||||
{
|
||||
CloseWindow();
|
||||
}
|
||||
|
||||
private void _OnClickSceneConfirm()
|
||||
{
|
||||
_ConfirmChangeMainScene();
|
||||
}
|
||||
|
||||
private void _OnClickSceneCancel()
|
||||
{
|
||||
CloseWindow();
|
||||
}
|
||||
|
||||
private void _OnClickPoolHeadItem(int index)
|
||||
{
|
||||
if (index != _curSelect)
|
||||
{
|
||||
_scrollPosterPool.UpdateData();
|
||||
}
|
||||
|
||||
_curSelect = index;
|
||||
_ChangeSelectCharacter(index);
|
||||
_scrollPosterPool.UpdateData();
|
||||
}
|
||||
|
||||
private void _OnClickSkinItem(int index)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void _OnClickPosterConfirm()
|
||||
{
|
||||
_ConfirmChangePoster();
|
||||
}
|
||||
|
||||
private void _OnClickPosterTab()
|
||||
{
|
||||
_curPage = PageEnum.Scene;
|
||||
_RefreshTab();
|
||||
}
|
||||
|
||||
private void _OnClickSceneTab()
|
||||
{
|
||||
_curPage = PageEnum.Poster;
|
||||
_RefreshTab();
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void _ConfirmChangeMainScene()
|
||||
{
|
||||
bool isChange = false;
|
||||
var storeData =
|
||||
StorageMgr.Instance.GetStorage<MainPanelSceneStoreData>("MainPanelSceneStoreData");
|
||||
if (storeData != null)
|
||||
{
|
||||
if (storeData.SceneIdx != _curSceneIndex)
|
||||
{
|
||||
isChange = true;
|
||||
storeData.SceneIdx = _curSceneIndex;
|
||||
}
|
||||
|
||||
if (storeData.CameraPosIdx != _curCameraPosIdx)
|
||||
{
|
||||
isChange = true;
|
||||
storeData.CameraPosIdx = _curCameraPosIdx;
|
||||
}
|
||||
}
|
||||
|
||||
if (isChange)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void _ConfirmChangePoster()
|
||||
{
|
||||
bool isChange = false;
|
||||
var storeData =
|
||||
StorageMgr.Instance.GetStorage<MainPanelSceneStoreData>("MainPanelSceneStoreData");
|
||||
if (storeData != null)
|
||||
{
|
||||
if (storeData.PosterIdx != _curSelect)
|
||||
{
|
||||
isChange = true;
|
||||
storeData.PosterIdx = _curSelect;
|
||||
}
|
||||
|
||||
if (storeData.PosterSkinIdx != _curSelectSkin)
|
||||
{
|
||||
isChange = true;
|
||||
storeData.PosterSkinIdx = _curSelectSkin;
|
||||
}
|
||||
}
|
||||
|
||||
if (isChange)
|
||||
{
|
||||
EventManager.Instance.Send(EventManager.EventName.ChangeMainPanelPoster);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MainPanelSceneStoreData
|
||||
{
|
||||
public int SceneIdx = 0;
|
||||
public int CameraPosIdx = 0;
|
||||
public int PosterIdx = 0;
|
||||
public int PosterSkinIdx = 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0944804212d61704798344377571a404
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -128,7 +128,18 @@ public class UI_MainPanelController: UIWindow
|
|||
BindButton(GetComponent<Button>("CommandSkillBtn"), OnCommandSkillClick);
|
||||
cameraGoList = new List<GameObject>();
|
||||
RegisterScreenAdaption();
|
||||
}
|
||||
//测试增量热更
|
||||
Debug.Log("test mainScene");
|
||||
var go = GameObject.Find("NLD_URP_NLD_Scene_Lamb ert");
|
||||
if (go != null)
|
||||
{
|
||||
Debug.Log("go is not null");
|
||||
Debug.Log(go.GetComponent<MeshFilter>().sharedMesh);
|
||||
Debug.Log(go.GetComponent<MeshRenderer>().sharedMaterial);
|
||||
}
|
||||
|
||||
BindButton(Button_PVP, OnPVPClick);
|
||||
}
|
||||
|
||||
private async void OnCommandSkillClick()
|
||||
{
|
||||
|
|
@ -142,7 +153,8 @@ public class UI_MainPanelController: UIWindow
|
|||
|
||||
private async void OnCameraClick()
|
||||
{
|
||||
await UIManager.Instance.OpenWindow(UINameConst.UI_CameraChange,cameraGoList);
|
||||
//await UIManager.Instance.OpenWindow(UINameConst.UI_CameraChange,cameraGoList);
|
||||
await UIManager.Instance.OpenWindow(UINameConst.UICameraAndPosterChange);
|
||||
}
|
||||
|
||||
private async void OnDrawCardClick()
|
||||
|
|
@ -150,7 +162,11 @@ public class UI_MainPanelController: UIWindow
|
|||
await UIManager.Instance.OpenWindow(UINameConst.UINormalRaffle);
|
||||
}
|
||||
|
||||
|
||||
private async void OnPVPClick()
|
||||
{
|
||||
await UIManager.Instance.OpenWindow(UINameConst.UI_PVPMain);
|
||||
}
|
||||
|
||||
|
||||
private async void OnEmailBtnClick()
|
||||
{
|
||||
|
|
@ -383,7 +399,8 @@ public class UI_MainPanelController: UIWindow
|
|||
StartRefresh();
|
||||
//InputManager.Instance.OnFingerMoveUI += RotateScene;
|
||||
//AudioManager.Instance.RegisterAnalyzer(analyzer);
|
||||
UniTask<int>task= AudioManager.Instance.PlayAudio("DemoProj_M1");
|
||||
//本地暂时关掉BGM
|
||||
//UniTask<int>task= AudioManager.Instance.PlayAudio("DemoProj_M1");
|
||||
isMusicStart = true;
|
||||
//NetHelper.RequestMailList(!MailSystem.Instance.isHaveAll);
|
||||
|
||||
|
|
|
|||
|
|
@ -193,10 +193,10 @@ namespace Gameplay
|
|||
Poster,//立绘查看界面用,全身
|
||||
}
|
||||
|
||||
public static string GetCharacterPicPath(int id, ECharacterPicPathType eCharacterPicPathType)
|
||||
public static string GetCharacterPicPath(int id, ECharacterPicPathType eCharacterPicPathType, int skinID = 1)
|
||||
{
|
||||
cfg.CharacterCfg.SkinCfg postCfg = TableManager.Instance.Tables.SkinCfg;
|
||||
if (postCfg.Get(1, id) == null)
|
||||
if (postCfg.Get(skinID, id) == null)
|
||||
{
|
||||
DebugUtil.LogError("该id的posterCfg尚未配置", id);
|
||||
return @"Assets/Art/UI/Texture/UI_Pic_Main/UI_Poster/Cutivate/Poster_Cul_001.png";
|
||||
|
|
@ -218,6 +218,36 @@ namespace Gameplay
|
|||
return null;
|
||||
|
||||
}
|
||||
|
||||
//获取同一角色的皮肤配置列表
|
||||
public static List<DataCharacterSkin> GetCharacterSkinCfgList(int uid)
|
||||
{
|
||||
var retList = new List<DataCharacterSkin>();
|
||||
var cfg = TableManager.Instance.Tables.SkinCfg;
|
||||
for (int i = 0; i < cfg.DataList.Count; i++)
|
||||
{
|
||||
var dataCfg = cfg.DataList[i];
|
||||
if (dataCfg.RoleID == uid)
|
||||
{
|
||||
int curIdx = i;
|
||||
while (curIdx < cfg.DataList.Count)
|
||||
{
|
||||
var curDataCfg = cfg.DataList[curIdx];
|
||||
if (curDataCfg.RoleID != uid)
|
||||
{
|
||||
break;
|
||||
}
|
||||
retList.Add(cfg.DataList[curIdx]);
|
||||
++curIdx;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return retList;
|
||||
}
|
||||
|
||||
//}
|
||||
//public static string GetVehiclePath(int id)
|
||||
//{
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class GetUIPath :Editor
|
|||
{"ScrollView_", typeof(ScrollView).Name },
|
||||
{"ScrollRect_", typeof(ScrollRect).Name },
|
||||
{"Toggle_", typeof(Toggle).Name },
|
||||
{"Dropdown_", typeof(Dropdown).Name },
|
||||
{"Dropdown_", typeof(TMP_Dropdown).Name },
|
||||
{"InputField_", typeof(TMP_InputField).Name },
|
||||
{"Canvas_", typeof(Canvas).Name }
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue