Stack Overflow на русском Asked by Nikita Egle on November 24, 2020
Народ помогите,я делаю урон от пули но при соприкосновение с обьектом с тэгом Vraginа ничего не происходит,как буддто этого обьекта и нет.Что делать??Помогите
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Ammo : MonoBehaviour
{
public float speed;
public float destroyTime;
public int valueDown;
bool isAmmo = false;
// Start is called before the first frame update
void Start()
{
//Invoke("DestroyAmmo", destroyTime);
}
// Update is called once per frame
void Update()
{
transform.Translate(Vector2.left * speed * Time.deltaTime);
}
void OnTriggerStay2D(Collider2D collider)
{
if (collider.tag == "Vragina")
{
Debug.Log("Da ura");
collider.GetComponent<Creatureshealth>().health -= valueDown;
isAmmo = true;
if (isAmmo == true)
{
Destroy(gameObject);
}
}
}
//void DestroyAmmo()
//{
// Destroy(gameObject);
//}
}
Ammo
это амуниция, а пуля это Bullet
Почему OnTriggerStay
, а не OnTriggerEnter
?
События физики Stay/Enter/Exit
не произойдёт с двумя неподвижными объектами. Изменение Transform
это не движение а по сути телепортация, движение это Rigidbody
.
В 99.9% случаях в играх стрельба это HitScan
, а трейсинг пуль просто визуал. Вычисление столкновений малого объекта на высоких скоростях слишком затратны.
Answered by Yaroslav on November 24, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP