Как сделать так, чтобы объект с тегом "Enemy" не проходил сквозь другие объекты?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Enemy : MonoBehaviour
{
float speed = 5f;
int heath = 1;
Transform target;
void Start()
{
target = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
}
private void Update()
{
if (heath <= 0)
{
Destroy(gameObject);
}
}
public void TakeDamage(int damage)
{
heath -= damage;
}
void FixedUpdate()
{
transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.fixedDeltaTime);
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("KillAura"))
{
Destroy(gameObject);
}
else
{
SceneManager.LoadScene(4);
}
}
}
Ответы (1 шт):
Автор решения: ExtracT
→ Ссылка
Это сделать довольно легко. Насколько я знаю, Unity сам идентифицирует Enemy как прозрачность. Два варианта:
- Поставить объекту физику: в скрипте, добавляя ему колайдер через
this.gameObject.AddComponent<Collider>();
и составляя физику через Rigidbody, и собственно сам колайдер - Просто поменять тег на другой, например Spike или Enemy-1