【发布时间】:2016-06-15 21:17:25
【问题描述】:
我正在尝试让我的玩家角色冲过特定的敌人,并且在冲刺动画期间不受到任何伤害,这是脚本:
using UnityEngine;
using System.Collections;
using CnControls;
public class PlayerDash : MonoBehaviour {
private Animator myAnim;
private bool dash = false;
private float dashTimer = 0;
private float dashCd = 0.3f;
public Collider2D[] Coll;
void Start () {
myAnim = gameObject.GetComponent<Animator> ();
}
void Update () {
if (CnInputManager.GetButtonDown ("Dash") && !dash) {
dash = true;
dashTimer = dashCd;
myAnim.SetBool ("Dash", dash);
foreach (Collider2D coll in Coll) {
if (coll.gameObject.tag == ("Enemy")) {
coll.enabled = false;
}
}
}
if (dash) {
if (dashTimer > 0) {
dashTimer -= Time.deltaTime;
} else {
dash = false;
myAnim.SetBool ("Dash", false);
}
}
}
}
一切正常,但是当我使用 dash 并与“dasheable”敌人碰撞时,每个“dasheable”敌人都不会对玩家造成伤害(那是因为我使用的条件),我应该使用什么条件来在我冲破第一个后让敌人的对撞机仍然处于活动状态,已经在这里尝试了一些选项,但似乎没有任何工作正常
【问题讨论】:
-
在您的更新中,您禁用了对撞机。已更新启用的行为,未更新禁用的行为 - 因此手册说。我在做一个假设,因为您的“敌人造成伤害”代码没有发布。
-
想通了,我在 Update 之外创建了一个方法来检查播放器是否正在使用破折号,然后我在 Update 中调用它,谢谢。