예제 #1
0
        private void ChargeOneTool(ChargeTool tool, UnityAction onComplete)
        {
            var resources      = elementCtrl.GetElements <ChargeResource>();
            var chargeResource = resources.Find(x => tool.CanLoad(x.type) && x.Actived);
            var value          = Mathf.Min(tool.capacity, chargeResource.current);
            var type           = chargeResource.type;

            tool.PickUpAble = false;
            tool.LoadData(chargeResource.transform.position, new ChargeData(type, value), () =>
            {
                tool.PickUpAble = true;
            });
            chargeResource.Subtruct(value, () => { onComplete.Invoke(); });
        }
예제 #2
0
        /// <summary>
        /// 空间查找Resource
        /// </summary>
        /// <param name="item"></param>
        /// <param name="resourceItem"></param>
        public static bool FindResource(ChargeTool item, out ChargeResource resourceItem)
        {
            var resourceItems = SelectItems <ChargeResource>(ChargeResource.layer, CameraController.Instence.currentCamera.transform.position, item.transform.position, item.Range);

            if (resourceItems == null || resourceItems.Length == 0)
            {
                resourceItem = null;
                return(false);
            }
            else
            {
                for (int i = 0; i < resourceItems.Length; i++)
                {
                    ChargeResource tempItem = resourceItems[i];
                    if (tempItem != null && tempItem.Actived && item.CanLoad(tempItem.type) && tempItem.current > 0)
                    {
                        resourceItem = tempItem;
                        return(true);
                    }
                }
                resourceItem = null;
                return(false);
            }
        }