Inheritance: MonoBehaviour
Exemple #1
0
    // Update is called once per frame
    void Update()
    {
        NPCFidget movements = GetComponent <NPCFidget>();

        if (movements != null)
        {
            movements.StartWalking();
        }

        Vector3 destination = GameObject.FindWithTag("Player").transform.position;

        transform.LookAt(destination);
        transform.Translate(Vector3.forward * Time.deltaTime);

        transform.position = new Vector3(transform.position.x,
                                         Terrain.activeTerrain.SampleHeight(transform.position),
                                         transform.position.z);
    }
Exemple #2
0
    public WalkingState walk(float walkingSpeed)       //code to walk
    {
        if (pathIndex < movements.Count - 1)
        {
            NPCFidget fidgets = GetComponent <NPCFidget>();
            fidgets.StartWalking();

            transform.LookAt(movements[pathIndex]);
            transform.Translate(Vector3.forward * Time.deltaTime * walkingSpeed);
            transform.position = new Vector3(transform.position.x, Terrain.activeTerrain.SampleHeight(transform.position), transform.position.z);

            if (Vector3.Distance(transform.position, movements[pathIndex]) < Random.Range(1, 4))
            {
                pathIndex++;
            }
            return(currentState);
        }

        //Maybe here we can choose a random direction to face and a random small amount to move forward and make them move that much


        currentState = WalkingState.NotStarted;
        return(WalkingState.ReachedDestination);
    }