Пример #1
0
 // Use this for initialization
 new void OnEnable()
 {
     if (!firstTimeActive || InstantiatedByObjectPooler)
     {
         base.OnEnable();
         weaponHolder = transform.FindChild("Weapon Holder").gameObject;
         weapon       = weaponController.currentWeapon as BomberWeapon;
         angle        = weaponHolder.transform.eulerAngles.x;
         //	prevPosition = target.transform.position;
         StartCoroutine(UpdatePath());
     }
     else
     {
         navMeshAgent.enabled = false;
         firstTimeActive      = false;
     }
 }
Пример #2
0
    private IEnumerator attack()
    {
        //		varDistanceToTarget = futureTargetPosition ();
        //		float force = Mathf.Sqrt (varDistanceToTarget * gravity / (Mathf.Sin (2f * (angle * 360 / (2 * Mathf.PI)))));

        anim.SetBool("attack", true);
        yield return(new WaitForSeconds(.8f));

        float forcePart1 = varDistanceToTarget * gravity;
        float forcePart2 = Mathf.Sin(2f * (angle * 2f * Mathf.PI / 360));
        float forcePart3 = forcePart1 / forcePart2;
        float forcePart4 = Mathf.Abs(forcePart3);
        float forceFinal = Mathf.Sqrt(forcePart4);

        if (weapon == null)
        {
            weapon = weaponController.currentWeapon as BomberWeapon;
        }
        weapon.force = forceFinal * 45;
        weapon.fire();
        yield return(null);
    }