コード例 #1
0
 public override void OnHurtSb(SkInst inst, float dmg)
 {
     base.OnHurtSb(inst, dmg);
     if (m_MotionEquip != null && null != m_MotionEquip.Weapon && null != m_MotionEquip.Weapon.ItemObj)
     {
         Entity.SendMsg(EMsg.Battle_EquipAttack, m_MotionEquip.Weapon.ItemObj);
     }
 }
コード例 #2
0
        void OnHit(PEDefenceTrigger defenceTrigger, PECapsuleHitResult result)
        {
            if (null != m_PEEntity && m_PEEntity.IsDeath())
            {
                return;
            }

            if (null != defenceTrigger)
            {
                SkEntity hitEntity = defenceTrigger.GetComponentInParent <SkEntity>();
                bool     isTerrain = PETools.PEUtil.IsVoxelOrBlock45(hitEntity);
                if (isTerrain || PETools.PEUtil.CanDamage(m_SkEntity, hitEntity))
                {
                    if (null != onHitSkEntity)
                    {
                        onHitSkEntity(hitEntity);
                    }
                }
                else
                {
                    return;
                }
            }
            if (null != onHitTrigger)
            {
                onHitTrigger(defenceTrigger, result);
            }
            if (null != m_SkEntity)
            {
                m_SkEntity.CollisionCheck(result);
            }
            if (null != m_PEEntity)
            {
                m_PEEntity.SendMsg(EMsg.Battle_AttackHit, result);
            }
#if UNITY_EDITOR
            if (showDebugInfo)
            {
                DrawArrow arrow = new DrawArrow();
                arrow.pos = result.hitPos;
                arrow.rot = Quaternion.LookRotation(result.hitDir);
                hitResults.Add(arrow);
            }
#endif
        }