//Проверка на столкновения
    void TestRigidBody()
    {
        if (true)
        {
            Collider[] collider = null;
            //вытаскиваем колайдеры если их нет
            if (collider == null || collider.Length <= 0)
            {
                //collider = Physics.OverlapCapsule(gameObject.transform.position - gameObject.transform.localScale.y * transform.up/2, gameObject.transform.position + gameObject.transform.localScale.y * transform.up/2, capsuleCollider.radius * 2 * transform.localScale.x);
                collider = Physics.OverlapCapsule(gameObject.transform.position - gameObject.transform.localScale.y * transform.up / 2, gameObject.transform.position + gameObject.transform.localScale.y * transform.up / 2, 0.3f * 2 * transform.localScale.x);
            }

            //Если теперь колайдеры есть то проверяем их
            if (collider != null && collider.Length > 0)
            {
                //Перебираем все колайдеры
                for (int numColl = 0; numColl < collider.Length; numColl++)
                {
                    //Пытаемся получить пи таргет из колайдера
                    PiiTarget colliderPiiTarget = collider[numColl].GetComponent <PiiTarget>();
                    if (colliderPiiTarget != null)
                    {
                        //Проверяем что это не цунами?
                        TsunamiPartWave tsunamiPartWave = colliderPiiTarget.GetComponent <TsunamiPartWave>();
                        if (tsunamiPartWave == null)
                        {
                            //Это не цунами тогда наносим урон без прибавления очков игроку, если цель еще жива
                            if (colliderPiiTarget.heath > 0)
                            {
                                colliderPiiTarget.heath -= DamageTargets * Time.deltaTime;

                                if (colliderPiiTarget.heath <= 0)
                                {
                                    colliderPiiTarget.heath = 0;
                                    colliderPiiTarget.DeathTarget();
                                }
                            }
                        }

                        //Проверяем обьект на ригид боди
                        Rigidbody rigidbody = colliderPiiTarget.GetComponent <Rigidbody>();
                        if (rigidbody != null)
                        {
                            //Тестим на мочу
                            PiiPrefab piiPrefab = colliderPiiTarget.GetComponent <PiiPrefab>();
                            if (piiPrefab == null)
                            {
                                rigidbody.velocity       = rigidbody.velocity * Time.deltaTime * 4 + (transform.parent.up * 3 + transform.parent.forward * -1).normalized * SpeedTarget * Time.deltaTime;
                                rigidbody.freezeRotation = false;
                            }
                        }
                    }
                }
            }
        }
    }
Exemple #2
0
 //Если снаряд что-то задел
 private void OnTriggerEnter(Collider other)
 {
     if (!testBoom)
     {
         testBoom = true;
         PiiPrefab piiPrefab = other.GetComponent <PiiPrefab>();
         if (piiPrefab != null)
         {
             steam_achievement steam_Achievement = GameObject.FindGameObjectWithTag("steam_manager").GetComponent <steam_achievement>();
             if (steam_Achievement != null)
             {
                 steam_Achievement.plus_1_tank_shell();
             }
         }
     }
 }
Exemple #3
0
    public void set_new_pii(PiiPrefab piiPrefab)
    {
        //Получили новый префаб мочи
        oldPiiTime = 0;

        //Проверяем ID
        if (OldID < piiPrefab.ID)
        {
            OldID = piiPrefab.ID;

            //Перемещаем звук в положение префаба
            Vector3 position = piiPrefab.transform.position;
            gameObject.transform.position = position;

            //Проверяем какой напор у префаба
            testPresure(piiPrefab.Presure);
        }
    }
Exemple #4
0
    void PiiPrefabSpavnTest()
    {
        if (TimeCreatePrefab > 0)
        {
            TimeCreatePrefab -= Time.deltaTime;
        }
        if (player.PiiNow && TimeCreatePrefab <= 0)
        {
            TimeCreatePrefab = 0.1f;
            GameObject NewPii = Instantiate(prefabPii);

            PiiPrefab NewPiiPrefab = NewPii.GetComponent <PiiPrefab>();
            NewPiiPrefab.SetPosition(particlePii.transform.position);
            NewPiiPrefab.SetSpeed(gameObject.transform.rotation, speed_pii);
            NewPiiPrefab.SetPlayer(player);
            NewPiiPrefab.SetSoundPii(piiSound);
            NewPiiPrefab.Presure        = speed_pii;
            NewPiiPrefab.faceController = faceController;
            NewPiiPrefab.piiController  = gameObject.GetComponent <PiiController>();

            NewPii.transform.parent = PiiParent.transform;
        }
    }