コード例 #1
0
 public void ArrowColliderEnterCallback(Collider collider, float attackPower)
 {
     if ((SlasheonUtility.IsLayerNameMatch(collider.gameObject, "Enemy")))
     {
         MissionActor hitActor = collider.gameObject.GetComponent <MissionActor>();
         hitActor.Damage(attackPower);
         _playerController.InstanceArrowDamageEffect(collider);
     }
 }
コード例 #2
0
    public void SlashColliderEnterCallback(Collider collider)
    {
        if (_playerController.PlayerState.stamina < _playerController.PlayerState.consumptionStaminaSlashHit)
        {
            _playerController.SlashCollider.RemoveCollider();
            return;
        }

        if ((SlasheonUtility.IsLayerNameMatch(collider.gameObject, "Enemy")))
        {
            MissionActor hitActor = collider.gameObject.GetComponent <MissionActor>();
            //一度の斬撃で複数回ダメージ判定しないように調整
            int hitedCount = slashHitEnemyList.Where(x => x.transform.GetInstanceID() == hitActor.transform.GetInstanceID()).Count();
            if (hitedCount == 0)
            {
                hitActor.Damage(_playerController.ActorState.attack);
                _playerController.InstanceSlashDamageEffect(collider, InputManager.Instance.GetTouchPosition(slashTouchID));
                slashHitEnemyList.Add(hitActor);
                UpdateStamina(_playerController.PlayerState.consumptionStaminaSlashHit);
            }
        }
    }