/// <summary> /// 移除子项 /// </summary> /// <param name="itemData"></param> public void RemoveItem(KGUI_Backpack_ItemData itemData) { if (!ItemDatas.Contains(itemData)) { return; } ItemDatas.Remove(itemData); }
/// <summary> /// 添加子项 /// </summary> /// <param name="itemData"></param> public void AddItem(KGUI_Backpack_ItemData itemData) { var item = ItemDatas.Find(obj => obj.Name.Equals(itemData.Name)); if (item != null) { Debug.LogError("添加的仪器信息,名称与已经添加到集合中的仪器冲突,请重新更改合适的名称"); return; } ItemDatas.Add(itemData); }
/// <summary> /// 抓取背包创建 /// </summary> /// <param name="itemData"></param> /// <param name="handIndex"></param> /// <returns></returns> public GameObject CreatEquipment(KGUI_BackpackItem item, int handIndex) { KGUI_Backpack_ItemData itemData = item.dataConfig; var itemObject = Resources.Load <GameObject>(universalPath + itemData.ItemPath); var go = Instantiate(itemObject) as GameObject; go.transform.position = new Vector3(go.transform.position.x, go.transform.position.y, -16.3f); KGUI_BackPackMark mark = go.GetComponent <KGUI_BackPackMark>() ?? go.AddComponent <KGUI_BackPackMark>(); if (mark != null) { //仪器背包创建调用 mark.OnCreateForBag(item, itemData.Name, handIndex); } //KinectTransfer.SetObjectGrab(go, handIndex); MOperateManager.SetObjectGrab(go, itemData.zValue, handIndex); this._handIndex = handIndex; #region 注释 //========================== //Vector3 screenDevice = KinectTransfer.GetScreenHandPos(handIndex); //Vector3 worldDevice = //========================== //go.transform.DOScale(Vector3.one * 15, 0.1f); //层改变成UI层,然后离开时,在转化为其他层 //设置抓取信息,不管相机如何移动,抓取的物体始终在屏幕坐标中。 //Vector3 position; ////屏幕坐标 //Vector3 screenPoint = KinectTransfer.GetMCKinectPositionStatus(out position, handIndex); //screenPoint.z = itemData.zValue; //float z = /*KinectConfig.mainCamera*/Camera.main.ScreenToWorldPoint(screenPoint).z; //go.transform.position = new Vector3(go.transform.position.x, go.transform.position.y, 0.8f); //go.transform.position = new Vector3(go.transform.position.x, go.transform.position.y,0); #endregion SetObjectFrontUI(false); return(go); }
public void OnInitialized(KGUI_Backpack backpack, KGUI_Backpack_ItemData config) { dataConfig = config; Backpack = backpack; txtName = transform.Find("Name").GetComponent <Text>(); txtNumber = transform.Find("Number").GetComponent <Text>(); Icon = transform.Find("Icon").GetComponent <Image>(); ////设置初始值 //buttonType = ButtonType.Image; //image = GetComponent<Image>(); //normalSprite = Backpack.dataConfig.normalIcon; //enterSprite = Backpack.dataConfig.enterIcon; //disableSprite = Backpack.dataConfig.disableIcon; //获取到路径信息 //normalIcon = config.NormalSprite; //disableIcon = config.DisableSprite; normalIcon = backpack.backpackIcons.GetSprite(config.normalSpritePath); disableIcon = backpack.backpackIcons.GetSprite(config.disableSpritePath); //disableIcon = config.DisableSprite; Icon.sprite = normalIcon; txtName.text = config.Name; if (txtNumber != null) { txtNumber.text = config.number.ToString(); } _equipmentNumber = config.number; _equipmentName = config.Name; GenerateItems = new List <GameObject>(); //刷新 RefreshShow(); }
public void OnInitialized(KGUI_Backpack backpack, KGUI_Backpack_ItemData config) { dataConfig = config; Backpack = backpack; txtName = transform.Find("Name").GetComponent <Text>(); txtNumber = transform.Find("Number").GetComponent <Text>(); Icon = transform.Find("Icon").GetComponent <Image>(); Sprite[] Icons = new Sprite[backpack.backpackIcons.spriteCount]; backpack.backpackIcons.GetSprites(Icons); //normalIcon = Icons.ToList().Find(obj => obj.name.Equals(config.normalSpritePath.Trim())); //disableIcon = Icons.ToList().Find(obj => obj.name.Equals(config.disableSpritePath.Trim())); normalIcon = backpack.backpackIcons.GetSprite(config.normalSpritePath.Trim()); disableIcon = backpack.backpackIcons.GetSprite(config.disableSpritePath.Trim()); Icon.sprite = normalIcon; txtName.text = config.Name; if (txtNumber != null) { txtNumber.text = config.number.ToString(); } _equipmentNumber = config.number; //_equipmentName = config.Name; GenerateItems = new List <GameObject>(); if (dataConfig.isGenerate) { for (int i = 0; i < dataConfig.generateCount; i++) { CreateEquipment(); } } //刷新 RefreshShow(); }
/// <summary> /// 抓取背包创建 /// </summary> /// <param name="itemData"></param> /// <param name="handIndex"></param> /// <returns></returns> public GameObject CreatEquipment(KGUI_BackpackItem item, int handIndex) { KGUI_Backpack_ItemData itemData = item.dataConfig; var go = GenerateEquipment(item, itemData.ItemPath); go.transform.position = new Vector3(go.transform.position.x, go.transform.position.y, -16.3f); //KGUI_BackPackMark mark = go.GetComponent<KGUI_BackPackMark>() ?? go.AddComponent<KGUI_BackPackMark>(); //if (mark != null) //{ // //仪器背包创建调用 // mark.OnCreateForBag(item, itemData.Name, handIndex); //} //KinectTransfer.SetObjectGrab(go, handIndex); MOperateManager.SetObjectGrab(go, handIndex, itemData.zValue); this._handIndex = handIndex; SetObjectFrontUI(false); return(go); }
private void OnGUI() { if (backpack == null) { backpack = Resources.Load <GUISkin>("KGUI"); } if (jsonPath == string.Empty) { jsonPath = Application.streamingAssetsPath + "/Backpack/JsonData/"; } if (boxTitleStyle == null) { boxTitleStyle = new GUIStyle(backpack.box); boxTitleStyle.normal.textColor = Color.white; boxTitleStyle.fontStyle = FontStyle.Bold; boxTitleStyle.alignment = TextAnchor.MiddleCenter; } if (boxValueStyle == null) { boxValueStyle = new GUIStyle(backpack.box); boxValueStyle.normal.textColor = Color.white; boxValueStyle.alignment = TextAnchor.MiddleCenter; } scrollPos = GUILayout.BeginScrollView(scrollPos, GUILayout.Width(position.width), GUILayout.Height(position.height)); GUILayout.BeginVertical(); GUILayout.Space(15); GUILayout.BeginHorizontal(); fileName = EditorGUILayout.TextField(new GUIContent("文件名称:"), fileName, GUILayout.Width(500), GUILayout.Height(18)); GUILayout.Space(10); if (GUILayout.Button(new GUIContent("导入Json数据", "从路径StreamingAssets/Backpack/JsonData下根据名称,导入背包数据"), GUILayout.Width(150), GUILayout.Height(18))) { string jsonData = Json.JsonHelper.ReadJsonString(jsonPath + fileName + ".json"); config = Json.JsonHelper.JsonToObject <KGUI_ItemDataConfig>(jsonData); } GUILayout.EndHorizontal(); GUILayout.Space(10); //GUILayout.Label("背包子项图片路径配置", backpack.label); //config.normalIconPath = EditorGUILayout.TextField("默认图片:", config.normalIconPath, GUILayout.Width(500), GUILayout.Height(18)); //config.enterIconPath = EditorGUILayout.TextField("选中图片:", config.enterIconPath, GUILayout.Width(500), GUILayout.Height(18)); //config.disableIconPath = EditorGUILayout.TextField("禁用图片:", config.disableIconPath, GUILayout.Width(500), GUILayout.Height(18)); //GUILayout.Space(10); GUILayout.Label("背包子项数据配置", backpack.label); if (itemData == null) { itemData = new KGUI_Backpack_ItemData(); } itemData.ID = EditorGUILayout.IntField("仪器ID:", itemData.ID, GUILayout.Width(200), GUILayout.Height(18)); itemData.number = EditorGUILayout.IntField("仪器数量:", itemData.number, GUILayout.Width(200), GUILayout.Height(18)); itemData.Name = EditorGUILayout.TextField("仪器名称:", itemData.Name, GUILayout.Width(350), GUILayout.Height(18)); itemData.normalSpritePath = EditorGUILayout.TextField("仪器默认图片:", itemData.normalSpritePath, GUILayout.Width(500), GUILayout.Height(18)); itemData.disableSpritePath = EditorGUILayout.TextField("仪器禁用图片:", itemData.disableSpritePath, GUILayout.Width(500), GUILayout.Height(18)); itemData.ItemPath = EditorGUILayout.TextField("仪器预制物体路径(Resources路径下):", itemData.ItemPath, GUILayout.Width(500), GUILayout.Height(18)); itemData.zValue = EditorGUILayout.FloatField("生成物体相对摄像机Z轴值:", itemData.zValue, GUILayout.Width(200), GUILayout.Height(18)); GUILayout.Space(10); GUILayout.BeginHorizontal(); if (GUILayout.Button("添加", GUILayout.Width(150), GUILayout.Height(18))) { config.ItemDatas.Add(itemData); var newItem = new KGUI_Backpack_ItemData(); newItem.number = itemData.number; newItem.normalSpritePath = itemData.normalSpritePath; newItem.disableSpritePath = itemData.disableSpritePath; newItem.ItemPath = itemData.ItemPath; newItem.zValue = itemData.zValue; itemData = newItem; } GUILayout.Space(10); if (GUILayout.Button(new GUIContent("导出Json数据", "导出成Json,生成路径会位于KGUI/Resources/Backpack/JsonData下"), GUILayout.Width(150), GUILayout.Height(18))) { var jsonData = Json.JsonHelper.ObjectToJsonString(config); var path = jsonPath + fileName + ".json"; JsonHelper.SaveJson(jsonData, path); Debug.Log("创建成功,路径如下:" + path); } GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.BeginHorizontal(); deleteName = EditorGUILayout.TextField("从配置中删除指定仪器:", deleteName, GUILayout.Width(350), GUILayout.Height(18)); GUILayout.Space(10); if (GUILayout.Button(new GUIContent("删除"), GUILayout.Width(150), GUILayout.Height(18))) { config.RemoveItem(deleteName); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Box("仪器ID", boxTitleStyle, GUILayout.Width(70), GUILayout.Height(22)); GUILayout.Box("仪器名称", boxTitleStyle, GUILayout.Width(70), GUILayout.Height(22)); GUILayout.Box("仪器数量", boxTitleStyle, GUILayout.Width(70), GUILayout.Height(22)); GUILayout.Box("仪器默认图片", boxTitleStyle, GUILayout.Width(200), GUILayout.Height(22)); GUILayout.Box("仪器禁用图片", boxTitleStyle, GUILayout.Width(200), GUILayout.Height(22)); GUILayout.Box("仪器预制物体路径", boxTitleStyle, GUILayout.Width(200), GUILayout.Height(22)); GUILayout.Box("物体相对摄像机Z轴值", boxTitleStyle, GUILayout.Width(130), GUILayout.Height(22)); GUILayout.EndHorizontal(); if (config.ItemDatas != null) { //将已经有的,布局展示 foreach (var item in config.ItemDatas) { GUILayout.BeginHorizontal(); GUILayout.Box(item.ID.ToString(), boxValueStyle, GUILayout.Width(70), GUILayout.Height(20)); if (GUILayout.Button(item.Name, GUILayout.Width(70), GUILayout.Height(20))) { itemData = item; } GUILayout.Box(item.number.ToString(), boxValueStyle, GUILayout.Width(70), GUILayout.Height(20)); GUILayout.Box(item.normalSpritePath, boxValueStyle, GUILayout.Width(200), GUILayout.Height(20)); GUILayout.Box(item.disableSpritePath, boxValueStyle, GUILayout.Width(200), GUILayout.Height(20)); GUILayout.Box(item.ItemPath, boxValueStyle, GUILayout.Width(200), GUILayout.Height(20)); GUILayout.Box(item.zValue.ToString(), boxValueStyle, GUILayout.Width(130), GUILayout.Height(20)); GUILayout.EndHorizontal(); } } GUILayout.EndVertical(); GUILayout.EndScrollView(); }