Beispiel #1
0
        public Task <bool> DestroyAsync()
        {
            async UniTask <bool> DestroyTask()
            {
                await UniTask.SwitchToMainThread();

                var count = Region.items.RemoveAll(d => ReferenceEquals(d, m_ItemData));

                if (count == 0)
                {
                    // already destroyed
                    return(false);
                }

                s_SendTakeItem.Invoke(ENetReliability.Reliable,
                                      Regions.EnumerateClients(RegionX, RegionY, ItemManager.ITEM_REGIONS),
                                      RegionX, RegionY, m_ItemData.instanceID);

                return(true);
            }

            return(DestroyTask().AsTask());
        }