【发布时间】:2021-10-29 22:17:37
【问题描述】:
抱歉,格式错误,我不知道该怎么做。我正在使用 2020.3.21f1 并按照教程进行操作,当敌人圈子击中玩家时,他不会受到伤害。当它们发生碰撞时,它们根本不会重叠,但是 Debug.log 也没有注册,所以我认为圆形对撞机 2D 是问题所在。敌方精灵在范围内时仍会朝玩家移动。另一个问题(如果我不知道如何改变它会变成一个特性)是当敌人与玩家发生碰撞并且玩家推动它时,它会沿着它被推动的方向移动,直到它遇到东西Here's the tutorial I'm following
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy: MonoBehaviour
{
public float speed = 3f;
private Transform target;
[SerializeField] private float attackDamage = -10f;
private void Update(){
if (target != null){
float step = speed*Time.deltaTime;
transform.position = Vector2.MoveTowards(transform.position, target.position, step);
}
}
private void OnCollision(Collision2D other){
if (other.gameObject.tag == "player"){
Debug.Log("hit");
other.gameObject.GetComponent<PlayerHealth>().UpdateHealth(attackDamage);
}
}
private void OnTriggerEnter2D(Collider2D other) {
if(other.gameObject.tag == "Player"){
target = other.transform;
Debug.Log(target);
}
}
private void OnTriggerExit2D(Collider2D other) {
if(other.gameObject.tag == "Player"){
target = null;
Debug.Log(target);
}
}
}
【问题讨论】: