Beispiel #1
0
 void Start()
 {
     maxforwardVel = 8;
     maxSideVel    = 8;
     maxTurnVel    = 90;
     rb            = GetComponent <Rigidbody>();
     distSensorT   = transform.Find("Body").Find("DistanceSensor");
     gyroAngle     = transform.eulerAngles.y;
     server        = GetComponent <TCPRobotServer>();
     terrain       = GameObject.Find("Floor").GetComponent <Terrain>();
 }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        if (server == null)
        {
            server = gameObject.AddComponent <TCPRobotServer>() as TCPRobotServer;
        }

        velVec.Set(sideVel, 0, forwardVel);
        actualVelVec  = Vector3.SmoothDamp(actualVelVec, velVec, ref velDampVec, 0.1f);
        actualTurnVel = Mathf.SmoothDamp(actualTurnVel, turnVel, ref turnDampVel, 0.1f);

        transform.Translate(actualVelVec * Time.deltaTime);
        transform.Rotate(Vector3.up * actualTurnVel * Time.deltaTime);

        Physics.Raycast(distSensorT.position, transform.forward, out forwardCast);
        Physics.Raycast(distSensorT.position, -transform.forward, out backCast);
        Physics.Raycast(distSensorT.position, -transform.right, out leftCast);
        Physics.Raycast(distSensorT.position, transform.right, out rightCast);
        gyroAngle = transform.eulerAngles.y;
    }