unity3d 脚本复选框未显示并在代码中产生问题

sbtkgmzw  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(203)

我的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();



        }
    }

}
lf5gs5x2

lf5gs5x21#

只有具有UpdateLateUpdateFixedUpdate和其他“连续”消息的组件才有复选框,以指示它们当前为enabled
OnTriggerEnter不关心enabled的当前状态。
您可以通过Player_collision内部发生的任何事情来简单地检查它

if(!enabled) return;

或者如注解中所述禁用/启用Collider而不是Player_collision

相关问题