OnBecameVisable 有问题(看穿墙壁并在场景视图中可见)

问题描述 投票:0回答:0

我正在尝试制作一个脚本,只有当玩家摄像机可以看到敌人并且玩家按下空格键时,敌人才会追逐玩家。我一直在尝试使用 render.isVisible 但遇到了两个主要问题。 1) 即使敌人在场景视图中可见,也启用了 isVisible,从而无法进行测试。并且 2) isVisible 在墙壁上起作用,所以如果玩家正在看墙壁而敌人在它后面,它仍然会像 isVisable 一样重生。请帮助我失去理智哈哈。谢谢!

    public NavMeshAgent enemy;
    public Transform player;

    Renderer m_Renderer;

    private void Start()
    {
        m_Renderer = GetComponent<Renderer>();
    }

    private void OnBecomeInvisible()
    {
        enabled = false;
    }

    void OnBecameVisible()
    {
        enabled = true;

        if (Input.GetKey(KeyCode.Space) && m_Renderer.isVisible)
        {
            Debug.Log("is visible");

            enemy.SetDestination(player.position);
        }

    }

    private void Update()
    {
            OnBecameVisible();
    }


I'm honestly not sure what to try, thank you so much for any help!
c# unity3d unityscript renderer
© www.soinside.com 2019 - 2024. All rights reserved.