Ejemplo n.º 1
0
    void TestBoom()
    {
        //Если нужно тестить взрыв
        if (testBoom && !testBoomOk && piiTarget != null && boomTarget != null)
        {
            //Если здоровье больше нуля значит нужно инициализировать взрыв самому
            if (!testBoomOk)
            {
                testBoomOk = true;
                piiTarget.DeathTarget();

                if (rendererObj != null)
                {
                    rendererObj.active = false;
                }

                TimeDelNow = TimeDelMax;
                if (rigidbody != null)
                {
                    rigidbody.velocity    = new Vector3(0, 0, 0);
                    rigidbody.constraints = RigidbodyConstraints.FreezeAll;
                }
            }
            else
            {
                TimeDelNow -= Time.deltaTime;
                if (TimeDelNow < 0)
                {
                    Destroy(gameObject);
                }
            }
        }
    }
Ejemplo n.º 2
0
    void TestMove()
    {
        //проверка угла наклона
        Vector3 naclon  = gameObject.transform.rotation.eulerAngles;
        bool    canMove = false;

        if ((naclon.x < 20 || naclon.x > 340) && (naclon.z < 20 || naclon.z > 340))
        {
            canMove = true;
        }

        if (piiTarget != null && piiTarget.heath > 0 && canMove)
        {
            TestRotate();
            TestSpeed();
            TestRotateWheel();
        }

        if (!canMove && piiTarget != null && piiTarget.heath > 0)
        {
            piiTarget.heath -= Time.deltaTime * 20;
            if (piiTarget.heath <= 0)
            {
                piiTarget.heath = 0;
                piiTarget.DeathTarget();
            }
        }
    }
Ejemplo n.º 3
0
    //Проверка на столкновения
    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;
                            }
                        }
                    }
                }
            }
        }
    }
Ejemplo n.º 4
0
    private void OnTriggerEnter(Collider other)
    {
        PiiTarget target    = other.GetComponent <PiiTarget>();
        PiiTarget piiTarget = gameObject.GetComponentInParent <PiiTarget>();

        if (target != null && piiTarget != null && piiTarget != target && target.heath > 0 && target.MinPresure < (piiTarget.MinPresure))
        {
            //target.TrigerPii(Presure, faceController, piiController, score_Text_3D.gameObject);
            target.heath -= piiTarget.MinPresure * 500 * Time.deltaTime;
            if (target.heath <= 0)
            {
                target.DeathTarget();
            }
        }
    }