POW 方块 (U6)

POW 方块 (U6)

是我,POW砖块!我漂浮在空中。用任何东西击打它,让敌人飞出去!

武器

已知问题:当地图中生成足够多的新武器时,它会消失。

这是停滞匕首和力量锤代码的混合体:

public class ItemPOWBlock : MonoBehaviour
{
    受保护的物品物品;
    受保护的物品模块POW方块模块;
    public float forceMultiplier;
    公共碰撞器 POW;
    public float POWTimer = 0f;
    public float POWCooldown = 0.5f;
    public int i = 0;
    protected void Awake()
    {
        item = this.GetComponent<Item>();
        POW = item.transform.Find("Colliders").GetComponentsInChildren<Collider>()[0];
        item.OnCollisionEvent += OnPOWCollisionEvent;
        模块 = 物品数据.获取模块<物品模块能量块>();
        forceMultiplier = module.forceMultiplier;
        item.OnTeleUnGrabEvent += OnTeleUnGrabAction;
        item.OnTeleGrabEvent += OnTeleGrabAction;
    }
    public void OnTeleGrabAction(Handle handle, Telekinesis teleGrabber)
    {
        item.rb.freezeRotation = true;
        如果 (item.rb.isKinematic == true)
        {
            item.rb.isKinematic = false;
        }
    }
    public void OnTeleUnGrabAction(Handle handle, Telekinesis teleGrabber)
    {
        item.rb.isKinematic = true;
        item.rb.freezeRotation = false;
    }
    void OnPOWCollisionEvent(ref CollisionStruct collisionInstance)
    {
        如果(碰撞实例.源碰撞器 == 能量块 || 碰撞实例.目标碰撞器 == 能量块)
        {
            如果 (POW计时器 > POW冷却时间)
            {
                POWTimer = 0f;
                foreach (Creature npc in Creature.list)
                {
                    如果(npc 不等于 玩家角色)
                    {
                        如果(NPC.状态 == 生物.状态.存活 || (NPC.状态 == 生物.状态.昏迷 && NPC.布娃娃.已着地) || (NPC.状态 == 生物.状态.死亡 && NPC.布娃娃.状态 == BS.布娃娃.状态.死亡))
                        {
                            如果 (npc.state == 生物.状态.存活)
                            {
                                npc.ragdoll.SetState(BS.Ragdoll.State.Fallen);
                            }
                            如果(npc.state == 生物.状态.死亡)
                            {
                                npc.ragdoll.SetState(BS.Ragdoll.State.Fallen);
                            }
                            foreach (RagdollPart ragdollPart in npc.ragdoll.parts)
                            {
                                ragdollPart.rb.AddForce(Vector3.up * forceMultiplier, ForceMode.Impulse);
                            }
                        }
                    }
                }
            }
        }
    }
    void FixedUpdate()
    {
        foreach (Creature npc in Creature.list)
        {
            如果(npc.ragdoll.isGrounded && npc.state == 生物.状态.死亡)
            {
                npc.ragdoll.state = BS.Ragdoll.State.Dead;
                npc.ragdoll.isGrounded = false;
            }
        }
        POWTimer += Time.deltaTime;
    }
}