Exemplo n.º 1
0
    public void UpdateFromPlayer(Vector3 newLinear, float newAngular)
    {
        so.linear  = newLinear;
        so.angular = newAngular;
        k.position = rb.position;

        k.Update(so, maxSpeed, Time.deltaTime);

        //update player
        rb.position = k.position;
        rb.rotation = Quaternion.Euler(Vector3.up * (Mathf.Rad2Deg * -k.orientation));
    }
    /// <summary>
    /// UpdateMovement is used to apply the steering behavior output to the agent itself.
    /// It also brings together the linear and acceleration elements so that the composite
    /// result gets applied correctly.
    /// </summary>
    /// <param name="steeringlin"></param>
    /// <param name="steeringang"></param>
    /// <param name="time"></param>
    private void UpdateMovement(Vector3 _linear, float _angular, float time)
    {
        // Update the orientation, velocity and rotation


        so.linear  = _linear;
        so.angular = _angular;
        k.position = rb.position;

        k.Update(so, maxSpeed, Time.deltaTime);


        //update player
        rb.position = k.position;
        rb.rotation = Quaternion.Euler(Vector3.up * (Mathf.Rad2Deg * -k.orientation));
    }
Exemplo n.º 3
0
    void Update()
    {
        playerK.position = player.gameObject.GetComponent <Rigidbody>().position;
        enemyK.position  = target.gameObject.GetComponent <Rigidbody>().position;


        DynamicAlign a = new DynamicAlign(playerK, enemyK, maxAcceleration, maxRotation, targetRadius, slowRadius);

        playerSO = new DynamicSeek(playerK, enemyK, maxAcceleration).getSteering();

        playerK.Update(playerSO, maxSpeed, Time.deltaTime);
        enemyK.Update(enemySO, maxSpeed, Time.deltaTime);



        //update player
        player.gameObject.GetComponent <Rigidbody>().position = playerK.position;
        player.gameObject.GetComponent <Rigidbody>().rotation = Quaternion.Euler(Vector3.up * (Mathf.Rad2Deg * -playerK.orientation));

        //update target
        target.gameObject.GetComponent <Rigidbody>().position = enemyK.position;
        target.gameObject.GetComponent <Rigidbody>().rotation = Quaternion.Euler(Vector3.up * (Mathf.Rad2Deg * -enemyK.orientation));
    }