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>(); }
// 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; }