Я, очевидно, что-то делаю не так. Unity дает мне:
Ошибка сценария: OnTriggerEnter2D Этот параметр сообщения должен иметь тип: Collider2D
У меня есть BoxCollider на пустом объекте, который является дочерним мой игрок Когда он сталкивается, ничего не происходит. Я установил для IsTrigger значение true.
***player's child script***
public class EnemyHurtCollider : MonoBehaviour
{
private Rigidbody2D rb;
private Collider2D coll;
private void Start()
{
GameObject.Find("Player").GetComponent<PlayerController>();
rb = GameObject.Find("Player").GetComponent<Rigidbody2D>();
coll = GetComponent<Collider2D>();
}
public void OnTriggerEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Enemy")
{
GameObject.Find("Player").GetComponent<PlayerController>().state = State.hurt; //state hurt
if (other.gameObject.transform.position.x > transform.position.x)
{
Debug.Log("HURT");
//if enemy is to my right when colliding I should be damaged and move left
rb.velocity = new Vector2(-GameObject.Find("Player").GetComponent<PlayerController>().hurtForce, rb.velocity.y);
}
else
{
Debug.Log("HURT");
//if enemy is to my left when colliding I should be damaged and move right
rb.velocity = new Vector2(GameObject.Find("Player").GetComponent<PlayerController>().hurtForce, rb.velocity.y);
}
}
}
}