我的Player_Collision脚本在Unity中的名字旁边没有复选框,现在它在我的代码中造成了一个问题。我编写代码为我的Player获得无敌的强化,但由于某种原因,它现在似乎不起作用。强化我们是为了让玩家在短时间内无敌我已经附加了我的强化和Player_Collision脚本。我如何在我的脚本中恢复复选框?
此外,是否可以短时间禁用OnCollisionEnter方法?
Unity Player_Collision screenshot of checkbox not showing up
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Invinciblity_PowerUp : MonoBehaviour
{
public MeshRenderer MeshR;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
Pickup(other);
}
}
void Pickup(Collider player)
{
Debug.Log("Power Up");
player.GetComponent<Player_collision>().enabled = false;
MeshR.enabled = false;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player_collision : MonoBehaviour
{
public Player_movement pm;
public Player_jump pj;
void OnCollisionEnter(Collision collisionInfo)
{
if(collisionInfo.collider.tag == "Obstacle" || collisionInfo.collider.tag == "Doorset")
{
pm.enabled = false;
pj.enabled = false;
FindObjectOfType<GameManager>().EndGame();
}
}
}
1条答案
按热度按时间lf5gs5x21#
只有具有
Update
、LateUpdate
、FixedUpdate
和其他“连续”消息的组件才有复选框,以指示它们当前为enabled
。OnTriggerEnter
不关心enabled
的当前状态。您可以通过
Player_collision
内部发生的任何事情来简单地检查它或者如注解中所述禁用/启用
Collider
而不是Player_collision