示例#1
0
    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            print("Fire1 down");
            // Start charging attack
            charging = true;
            chargePercent = 0;
            chargeTime = 0;
            GUI.BarActive = true;
        }

        if (charging)
        {
            if (chargeTime > MaxCharge)
            {
                // Stop attacking - overcharged
                charging = false;
                GUI.ResetBar();
                GUI.BarActive = false;
            }
            else
            {
                // Continue charging attack
                chargeTime += Time.deltaTime;

                //if (false)
                //{
                //    chargePercent = chargeTime;
                //}
                //else
                //{
                    chargePercent = ChargeSmoothing(chargeTime);
                //}

                float percent = chargePercent * 100;
                print("chargePercent: " + chargePercent + ", percent: " + percent + ", time: " + chargeTime);
                GUI.engagePercent = percent;
            }
        }

        if (Input.GetButtonUp("Fire1"))
        {
            print("Fire1 up");
            // Release attack - hit if in a collider box

            GUI.ResetBar();
            GUI.BarActive = false;
            if (charging)
            {
                if (hitableEnemies.Count > 0)
                {
                    HitAccuracy ha = new HitAccuracy();
                    ha.Accuracy = chargePercent;
                    ha.NumberOfHits = hitableEnemies.Count;

                    print(ha.ToString());

                    GUI.HitList.Add(ha);

                    foreach (GameObject enemy in hitableEnemies)
                    {
                        KillEnemy(enemy);
                    }
                    hitableEnemies.Clear();
                }

            }
            charging = false;
        }
    }