当前位置: 首页 > news >正文

做企业销售分析的网站做职业背景调查的网站

做企业销售分析的网站,做职业背景调查的网站,大淘客官网做的网站打不开,微信网站开发企业【完成本集功能后共享1-10集整套代码】 基于 项目02《游戏-09-开发》Unity3D #xff0c; 任务#xff1a;传送至其他场景#xff0c; 首先在场景中加入传送门#xff0c; 设置人物标签#xff0c; using UnityEngine; using UnityEngine.SceneManagement; u…【完成本集功能后共享1-10集整套代码】 基于      项目02《游戏-09-开发》Unity3D      任务传送至其他场景 首先在场景中加入传送门 设置人物标签 using UnityEngine; using UnityEngine.SceneManagement; using static UIManager; public class T : MonoBehaviour{     void OnTriggerEnter(Collider other){         // 检查是否与标签为 Player 的对象发生碰撞         if (other.CompareTag(Player)){             // 异步加载场景             AsyncOperation asyncLoad SceneManager.LoadSceneAsync(Scene02);             GameObject player GameObject.FindGameObjectWithTag(Player);             if (player ! null){                 player.transform.position new Vector3(13f, 13f, 8f);                 player.transform.rotation Quaternion.Euler(0f, -120f, 0f);                 player.transform.localScale new Vector3(1f, 1f, 1f);             }             UIManager.Instance.OpenPanel(UIConst.MainPanel);         }     } } 即可实现传送 放置新传送门 打开角色预制体在角色添加子物体Canvas这样做是让人物传送至其他场景时层级的Canvas可以看到打开的UI 设置Canvas分辨率这样设置可以在打包之后同样显示正确的布局 即完成传送功能 下面把【项目02《游戏-01-开发》】到【项目02《游戏-10-开发》Unity3D】Unity3D   前10集   的脚本提供如下 using UnityEngine; public class CameraCtrl : MonoBehaviour{     public float dis;     public float height;     public float speed;     Transform target;     Vector3 targetPos;     void Start(){         target MainGame.player.transform;     }     void Update(){         transform.LookAt(target.position Vector3.up * 1.5f);         targetPos target.forward * (-dis) target.up * height target.position;     }     void LateUpdate(){         transform.position Vector3.Lerp(transform.position, targetPos, speed);     } } using UnityEngine; public abstract class Living : MonoBehaviour{     public Animator Anim { get; set; }     protected virtual void InitValue() {         Anim GetComponentAnimator();     }     protected void Start(){         InitValue();     } } using UnityEngine; using UnityEngine.InputSystem; public class Player : Living{     float speed 5;     float rotate;     bool isHoldRotate;//保持旋转角度     void Start(){         base.Start();         SetInput();         contro GetComponentCharacterController();     }     CharacterController contro;     Controls action;     void SetInput(){         action new Controls();         action.Enable();         action.PlayerCtrl.Move.started Move;         action.PlayerCtrl.Move.performed Move;         action.PlayerCtrl.Move.canceled StopMove;         action.PlayerCtrl.Jump.started Jump;         action.PlayerCtrl.Rotate.started Rotate;         action.PlayerCtrl.Rotate.performed Rotate;         action.PlayerCtrl.HoldRotate.performed HoldRotate;         action.PlayerCtrl.HoldRotate.canceled HoldRotate;         action.PlayerAtt.SwordOut.started SwordOut;         action.PlayerAtt.Att.started Attack;     }     void Attack(InputAction.CallbackContext obj){         if (Anim.GetCurrentAnimatorStateInfo(0).IsName(Idle_Fight)){             Anim.SetInteger(AttackID, 1);             Anim.SetTrigger(AttackTrigger);         }         else{             int num Anim.GetInteger(AttackID);             if (num 6)                 return;             if (Anim.GetCurrentAnimatorStateInfo(0).IsName(Attack_ num))                 Anim.SetInteger(AttackID, num 1);         }     }     void SwordOut(InputAction.CallbackContext obj){         Anim.SetBool(IsSwordOut, !Anim.GetBool(IsSwordOut));     }     void HoldRotate(InputAction.CallbackContext obj){         if (obj.phase InputActionPhase.Canceled)             isHoldRotate false;         else             isHoldRotate true;     }     void Rotate(InputAction.CallbackContext obj){         rotate obj.ReadValuefloat();     }     void Jump(InputAction.CallbackContext obj){         Anim.SetTrigger(JumpTrigger);     }     void StopMove(InputAction.CallbackContext obj){         Anim.SetBool(IsRun, false);     }     void Move(InputAction.CallbackContext obj){         Anim.SetBool(IsRun, true);     }     void Ctrl(){         if (Anim.GetCurrentAnimatorStateInfo(0).IsName(Sprint) ||          Anim.GetCurrentAnimatorStateInfo(0).IsName(Run) ||          Anim.GetCurrentAnimatorStateInfo(0).IsName(Idle_ver_A) ||          Anim.GetCurrentAnimatorStateInfo(0).IsName(Idle_Fight)){             float f action.PlayerCtrl.Move.ReadValuefloat();             contro.Move(transform.forward * f * Time.deltaTime * speed);             contro.Move(transform.up * -9.8f * Time.deltaTime);             if (isHoldRotate)                 transform.Rotate(transform.up * rotate * 0.13f);         }     }     void Update(){         Ctrl();     } } using System.Collections.Generic; using UnityEngine; using static UIManager; public class MainGame : MonoBehaviour{     public static Player player;     void Awake(){         player GameObject.Find(Player).GetComponentPlayer();         //背包系统         _instance this;         DontDestroyOnLoad(gameObject);     }     //背包系统     static MainGame _instance;     PackageTable packageTable;     public static MainGame Instance{         get{             return _instance;         }     }     void Start(){         UIManager.Instance.OpenPanel(UIConst.MainPanel);     }     //对静态数据加载     public PackageTable GetPackageTable(){         if (packageTable null)             packageTable Resources.LoadPackageTable(TableData/PackageTable);         return packageTable;     } //对动态数据加载      public ListPackageLocalItem GetPackageLocalData(){         return PackageLocalData.Instance.LoadPackage();     }     //根据ID去表格中拿到指定的数据     public PackageTableItem GetPackageItemById(int id){         ListPackageTableItem packageDataList GetPackageTable().dataList;         foreach (PackageTableItem item in packageDataList){             if (item.id id)                 return item;         }         return null;     }     //根据uid去本地数据中拿到动态数据     public PackageLocalItem GetPackageLocalItemByUId(string uid){         ListPackageLocalItem packageDataList GetPackageLocalData();         foreach (PackageLocalItem item in packageDataList){             if (item.uid uid)                 return item;         }         return null;     }     public ListPackageLocalItem GetSortPackageLocalData(){         ListPackageLocalItem localItems PackageLocalData.Instance.LoadPackage();         localItems.Sort(new PackageItemComparer());//添加         return localItems;     }     public class PackageItemComparer : IComparerPackageLocalItem{         public int Compare(PackageLocalItem a, PackageLocalItem b){             PackageTableItem x MainGame.Instance.GetPackageItemById(a.id);             PackageTableItem y MainGame.Instance.GetPackageItemById(b.id);             //首先按star从大到小排序             int starComparison y.star.CompareTo(x.star);             //如果star相同则按id从大到小排序             if (starComparison 0){                 int idComparison y.id.CompareTo(x.id);                 if (idComparison 0)                     return b.level.CompareTo(a.level);                 return idComparison;             }             return starComparison;         }     } //添加抽卡阶段字段     public class GameConst {         //武器类型         public const int PackageTypeWeapon 1;         //食物类型         public const int PackageTypeFood 2;        }     //添加抽卡阶段     //根据类型获取配置的表格数据     public ListPackageTableItem GetPackageTableByType(int type){         ListPackageTableItem packageItems new ListPackageTableItem();         foreach (PackageTableItem packageItem in GetPackageTable().dataList){             if (packageItem.type type)                 packageItems.Add(packageItem);         }         return packageItems;     }     //添加抽卡阶段具体逻辑 随机抽卡获得一件武器     public PackageLocalItem GetLotteryRandom1(){         ListPackageTableItem packageItems GetPackageTableByType(GameConst.PackageTypeWeapon);         int index Random.Range(0, packageItems.Count);         PackageTableItem packageItem packageItems[index];         PackageLocalItem packageLocalItem new(){             uid System.Guid.NewGuid().ToString(),             id packageItem.id,             num 1,             level 1,             isNew CheckWeaponIsNew(packageItem.id),         };         PackageLocalData.Instance.items.Add(packageLocalItem);         PackageLocalData.Instance.SavePackage();         return packageLocalItem;         }     public bool CheckWeaponIsNew(int id) {         foreach (PackageLocalItem packageLocalItem in GetPackageLocalData()) {             if (packageLocalItem.id id)                 return false;         }         return true;     }     //随机抽卡 十连抽     public ListPackageLocalItem GetLotteryRandom10(bool sort false) {         //随机抽卡         ListPackageLocalItem packageLocalItems new();         for (int i 0; i 10; i) {             PackageLocalItem packageLocalItem GetLotteryRandom1();             packageLocalItems.Add(packageLocalItem);         }         //武器排序         if (sort)             packageLocalItems.Sort(new PackageItemComparer());         return packageLocalItems;         }     //添加删除背包道具方法     public void DeletePackageItems(Liststring uids) {         foreach(string uid in uids)             DeletePackageItem(uid,false);         PackageLocalData.Instance.SavePackage();     }     public void DeletePackageItem(string uid, bool needSave true) {         PackageLocalItem packageLocalItem GetPackageLocalItemByUId(uid);         if (packageLocalItem null)             return;         PackageLocalData.Instance.items.Remove(packageLocalItem);         if (needSave)             PackageLocalData.Instance.SavePackage();     } } using System.Collections.Generic; using UnityEngine; public class UIManager{     static UIManager _instance;     Transform _uiRoot;     //路径配置字典     Dictionarystring, string pathDict;     //预制体缓存字典     Dictionarystring, GameObject prefabDict;     //已打开界面的缓存字典     public Dictionarystring, BasePanel panelDict;     public static UIManager Instance{         get{             if (_instance null)                 _instance new UIManager();             return _instance;         }     }     public Transform UIRoot{         get{             if (_uiRoot null){                 if (GameObject.Find(Canvas))                     _uiRoot GameObject.Find(Canvas).transform;                 else                     _uiRoot new GameObject(Canvas).transform;             };             return _uiRoot;         }     }     UIManager(){         InitDicts();     }     void InitDicts(){         prefabDict new Dictionarystring, GameObject();         panelDict new Dictionarystring, BasePanel();         pathDict new Dictionarystring, string(){             { UIConst.PackagePanel,Package/PackagePanel},//**             //添加抽卡路径             { UIConst.LotteryPanel,Lottery/LotteryPanel},             //添加主页面转换路径             { UIConst.MainPanel,MainPanel},         };     }     public BasePanel GetPanel(string name){         BasePanel panel null;         //检查是否已打开         if (panelDict.TryGetValue(name, out panel))             return panel;         return null;     }     public BasePanel OpenPanel(string name){         BasePanel panel null;         //检查是否已打开         if (panelDict.TryGetValue(name, out panel)){             Debug.Log($界面已打开 {name});             return null;         }         //检查路径是否配置         string path ;         if (!pathDict.TryGetValue(name, out path)){             Debug.Log($界面名称错误 或未配置路径 {name});             return null;         }         //使用缓存的预制体         GameObject panelPrefab null;         if (!prefabDict.TryGetValue(name, out panelPrefab)){             string realPath Prefabs/Panel/ path;             panelPrefab Resources.LoadGameObject(realPath) as GameObject;             prefabDict.Add(name, panelPrefab);         }         //打开界面         GameObject panelObject GameObject.Instantiate(panelPrefab, UIRoot, false);         panel panelObject.GetComponentBasePanel();         panelDict.Add(name, panel);         panel.OpenPanel(name);         return panel;     }     //关闭界面     public bool ClosePanel(string name){         BasePanel panel null;         if (!panelDict.TryGetValue(name, out panel)){             Debug.LogError($界面未打开 {name});             return false;         }         panel.ClosePanel();         return true;     }     public class UIConst{         //配置常量         public const string PackagePanel PackagePanel;//**         //添加抽卡阶段         public const string LotteryPanel LotteryPanel;         //添加抽卡的主界面阶段         public const string MainPanel MainPanel;     } } using UnityEngine; public class BasePanel : MonoBehaviour{     protected bool isRemove false;     protected new string name;     protected virtual void Awake() { }     public virtual void SetActive(bool active){         gameObject.SetActive(active);     }     public virtual void OpenPanel(string name){         this.name name;         SetActive(true);     }     public virtual void ClosePanel(){         isRemove true;         SetActive(false);         Destroy(gameObject);         //移除缓存 表示界面未打开         if (UIManager.Instance.panelDict.ContainsKey(name))             UIManager.Instance.panelDict.Remove(name);     } } using System; using System.Collections.Generic; using UnityEditor; using UnityEngine; using static UIManager; public class GMCmd{     [MenuItem(CMCmd/读取表格)]     public static void ReadTable(){         PackageTable packageTable Resources.LoadPackageTable(TableData/PackageTable);         foreach (PackageTableItem packageItem in packageTable.dataList)             Debug.Log(string.Format($[id] {packageItem.id} [name] {packageItem.name}));     }     [MenuItem(CMCmd/创建背包测试数据)]     public static void CreateLocalPackageData(){         //保存数据         PackageLocalData.Instance.items new ListPackageLocalItem();         for (int i 1; i 9; i){             PackageLocalItem packageLocalItem new(){                 uid Guid.NewGuid().ToString(),                 id i,                 num i,                 level i,                 isNew i % 2 i             };             PackageLocalData.Instance.items.Add(packageLocalItem);         }         PackageLocalData.Instance.SavaPackage();     }     [MenuItem(CMCmd/读取背包测试数据)]     public static void ReadLocalPackageData(){         //读取数据         ListPackageLocalItem readItems PackageLocalData.Instance.LoadPackage();         foreach (PackageLocalItem item in readItems)             Debug.Log(item);     }     [MenuItem(CMCmd/打开背包主界面)]     public static void OpenPackagePanel(){         UIManager.Instance.OpenPanel(UIConst.PackagePanel);     } } using UnityEngine; using UnityEngine.UI; public class LotteryCell : MonoBehaviour{     Transform UIImage;     Transform UIStars;     Transform UINew;     PackageLocalItem packageLocalItem;     PackageTableItem packageTableItem;     LotteryPanel uiParent;     void Awake(){         InitUI();         }     void InitUI(){         UIImage transform.Find(Center/Image);         UIStars transform.Find(Bottom/Stars);         UINew transform.Find(Top/New);         UINew.gameObject.SetActive(false);     }     public void Refresh(PackageLocalItem packageLocalItem, LotteryPanel uiParent) {         //数据初始化         this.packageLocalItem packageLocalItem;         this.packageTableItem MainGame.Instance.GetPackageItemById(this.packageLocalItem.id);         this.uiParent uiParent; //刷新UI信息         RefreshImage();     }     void RefreshImage() {         Texture2D t (Texture2D)Resources.Load(this.packageTableItem.imagePath);         Sprite temp Sprite.Create(t, new Rect(0, 0, t.width, t.height), new Vector2(0, 0));         UIImage.GetComponentImage().sprite temp;         }     public void RefreshStars() {         for (int i 0; i UIStars.childCount; i) {             Transform star UIStars.GetChild(i);             if (this.packageTableItem.star i)                 star.gameObject.SetActive(true);             else                 star.gameObject.SetActive(false);         }     } } using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class LotteryPanel : BasePanel{     Transform UIClose;     Transform UICenter;     Transform UILottery10;     Transform UILottery1;     GameObject LotteryCellPrefab;     protected override void Awake(){         base.Awake();         InitUI();         InitPrefab();     }     void InitUI() {         UIClose transform.Find(TopRight/Close);         UICenter transform.Find(Center);         UILottery10 transform.Find(Bottom/Lottery10);         UILottery1 transform.Find(Bottom/Lottery1);         UILottery10.GetComponentButton().onClick.AddListener(OnLottert10Btn);         UILottery1.GetComponentButton().onClick.AddListener(OnLottert1Btn); UIClose.GetComponentButton().onClick.AddListener (OnClose);     }     void OnClose(){         print( OnClose);         ClosePanel();         UIManager.Instance.OpenPanel(UIManager.UIConst.MainPanel);     }     void OnLottert1Btn(){         print( OnLottert1Btn);         //销毁原本的卡片         for (int i 0; i UICenter.childCount; i)             Destroy(UICenter.GetChild(i).gameObject);         //抽卡获得一张新的物品         PackageLocalItem item MainGame.Instance.GetLotteryRandom1();         Transform LotteryCellTran Instantiate(LotteryCellPrefab.transform, UICenter) as Transform;         // 对卡片做信息展示刷新         LotteryCell lotteryCell LotteryCellTran.GetComponentLotteryCell();         lotteryCell.Refresh(item, this);     }     void OnLottert10Btn(){         print( OnLottert10Btn);         ListPackageLocalItem packageLocalItems MainGame.Instance.GetLotteryRandom10(sort: true);         for (int i 0; i UICenter.childCount; i)             Destroy(UICenter.GetChild(i).gameObject);         foreach (PackageLocalItem item in packageLocalItems){             Transform LotteryCellTran Instantiate(LotteryCellPrefab.transform, UICenter) as Transform;             // 对卡片做信息展示刷新             LotteryCell lotteryCell LotteryCellTran.GetComponentLotteryCell();             lotteryCell.Refresh(item, this);         }     }     void InitPrefab() {         LotteryCellPrefab Resources.Load(Prefabs/Panel/Lottery/LotteryItem) as GameObject;     } } using UnityEditor; using UnityEngine; using UnityEngine.UI; public class MainPanel : BasePanel{     Transform UILottery;     Transform UIPackage;     Transform UIQuitBtn;     protected override void Awake(){         base.Awake();         InitUI();     }     void InitUI(){         UILottery transform.Find(Top/LotteryBtn);         UIPackage transform.Find(Top/PackageBtn);         UIQuitBtn transform.Find(BottomLeft/QuitBtn);         UILottery.GetComponentButton().onClick.AddListener(OnBtnLottery);         UIPackage.GetComponentButton().onClick.AddListener(OnBtnPackage);         UIQuitBtn.GetComponentButton().onClick.AddListener(OnQuitGame);     }     void OnQuitGame(){         print(  OnQuitGame);         //EditorApplication.isPlaying false;         Application.Quit();     }     void OnBtnPackage(){         print(  OnBtnPackage);         UIManager.Instance.OpenPanel(UIManager.UIConst.PackagePanel);         ClosePanel();     }     void OnBtnLottery(){         print(  OnBtnLottery);         UIManager.Instance.OpenPanel(UIManager.UIConst.LotteryPanel);         ClosePanel();     } } using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class PackageCell : MonoBehaviour,IPointerClickHandler,IPointerEnterHandler,IPointerExitHandler{     Transform UIIcon;     Transform UIHead;     Transform UINew;     Transform UISelect;     Transform UILevel;     Transform UIStars;     Transform UIDeleteSelect; //添加     Transform UISelectAni;     Transform UIMouseOverAni; //动态数据     PackageLocalItem packageLocalData;     //静态数据     PackageTableItem packageTableItem;     //父物体也就是PackagePanel本身     PackagePanel uiParent; void Awake(){         InitUIName();     }     void InitUIName(){         UIIcon transform.Find(Top/Icon);         UIHead transform.Find(Top/Head);         UINew transform.Find(Top/New);         UILevel transform.Find(Bottom/LevelText);         UIStars transform.Find(Bottom/Stars);         UISelect transform.Find(Select);         UIDeleteSelect transform.Find(DeleteSelect);         //添加         UIMouseOverAni transform.Find(MouseOverAni);         UISelectAni transform.Find(SelectAni); UIDeleteSelect.gameObject.SetActive(false);         //添加         UIMouseOverAni.gameObject.SetActive(false);         UISelectAni.gameObject.SetActive(false);     }     //刷新     public void Refresh(PackageLocalItem packageLocalData, PackagePanel uiParent){         //数据初始化         this.packageLocalData packageLocalData;         this.packageTableItem MainGame.Instance.GetPackageItemById(packageLocalData.id);         this.uiParent uiParent;         //等级信息         UILevel.GetComponentText().text Lv. this.packageLocalData.level.ToString();         //是否是新获得         UINew.gameObject.SetActive(this.packageLocalData.isNew);         Debug.Log(ImagePath: this.packageTableItem.imagePath);         //物品的图片         Texture2D t (Texture2D)Resources.Load(this.packageTableItem.imagePath);         if (t ! null){             Sprite temp Sprite.Create(t, new Rect(0, 0, t.width, t.height), new Vector2(0, 0));             // 继续处理 Sprite 对象             UIIcon.GetComponentImage().sprite temp;         }         else{             // 处理纹理加载失败的情况             Debug.LogError(Failed to load texture.);         }         //刷新星级         RefreshStars();     }     //刷新星级     public void RefreshStars(){         for (int i 0; i UIStars.childCount; i){             Transform star UIStars.GetChild(i);             if (this.packageTableItem.star i)                 star.gameObject.SetActive(true);             else                 star.gameObject.SetActive(false);         }     } public void OnPointerClick(PointerEventData eventData){         //if (this.uiParent.ChooseUid this.packageLocalData.uid)         //    return;         //根据点击设置最新的uid 进而刷新详情界面         //this.uiParent.ChooseUid this.packageLocalData.uid;         //UISelectAni.gameObject.SetActive(true);         //UISelectAni.GetComponentAnimator().SetTrigger(In);         //添加删除方法         if(this.uiParent.curMode PackageMode.delete)             this.uiParent.AddChooseDeleteUid(this.packageLocalData.uid);         if (this.uiParent.ChooseUid this.packageLocalData.uid)             return;         //根据点击设置最新的uid - 进而刷新详情界面         this.uiParent.ChooseUid this.packageLocalData.uid;         UISelectAni.gameObject.SetActive(true);         UISelectAni.GetComponentAnimator().SetTrigger(In);     } public void OnPointerEnter(PointerEventData eventData){         UIMouseOverAni.gameObject.SetActive(true);         UIMouseOverAni.GetComponentAnimator().SetTrigger(In);     } public void OnPointerExit(PointerEventData eventData){         Debug.Log($OnPointerExit {eventData.ToString()});     }     //添加删除方法     public void RefershDeleteState() {         if (this.uiParent.deleteChooseUid.Contains(this.packageLocalData.uid))             this.UIDeleteSelect.gameObject.SetActive(true);         else             this.UIDeleteSelect.gameObject.SetActive(false);     } } using UnityEngine; using UnityEngine.UI; public class PackageDetail : MonoBehaviour{     Transform UIStars;     Transform UIDescription;     Transform UIIcon;     Transform UITitle;     Transform UILevelText;     Transform UISkillDescription; PackageLocalItem packageLocalData;     PackageTableItem packageTableItem;     PackagePanel uiParent; void Awake(){         InitUIName();         Test();     }     void Test() {         Refresh(MainGame.Instance.GetPackageLocalData()[7], null);     }     void InitUIName(){         UIStars transform.Find(Center/Stars);         UIDescription transform.Find(Center/Description);         UIIcon transform.Find(Center/Icon);         UITitle transform.Find(Top/Title);         UILevelText transform.Find(Bottom/LevelPnl/LevelText);         UISkillDescription transform.Find(Bottom/Description);     }     public void Refresh(PackageLocalItem packageLocalData, PackagePanel uiParent) {         //初始化动态数据静态数据父物品逻辑         this.packageLocalData packageLocalData;         this.packageTableItem MainGame.Instance.GetPackageItemById(packageLocalData.id);         this.uiParent uiParent;         //等级         UILevelText.GetComponentText().text string.Format($Lv.{this.packageLocalData.level.ToString()});         //简短描述         UIDescription.GetComponentText().text this.packageTableItem.description;         //详细描述         UISkillDescription.GetComponentText().text this.packageTableItem.skillDescription;         //物品名称         UITitle.GetComponentText().name this.packageTableItem.name;         //图片加载         Texture2D t (Texture2D)Resources.Load(this.packageTableItem.imagePath);         Sprite temp Sprite.Create(t, new Rect(0, 0, t.width, t.height), new Vector2(0, 0));         UIIcon.GetComponentImage().sprite temp;         //星级处理         RefreshStars();     }     public void RefreshStars(){         for (int i 0; i UIStars.childCount; i) {             Transform star UIStars.GetChild(i);             if(this.packageTableItem.star i)                 star.gameObject.SetActive(true);             else                 star.gameObject.SetActive(false);         }     } } using System.Collections.Generic; using UnityEngine; public class PackageLocalData{     static PackageLocalData _instance;     public static PackageLocalData Instance{         get{             if (_instance null)                 _instance new PackageLocalData();             return _instance;         }     }     //存     public ListPackageLocalItem items;     public void SavaPackage(){         string inventoryJson JsonUtility.ToJson(this);         PlayerPrefs.SetString(PackageLocalData, inventoryJson);         PlayerPrefs.Save();     }     //取     public ListPackageLocalItem LoadPackage(){         if (items ! null)             return items;         if (PlayerPrefs.HasKey(PackageLocalData)){             string inventoryJson PlayerPrefs.GetString(PackageLocalData);             PackageLocalData packageLocalData JsonUtility.FromJsonPackageLocalData(inventoryJson);             items packageLocalData.items;             return items;         }         else{             items new ListPackageLocalItem();             return items;         }     }     //添加抽卡阶段     public void SavePackage(){         string inventoryJson JsonUtility.ToJson(this);         PlayerPrefs.SetString(PackageLocalData, inventoryJson);         PlayerPrefs.Save();     } } [System.Serializable] public class PackageLocalItem{     public string uid;     public int id;     public int num;     public int level;     public bool isNew;     public override string ToString(){         return string.Format($[id] {id} [num] {num});     } } using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public enum PackageMode{     normal,     delete,     sort, } public class PackagePanel : BasePanel{     Transform UIMenu;     Transform UIMenuWeapon;     Transform UIMenuFood;     Transform UITabName;     Transform UICloseBtn;     Transform UICenter;     Transform UIScrollView;     Transform UIDetailPanel;     Transform UILeftBtn;     Transform UIRightBtn;     Transform UIDeletePanel;     Transform UIDeleteBackBtn;     Transform UIDeleteInfoText;     Transform UIDeleteConfirmBtn;     Transform UIBottomMenus;     Transform UIDeleteBtn;     Transform UIDetailBtn;     //添加     public GameObject PackageUIItemPrefab;     //添加一列用来容纳所有被选中的物品uid     public Liststring deleteChooseUid;     //添加删除属性     public PackageMode curMode PackageMode.normal;     public void AddChooseDeleteUid(string uid) {         this.deleteChooseUid ?? new Liststring();         if(!this.deleteChooseUid.Contains(uid))             this.deleteChooseUid.Add(uid);         else             this.deleteChooseUid.Remove(uid);         RefreshDeletePanel();     }     //添加删除选中项     void RefreshDeletePanel(){         RectTransform scrollContent UIScrollView.GetComponentScrollRect().content;         foreach(Transform cell in scrollContent){             PackageCell packageCell cell.GetComponentPackageCell();             //todo: 物品刷新选中状态             packageCell.RefershDeleteState();         }     }     //添加 表示当前选中的物品时哪一个uid     string _chooseUid;     public string ChooseUid {         get { return _chooseUid; }         set {             _chooseUid value;             RefreshDetail();         }     }     void RefreshDetail() {         //找到uid对应的动态数据         PackageLocalItem localItem MainGame.Instance.GetPackageLocalItemByUId(ChooseUid);         //刷新详情界面         UIDetailPanel.GetComponentPackageDetail().Refresh(localItem, this);     }     override protected void Awake(){         base.Awake();         InitUI();     }     //添加1     void Start(){         RefreshUI();     }     //添加1     void RefreshUI(){         RefreshScroll();     }     //添加1     void RefreshScroll(){         //清理滚动容器中原本的物品         RectTransform scrollContent UIScrollView.GetComponentScrollRect().content;         for (int i 0; i scrollContent.childCount; i)             Destroy(scrollContent.GetChild(i).gameObject);         //获取本地数据的方法拿到自己身上背包数据 并且根据背包数据初始化滚动容器         foreach (PackageLocalItem localData in MainGame.Instance.GetSortPackageLocalData()){             Transform PackageUIItem Instantiate(PackageUIItemPrefab.transform, scrollContent) as Transform; PackageCell packageCell PackageUIItem.GetComponentPackageCell();             //添加2             packageCell.Refresh(localData, this);         }     }     void InitUI(){         InitUIName();         InitClick();     }     void InitUIName(){         UIMenu transform.Find(TopCenter/Menu);         UIMenuWeapon transform.Find(TopCenter/Menus/Weapon);         UIMenuFood transform.Find(TopCenter/Menus/Food);         UITabName transform.Find(LeftTop/TabName);         UICloseBtn transform.Find(RightTop/Close);         UICenter transform.Find(Center);         UIScrollView transform.Find(Center/Scroll View);         UIDetailPanel transform.Find(Center/DetailPanel);         UILeftBtn transform.Find(Left/Button);         UIRightBtn transform.Find(Right/Button); UIDeletePanel transform.Find(Bottom/DeletePanel);         UIDeleteBackBtn transform.Find(Bottom/DeletePanel/Back);         UIDeleteInfoText transform.Find(Bottom/DeletePanel/InfoText);         UIDeleteConfirmBtn transform.Find(Bottom/DeletePanel/ConfirmBtn);         UIBottomMenus transform.Find(Bottom/BottomMenus);         UIDeleteBtn transform.Find(Bottom/BottomMenus/DeleteBtn);         UIDetailBtn transform.Find(Bottom/BottomMenus/DetailBtn); UIDeletePanel.gameObject.SetActive(false);         UIBottomMenus.gameObject.SetActive(true);     }     void InitClick(){         UIMenuWeapon.GetComponentButton().onClick.AddListener(OnClickWeapon);         UIMenuFood.GetComponentButton().onClick.AddListener(OnClickFood);         UICloseBtn.GetComponentButton().onClick.AddListener(OnClickClose);         UILeftBtn.GetComponentButton().onClick.AddListener(OnClickLeft);         UIRightBtn.GetComponentButton().onClick.AddListener(OnClickRight); UIDeleteBackBtn.GetComponentButton().onClick.AddListener(OnDeleteBack);         UIDeleteConfirmBtn.GetComponentButton().onClick.AddListener(OnDeleteConfirm);         UIDeleteBtn.GetComponentButton().onClick.AddListener(OnDelete);         UIDetailBtn.GetComponentButton().onClick.AddListener(OnDetail);     } void OnDetail(){         print( OnDetail());     }     //进入删除模式 ; 左下角删除按钮     void OnDelete(){         print( OnDelete());         curMode PackageMode.delete;         UIDeletePanel.gameObject.SetActive(true);     }     //确认删除     void OnDeleteConfirm(){         print( OnDeleteConfirm());         if (this.deleteChooseUid null)             return;         if (this.deleteChooseUid.Count 0)             return;         MainGame.Instance.DeletePackageItems(this.deleteChooseUid);         //删除完成后刷新整个背包页面         RefreshUI();     }     //退出删除模式     void OnDeleteBack(){         print( OnDeleteBack());         curMode PackageMode.normal;         UIDeletePanel.gameObject.SetActive(false);         //重置选中的删除列表         deleteChooseUid new Liststring();         //刷新选中状态         RefreshDeletePanel();     }     void OnClickRight(){         print( OnClickRight());     }     void OnClickLeft(){         print( OnClickLeft());     }     void OnClickWeapon(){         print( OnClickWeapon());     }     void OnClickFood(){         print( OnClickFood());     }     void OnClickClose(){         ClosePanel();         UIManager.Instance.OpenPanel(UIManager.UIConst.MainPanel);     } } using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName Water/PackageTable, fileName PackageTable)] public class PackageTable : ScriptableObject{     public ListPackageTableItem dataList new ListPackageTableItem(); } [System.Serializable] public class PackageTableItem{     public int id;     public int type;     public int star;     public string name;     public string description;     public string skillDescription;     public string imagePath; } using UnityEngine; using UnityEngine.SceneManagement; using static UIManager; public class T : MonoBehaviour{     void OnTriggerEnter(Collider other){         // 检查是否与标签为 Player 的对象发生碰撞         if (other.CompareTag(Player)){             // 异步加载场景             AsyncOperation asyncLoad SceneManager.LoadSceneAsync(Scene02);             GameObject player GameObject.FindGameObjectWithTag(Player);             if (player ! null){                 player.transform.position new Vector3(13f, 13f, 8f);                 player.transform.rotation Quaternion.Euler(0f, -120f, 0f);                 player.transform.localScale new Vector3(1f, 1f, 1f);             }             UIManager.Instance.OpenPanel(UIConst.MainPanel);         }     } } using UnityEngine; using UnityEngine.SceneManagement; public class TBack : MonoBehaviour{     void OnTriggerEnter(Collider other){         // 检查是否与标签为 Player 的对象发生碰撞         if (other.CompareTag(Player)){             GameObject player GameObject.FindGameObjectWithTag(Player); if (player ! null){                 // 将玩家物理状态重置为默认值                 Rigidbody playerRigidbody player.GetComponentRigidbody();                 if (playerRigidbody ! null){                     playerRigidbody.velocity Vector3.zero;                     playerRigidbody.angularVelocity Vector3.zero;                     playerRigidbody.isKinematic false;                 }                 // 异步加载场景                 AsyncOperation asyncLoad SceneManager.LoadSceneAsync(Scene04); // 设置加载完成后的回调                 asyncLoad.completed (op) {                     // 在加载完成后重新定位 Player 位置、旋转和尺寸                     player.transform.position new Vector3(100f, 10f, 120f);                     player.transform.rotation Quaternion.Euler(0f, 180f, 0f);                     player.transform.localScale new Vector3(1f, 1f, 1f);                 };             }         }     } } End.
http://www.pierceye.com/news/585508/

相关文章:

  • 西安网站推广优化高端定制网站开发设计建站流程
  • m版网站开发公司如何做网络推广营销
  • 济宁商城网站开发设计网址源码在线查看
  • 网站建设公司介绍百度电脑怎么用wordpress
  • 宛城区网站建设广东seo推广方案
  • 北京建网站定制价格网站风格总结
  • 如何建设一个购物网站wordpress 优酷插件
  • 你们网站做301网站开发规模和工作量的计算
  • 班级网站建设甘肃住房和城乡建设厅网站
  • 网站建设哪家性价比高住房和城乡建设部网站办事大厅里边
  • 外贸小语种网站建设深圳市保障性住房申请官网
  • 阿里云买域名后怎么做网站wordpress创建空白页面
  • 小型公司建网站腾讯风铃wordpress
  • 广州做模板网站的公司怎么区分营销型和展示型的网站
  • 网站推广服务外包1688阿里巴巴国际站首页
  • 深圳学校网站建设wordpress rossi 汉化
  • 课程网站课程资源建设北京吴勇设计工作室
  • 网站建设费用什么意思软件制作专业
  • 扬中本地网站外国做美食视频网站
  • 深圳手机网站制作价钱阜阳中国建设银行官网站
  • 廊坊建设网站企业安卓开发自学教程
  • 做网站虚拟主机配置汉沽手机网站建设
  • 设计一个网站先做哪些构造姑苏区建设局网站
  • 制造业营销外贸网站建设网站管理的内容包括
  • 看电视剧的免费网站app下载网站等保如何做
  • 如何做网站的营销中山vi设计公司
  • 搜索引擎网站使用的排名规则室内设计联盟网页版
  • php 手机网站开发手机端网站开发框架
  • 苏州电信网站备案浙江搜索引擎优化
  • 黄岛网站建设哪家好市体育局网站 两学一做