/// <summary> /// 创建掉落道具实例 /// </summary> public void CreateItemCptDrop(ItemsBean itemData, Vector3 position, ItemDropStateEnum ItemCptDropState, Vector3 dropDirection) { if (itemData.itemId == 0) { return; } manager.GetItemsObjById(-1, (objModel) => { GameObject objCommon = Instantiate(gameObject, objModel); ItemCptDrop ItemCptDrop = objCommon.GetComponent <ItemCptDrop>(); ItemCptDrop.SetData(itemData, position, dropDirection); ItemCptDrop.SetItemDropState(ItemCptDropState); }); }
/// <summary> /// 处理-检测周围掉落道具 /// </summary> public void HandleForCheckItemCptDrop() { Collider[] colliderArray = RayUtil.RayToSphere(player.transform.position, rangePickUp, 1 << LayerInfo.Items); if (!colliderArray.IsNull()) { for (int i = 0; i < colliderArray.Length; i++) { Collider itemCollider = colliderArray[i]; ItemCptDrop ItemCptDrop = itemCollider.GetComponent <ItemCptDrop>(); //如果是丢掉的道具,并且拾取状态为可拾取 if (ItemCptDrop != null && ItemCptDrop.GetItemCptDropState() == ItemDropStateEnum.DropPick) { ItemCptDrop.PickItem(player.transform, speedPickUp); } } } }