// Branch Node Predicated
    public bool CanSeePlayer()
    {
        //Assert.AreNotEqual(player, null);
        if (player == null)
        {
            return(false);
        }

        bool result = visionCone.IsTargetInVisionCone(gameObject, player);

        if (result)
        {
            // 主人公が見えます。
            // しかし、それは隠れているかもしれません。(ブッシュ)
            // https://www.youtube.com/watch?v=aoY6ulcQ7r4
            Player playerComponent = player.GetComponent <Player>();
            Assert.AreNotEqual(playerComponent, null);

            // 前のフレームでプレイヤーを見たら、それが茂みに入るのがわかりました。
            if (playerComponent.IsHiding() & !canSeePlayerPrevious)
            {
                return(false);
            }
        }

        return(result);
    }
Esempio n. 2
0
    public bool CanSeePlayer()
    {
        Assert.AreNotEqual(Player, null);

        bool result = _visionCone.IsTargetInVisionCone(gameObject, Player);

        if (result)
        {
            // 主人公が見えます。
            // しかし、それは隠れているかもしれません。(ブッシュ)

            Player playerComponent = Player.GetComponent <Player>();
            Assert.AreNotEqual(playerComponent, null);

            // 前のフレームでプレイヤーを見たら、それが茂みに入るのがわかりました。
            if (playerComponent.IsHiding() & !canSeePlayerPrevious)
            {
                return(false);
            }
        }

        return(result);
    }