コード例 #1
0
    //float timer = 10.0f;
    // Update is called once per frame
    void Update()
    {
        if (m_steering && m_movingEntity && m_entityVision)
        {
            if (m_movingEntity.isInTargetRange())
            {
                m_animInputController.doAttack();
                m_steering.setIsWandering(true);
                m_wanderTimer = m_delayBeforePursue;
                if (m_materialSwap)
                {
                    m_materialSwap.setDefaultMaterial();
                }
            }

            GameObject enemyObject = m_entityVision.GetClosestEnemy();
            if (m_steering && enemyObject)
            {
                m_wanderTimer -= Time.deltaTime;
                if (m_wanderTimer < 0)
                {
                    m_wanderTimer = -1;
                    m_steering.setPursuitTarget(true, enemyObject);
                    if (m_materialSwap)
                    {
                        m_materialSwap.setAltMaterial();
                    }
                }
            }
        }
    }
コード例 #2
0
 public void attackStart()
 {
     if (m_movingEntity)
     {
         if (m_movingEntity.isInTargetRange())
         {
             GameObject targetObject = m_movingEntity.getTargetObject();
             if (targetObject)
             {
                 TakeDamage takeDamageComponent = targetObject.GetComponent <TakeDamage>();
                 if (takeDamageComponent)
                 {
                     takeDamageComponent.applyDamage();
                 }
             }
         }
     }
 }