示例#1
0
    public float Noise(Enemy enemy, float noiseFactor = .5f)
    {
        // TODO: Fill in
        float clothesFactor = 1;

        if (HasClothes())
        {
            clothesFactor *= clothes.GetNoiseModifier();
        }

        float distNoiseMod = 1 / Mathf.Pow(((this.transform.position - enemy.transform.position).magnitude), 2f);

        // Reduce by half when behind a wall
        float      coverNoiseMod = 1f;
        RaycastHit hit;

        if (Physics.Raycast(enemy.transform.position, transform.position - enemy.transform.position, out hit))
        {
            if (hit.transform != transform)
            {
                coverNoiseMod = 0.5f;
            }
        }

        return(distNoiseMod * noiseFactor * clothesFactor * coverNoiseMod * numBees);
    }