void HandleOn_SelfDisappear(DropItem dropItem) { dropItem.On_SelfDisappear -= HandleOn_SelfDisappear; dropItem.On_PickUp -= HandleOn_PickUp; _dropItemMap.Remove(dropItem.GetInstanceID()); GameObject.Destroy(dropItem.gameObject); }
private void DropItemObj(WorldPos pos, int itemId, int num) { UserItem userItem = UserItemFactory.GenerateUserItem(itemId, num, (int)ItemPlaceType.Scene); Texture2D tex = GetItemTexture(itemId); float x = UnityEngine.Random.Range(0.2f, 0.8f); float z = UnityEngine.Random.Range(0.2f, 0.8f); DropItem dropItem = GameObject.Instantiate(_dropItemPrefab, new Vector3(pos.x + x, pos.y + 0.5f, pos.z + z), Quaternion.identity) as DropItem; dropItem.transform.parent = this.transform; dropItem.Init(userItem, tex); dropItem.On_PickUp += HandleOn_PickUp; dropItem.On_SelfDisappear += HandleOn_SelfDisappear; _dropItemMap.Add(dropItem.GetInstanceID(), dropItem); }