【发布时间】:2021-07-20 00:51:47
【问题描述】:
我试图让我的动画敌人(子对象)在 enemieDeath == true 时禁用它的对撞机。我写了一个 debug.log,上面写着“碰撞器。启用 = 真,碰撞器。启用 = 假,在我的玩家与敌人孩子(有动画)碰撞后,它会在无限循环中执行此操作。
这是我正在使用的脚本。
EnemieMove 脚本
//参考PlayerController脚本
if (playerControllerScript.enemieDeath == true)
{
goblinCollider.enabled = !goblinCollider.enabled;
enemieAnimator.SetBool("IsDead", true);
Debug.Log("Collider.enabled = " + goblinCollider.enabled);
}
}
播放器控制器脚本
void FixedUpdate()
{
int layerMask = 1 << 8;
int layerMaskCollectable = 1 << 9;
RaycastHit hit;
if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), out hit, 1.5f, layerMask))
{
Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.down) * hit.distance, Color.yellow);
Debug.Log("Did Hit");
enemieDeath = true;
//Destroy(hit.transform.gameObject);
playerRb.AddForce(Vector3.up * bounceForce, ForceMode.Impulse);
gameManager.UpdateScore(20);
}
【问题讨论】: