Example #1
0
        /// <summary>
        /// 移除子项
        /// </summary>
        /// <param name="itemData"></param>
        public void RemoveItem(KGUI_Backpack_ItemData itemData)
        {
            if (!ItemDatas.Contains(itemData))
            {
                return;
            }

            ItemDatas.Remove(itemData);
        }
Example #2
0
        /// <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();
        }
Example #5
0
        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);
        }
Example #7
0
        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();
        }