Пример #1
0
    bool ShouldJump(Vector3 currentNode)
    {
        float   nodeDist = Vector3.Distance(this.transform.position, currentNode);
        Vector3 cHit     = NodeList.ClosestHit(this.transform.position, currentNode - this.transform.position, nodeDist);

        if (cHit.x != Mathf.Infinity)           // Does not have LOS
        {
            if (Vector3.Distance(this.transform.position, cHit) <= jumpDistance && Vector3.Distance(this.transform.position, cHit) > 5f)
            {
                print(Vector3.Distance(this.transform.position, cHit));
                Debug.DrawRay(this.transform.position, currentNode - this.transform.position, Color.red, 10f);
                return(true);
            }
        }
        else
        {
            if (NeedsToJump(currentNode) && nodeDist <= jumpDistance)
            {
                print("NEEDS JUMP");
                return(true);
            }
        }

        return(false);
    }