//Проверка на столкновения 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; } } } } } } }
//Если снаряд что-то задел 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(); } } } }
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); } }
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; } }