| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 | 
							- using System;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using FancyScrollView.FocusOn;
 
- using UnityEngine;
 
- using UnityEngine.SceneManagement;
 
- using UnityEngine.UI;
 
- using EasingCore;
 
- using JC;
 
- using FancyScrollView;
 
- [Serializable]
 
- public class LevelInfo
 
- {
 
-     public string Name;
 
-     public Sprite Icon;
 
-     //自动语言转换id
 
-     public string textId;
 
-     //添加哪个语言脚本
 
-     public int languageType = 0;
 
-     public int startGameType = -1;
 
- }
 
- public class HomeView_ChallengeOption : MonoBehaviour
 
- {
 
-     public GameObject entryList;
 
-     [SerializeField] ScrollView scrollView = default;
 
-     [SerializeField] Button prevCellButton = default;
 
-     [SerializeField] Button nextCellButton = default;
 
-     [SerializeField] ScrollPanel productsPanel;
 
-     [Tooltip("所有关卡的设置信息")]
 
-     public List<LevelInfo> levelInfos;
 
-     List<LevelInfo> _tempLevelInfos = new List<LevelInfo>();
 
-     //弓箭游戏列表
 
-     List<string> gameTextIds = new List<string> { "OlynpicArchery", "WolfHunt", "LevelWildAttack", "FruitExpert", "LevelDuckHunter", "HareHunt", "PheasuntHunt"};
 
-     //切换枪械情况下切换这个游戏列表
 
-     //OlynpicArcheryGun 是射击版的OlynpicArchery
 
-     List<string> gameTextIds_gun = new List<string> { "OlynpicArcheryGun", "FruitExpert", "LevelDuckHunter", "MovingTarget" };
 
-     //#if UNITY_ANDROID
 
-     //    List<String> gameTextIds = new List<string> { "OlynpicArchery", "LevelWildAttack", "FruitExpert", "LevelDuckHunter" };
 
-     //#else
 
-     //    List<String> gameTextIds = new List<string>{ "OlynpicArchery", "WolfHunt", "LevelWildAttack", "FruitExpert", "LevelDuckHunter", "HareHunt", "PheasuntHunt" };
 
-     //#endif
 
-     void Awake()
 
-     {
 
-         //根据条件激活野鸡关卡或野鸭关卡
 
-         //if (CommonConfig.AppArea == 0)
 
-         //{
 
-         //    entryList.transform.Find("Item1").gameObject.SetActive(GlobalDataTemp.pkMatchType != PKMatchType.None);
 
-         //    entryList.transform.Find("Item3").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
 
-         //}
 
-         //else
 
-         //{
 
-         //    entryList.transform.Find("Item1").gameObject.SetActive(true);
 
-         //    entryList.transform.Find("Item3").gameObject.SetActive(false);
 
-         //}
 
-         //entryList.transform.Find("Item4").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
 
-         //transform.Find("BtnFruitMaster").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
 
-         //增加了对两个按钮事件的响应
 
-         prevCellButton.onClick.AddListener(() => {
 
-             scrollView.SelectPrevCell();
 
-         });
 
-         nextCellButton.onClick.AddListener(() => {
 
-             scrollView.SelectNextCell();
 
-         });
 
-         //对选中的当前对象的下标的显示
 
-         scrollView.OnSelectionChanged(OnSelectionChanged);
 
-     }
 
-     void Start()
 
-     {
 
-    
 
-         //按 gameTextIds 重新排序
 
-         //for (int i = 0; i < gameTextIds.Count; i++)
 
-         //{
 
-         //    for (int j = 0; j < levelInfos.Count; j++)
 
-         //    {
 
-         //        if (gameTextIds[i] == levelInfos[j].textId) 
 
-         //        {
 
-         //            _tempLevelInfos.Add(levelInfos[j]);
 
-         //            break;
 
-         //        }
 
-         //    }
 
-         //}
 
-         //var _items = Enumerable.Range(0, 21)
 
-         //    .Select(i => {
 
-         //        int _index = Mathf.FloorToInt(i % _tempLevelInfos.Count);
 
-         //        LevelInfo levelInfo = _tempLevelInfos[_index];
 
-         //        //Debug.Log("初始化:"+i+",index:"+_index);
 
-         //        return new ItemData(levelInfo.Name, levelInfo.Icon, levelInfo.textId, levelInfo.languageType);
 
-         //    })
 
-         //    .ToArray();
 
-         //scrollView.UpdateData(_items);
 
-         //scrollView.SelectCell(0);
 
-     }
 
-     //通过面板 HomeView_TopBarView.onChangeTypeEvent 调用
 
-     //根据选择的模式来切换内容 
 
-     public void refreshList(DeviceMode deviceMode) {
 
-         Debug.Log("refreshList:"+ deviceMode);
 
-         List<string> _gameTextIds = new();
 
-         if (deviceMode == DeviceMode.Archery)
 
-         {
 
-             _gameTextIds = gameTextIds;
 
-         }
 
-         else if (deviceMode == DeviceMode.Gun) {
 
-             _gameTextIds = gameTextIds_gun;
 
-         }
 
-         if (_gameTextIds.Count == 0) return;
 
-         _tempLevelInfos.Clear();
 
-         //按 gameTextIds 重新排序
 
-         for (int i = 0; i < _gameTextIds.Count; i++)
 
-         {
 
-             for (int j = 0; j < levelInfos.Count; j++)
 
-             {
 
-                 if (_gameTextIds[i] == levelInfos[j].textId)
 
-                 {
 
-                     _tempLevelInfos.Add(levelInfos[j]);
 
-                     break;
 
-                 }
 
-             }
 
-         }
 
-         Debug.Log("图标生成的数量是:"+ _gameTextIds.Count * 3);
 
-         var _items = Enumerable.Range(0, _gameTextIds.Count*3)
 
-             .Select(i => {
 
-                 int _index = Mathf.FloorToInt(i % _tempLevelInfos.Count);
 
-                 LevelInfo levelInfo = _tempLevelInfos[_index];
 
-                 //Debug.Log("初始化:"+i+",index:"+_index);
 
-                 return new ItemData(levelInfo.Name, levelInfo.Icon, levelInfo.textId, levelInfo.languageType);
 
-             })
 
-             .ToArray();
 
-         scrollView.UpdateData(_items);
 
-         scrollView.SelectCell(0);
 
-     }
 
-     void OnDestroy()
 
-     {
 
-     }
 
-     bool _InitProductsPanel = false;
 
-     void InitProductsPanel()
 
-     {
 
-         int page = 1;
 
-         //增加了对两个按钮事件的响应
 
-         prevCellButton.onClick.AddListener(() => {
 
-             productsPanel.MoveNextToCenter(-page);
 
-         });
 
-         nextCellButton.onClick.AddListener(() => {
 
-             productsPanel.MoveNextToCenter(page);
 
-         });
 
-         var games = levelInfos.Select(i => new ItemData(i.Name, i.Icon, i.textId, i.languageType))
 
-                 .ToArray();
 
-         if (!_InitProductsPanel)
 
-         {
 
-             _InitProductsPanel = true;
 
-             productsPanel.onReceiveItemViewInfo.AddListener(onReceiveItemViewInfo);
 
-             productsPanel.onItemChange.AddListener(delegate (RectTransform item, int index) {
 
-                 //Debug.Log("----index:"+ index);
 
-             });
 
-             int gameIndex = 0;
 
-             foreach (var game in games)
 
-             {
 
-                 var gameObj = Instantiate(productsPanel.prefabs[0], productsPanel.GetComponent<ScrollRect>().content);
 
-                 //Game_Cell gameCell = gameObj.GetComponent<Game_Cell>();
 
-                 //gameCell.Initialize(gameIndex, (index)=> {
 
-                 //    OnSelectionChanged(index);
 
-                 //    for (int i = 0; i < productsPanel.itemList.Count; i++)
 
-                 //    {
 
-                 //        productsPanel.itemList[i].GetComponent<Game_Cell>().onSelected(index);
 
-                 //    }
 
-                 //});
 
-                 //gameCell.UpdateContent(game);
 
-                 productsPanel.AddItem(gameObj.GetComponent<RectTransform>());
 
-                 gameIndex++;
 
-             }
 
-             productsPanel.UpdateItems();
 
-             productsPanel.SelectItemByStartIndex();
 
-         }
 
-     }
 
-     void onReceiveItemViewInfo(RectTransform item, Vector3 positionInView, Vector2 viewSize)
 
-     {
 
-         //float distanceRate = Mathf.Abs(positionInView.x * 2) / viewSize.x;
 
-         //float scaleRate = 1f - 0.2f * distanceRate;
 
-         //item.Find("Box").localScale = new Vector3(scaleRate, scaleRate, 1);
 
-     }
 
-     //游戏选择回调 scroll view control
 
-     void OnSelectionChanged(int index, bool selected)
 
-     {
 
-         //Debug.Log(index + ":" + _tempLevelInfos[Mathf.FloorToInt(index % _tempLevelInfos.Count)].Name);
 
-         LevelInfo _levelInfo = _tempLevelInfos[Mathf.FloorToInt(index % _tempLevelInfos.Count)];
 
-         if (_levelInfo.startGameType != -1 && selected)
 
-         {
 
-             JudgmentMode(_levelInfo.startGameType);
 
-         }
 
-         //Debug.Log(str);
 
-     }
 
-     /*
 
-      只有奥运射箭,打野鸡,打野兔,打野狼这四个最初的游戏,才有这三个模式选择;还有三个新的游戏,只有一个本地游戏的模式,那就不用选择,直接进入游戏
 
-      */
 
-     void JudgmentMode(int _startGameType) {
 
-         //_startGameType 这里gameType仅仅用于判断模式
 
-         switch (_startGameType)
 
-         {
 
-             case 1: //奥运射箭
 
-             case 3: //打野兔
 
-             case 4: //打野鸡
 
-             case 5: //打野狼
 
-                 GameMgr.judgmentGameType = _startGameType;
 
-                 AudioMgr.ins.PlayBtn();
 
-                 //进入模式选择页面
 
-                 ViewMgr.Instance.ShowView<ModeSelectView>();
 
-                 //连接弓箭并且是9轴的情况下
 
-                 if (_startGameType == 1 && AimHandler.ins.bRuning9Axis())
 
-                 {
 
-                     ModeSelectView.ins.isShowButton = true;
 
-                 }
 
-                 else
 
-                 {
 
-                     ModeSelectView.ins.isShowButton = false;
 
-                 }
 
-             
 
-                 //if (GlobalData.MyDeviceMode == DeviceMode.Gun)
 
-                 //{
 
-                 //    ModeSelectView.ins.InitGunButtons();
 
-                 //}
 
-                 //else {
 
-                 //    //连接弓箭
 
-                 //    if (_startGameType == 1)
 
-                 //    {
 
-                 //        //当连接HOUYI Pro和其他红外设备时候,双弓射箭也需要屏蔽掉
 
-                 //        if (BluetoothAim.ins.isMainConnectToInfraredDevice())
 
-                 //        {
 
-                 //            ModeSelectView.ins.isShowButton = false;
 
-                 //        }
 
-                 //        else {
 
-                 //            ModeSelectView.ins.isShowButton = true;
 
-                 //        }
 
-                 //    }
 
-                 //    else
 
-                 //    {
 
-                 //        ModeSelectView.ins.isShowButton = false;
 
-                 //    }
 
-                 //    ModeSelectView.ins.InitButtons();
 
-                 //}
 
-                 break;
 
-             default:
 
-                 StartGame(_startGameType);
 
-                 break;
 
-         }
 
-     }
 
-     //只有一个本地游戏的模式,没有其他模式
 
-     void StartGame(int gameType)
 
-     {
 
-         //Debug.Log("gameType:"+ gameType+ ",GlobalDataTemp.pkMatchType:"+ GlobalDataTemp.pkMatchType);
 
-         AudioMgr.ins.PlayBtn();
 
-         GameMgr.gameType = gameType;
 
-         GlobalData.singlePlayerGameType = gameType;
 
-         if (gameType == 15)
 
-         {
 
-             SceneManager.LoadScene("FruitMaster", LoadSceneMode.Single);
 
-         }
 
-         else if (gameType == 14)
 
-         {
 
-             SceneManager.LoadScene("WildAttack", LoadSceneMode.Single);
 
-         }
 
-         else if (gameType == 13)
 
-         {
 
-             SceneManager.LoadScene("DuckHunter", LoadSceneMode.Single);
 
-         }
 
-         else if (gameType == 16) {
 
-             //MovingTarget
 
-             SceneManager.LoadScene("Hyperspace01", LoadSceneMode.Single);
 
-         }
 
-     }
 
-     public void back()
 
-     {
 
-         AudioMgr.ins.PlayBtn();
 
-         ViewMgr.Instance.DestroyView<ChallengeOptionView>();
 
-     }
 
-     public bool OnMenuBack()
 
-     {
 
-         ViewMgr.Instance.DestroyView<ChallengeOptionView>();
 
-         return true;
 
-     }
 
-     string[] GetFormatArgs(string[] array)
 
-     {
 
-         string[] newArray = new string[array.Length - 1];
 
-         for (int i = 1; i < array.Length; i++)
 
-         {
 
-             newArray[i - 1] = array[i];
 
-         }
 
-         return newArray;
 
-     }
 
- }
 
 
  |