【主界面场景切换】提交主界面场景切换功能

main
chenyuqi 2024-03-14 16:41:05 +08:00
parent e974b56b3e
commit 9bdd261ecb
14 changed files with 9107 additions and 122 deletions

View File

@ -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,

View File

@ -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";

View File

@ -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;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 03b301ad30164ad0b75da22d912cec7b
timeCreated: 1710136713

View File

@ -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));
}
}

View File

@ -284,6 +284,10 @@ public class UIScrollFocusHelper: MonoBehaviour, IBeginDragHandler, IDragHandler
public void ChangeIndex(bool isAdd)
{
if (_isPlayingMove)
{
return;
}
_DoMoveContent(isAdd);
}

View File

@ -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 ******/
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2c064810fc5d33e43a8a237fe45584c9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0944804212d61704798344377571a404
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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);

View File

@ -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)
//{

View File

@ -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 }
};