BCE0019: 'position' is not a member of 'Object'

129# function NavigateTowardsWaypoint () {
130# var RelativeWaypointPosition : Vector3 = transform.InverseTransformPoint( Vector3(
131# waypoints[currentWaypoint].ToString.position.x,
132# transform.position.y,
133# waypoints[currentWaypoint].position.z ) );

i’m truing to build android project but in console 2 errors
"Assets/Scripts/Car Control/AICar_Script.js(131,124): BCE0019: ‘position’ is not a member of ‘Object’.

Assets/Scripts/Car Control/AICar_Script.js(133,124): BCE0019: ‘position’ is not a member of ‘Object’."
i don’t know how fix it >.< help plz!

.ToString.position.x

Get rid of .ToString

The problem is probably because your waypoints array (or what ever it is) isn’t typed. You probably used the Array class which is really bad :wink: We can only guess how this array is declared so it’s impossible to straight-forward answer this.

Dave is of course right, the ToString doesn’t make any sense here.

The waypoints variable should look either like this:

var waypoints : Transform[];

or

var waypoints : List.<Transform>;

In the second case you need to import the System.Collections.Generic namespace at the top

import System.Collections.Generic;

If it still doesn’t work there’s not much we can say about this without more information.

@ fenix_fx

Use private var waypoints : Transform[]; instead private var waypoints : Array;
:slight_smile:

@javanoob Do accept the Answer if its Helpful :slight_smile: =)

var FrontLeftWheel : WheelCollider;
var FrontRightWheel : WheelCollider;

var GearRatio : float[];
var CurrentGear : int = 0;

var EngineTorque : float = 600.0;
var MaxEngineRPM : float = 3000.0;
var MinEngineRPM : float = 1000.0;
private var EngineRPM : float = 0.0;

var waypointContainer : GameObject;
private var waypoints : Array;
private var currentWaypoint : int = 0;

private var inputSteer : float = 0.0;
private var inputTorque : float = 0.0;

function Start () {
	rigidbody.centerOfMass.y = -1.5;
	GetWaypoints();
}

function Update () {
	
	rigidbody.drag = rigidbody.velocity.magnitude / 250;
	
	// Call the funtion to determine the desired input values for the car. This essentially steers and
	// applies gas to the engine.
	NavigateTowardsWaypoint();
	
	// Compute the engine RPM based on the average RPM of the two wheels, then call the shift gear function
	EngineRPM = (FrontLeftWheel.rpm + FrontRightWheel.rpm)/2 * GearRatio[CurrentGear];
	ShiftGears();

	// set the audio pitch to the percentage of RPM to the maximum RPM plus one, this makes the sound play
	// up to twice it's pitch, where it will suddenly drop when it switches gears.
	audio.pitch = Mathf.Abs(EngineRPM / MaxEngineRPM) + 1.0 ;
	// this line is just to ensure that the pitch does not reach a value higher than is desired.
	if ( audio.pitch > 2.0 ) {
		audio.pitch = 2.0;
	}
	
	// finally, apply the values to the wheels.	The torque applied is divided by the current gear, and
	// multiplied by the calculated AI input variable.
	FrontLeftWheel.motorTorque = EngineTorque / GearRatio[CurrentGear] * inputTorque;
	FrontRightWheel.motorTorque = EngineTorque / GearRatio[CurrentGear] * inputTorque;
		
	// the steer angle is an arbitrary value multiplied by the calculated AI input.
	FrontLeftWheel.steerAngle = 10 * inputSteer;
	FrontRightWheel.steerAngle = 10 * inputSteer;
}

function ShiftGears() {
	// this funciton shifts the gears of the vehcile, it loops through all the gears, checking which will make
	// the engine RPM fall within the desired range. The gear is then set to this "appropriate" value.
	if ( EngineRPM >= MaxEngineRPM ) {
		var AppropriateGear : int = CurrentGear;
		
		for ( var i = 0; i < GearRatio.length; i ++ ) {
			if ( FrontLeftWheel.rpm * GearRatio *< MaxEngineRPM ) {*
  •  		AppropriateGear = i;*
    
  •  		break;*
    
  •  	}*
    
  •  }*
    
  •  CurrentGear = AppropriateGear;*
    
  • }*

  • if ( EngineRPM <= MinEngineRPM ) {*

  •  AppropriateGear = CurrentGear;*
    
  •  for ( var j = GearRatio.length-1; j >= 0; j -- ) {*
    

_ if ( FrontLeftWheel.rpm * GearRatio[j] > MinEngineRPM ) {_

  •  		AppropriateGear = j;*
    
  •  		break;*
    
  •  	}*
    
  •  }*
    
  •  CurrentGear = AppropriateGear;*
    
  • }*
    }

function GetWaypoints () {

  • // Now, this function basically takes the container object for the waypoints, then finds all of the transforms in it,*

  • // once it has the transforms, it checks to make sure it’s not the container, and adds them to the array of waypoints.*

  • var potentialWaypoints : Array = waypointContainer.GetComponentsInChildren( Transform );*

  • waypoints = new Array();*

  • for ( var potentialWaypoint : Transform in potentialWaypoints ) {*

  •  if ( potentialWaypoint != waypointContainer.transform ) {*
    
  •  	waypoints[ waypoints.length ] = potentialWaypoint;*
    
  •  }*
    
  • }*
    }

function NavigateTowardsWaypoint () {

  • // now we just find the relative position of the waypoint from the car transform,*

  • // that way we can determine how far to the left and right the waypoint is.*

  • var RelativeWaypointPosition : Vector3 = transform.InverseTransformPoint( Vector3(*

  •  										waypoints[currentWaypoint].position.x,* 
    
  •  										transform.position.y,* 
    
  •  										waypoints[currentWaypoint].position.z ) );*
    
  • // by dividing the horizontal position by the magnitude, we get a decimal percentage of the turn angle that we can use to drive the wheels*

  • inputSteer = RelativeWaypointPosition.x / RelativeWaypointPosition.magnitude;*

  • // now we do the same for torque, but make sure that it doesn’t apply any engine torque when going around a sharp turn…*

  • if ( Mathf.Abs( inputSteer ) < 0.5 ) {*

  •  inputTorque = RelativeWaypointPosition.z / RelativeWaypointPosition.magnitude - Mathf.Abs( inputSteer );*
    
  • }else{*

  •  inputTorque = 0.0;*
    
  • }*

  • // this just checks if the car’s position is near enough to a waypoint to count as passing it, if it is, then change the target waypoint to the*

  • // next in the list.*

  • if ( RelativeWaypointPosition.magnitude < 20 ) {*

  •  currentWaypoint ++;*
    
  •  if ( currentWaypoint >= waypoints.length ) {*
    
  •  	currentWaypoint = 0;*
    
  •  }*
    
  • }*

}
Hey ,this is the complete Gotow AI script ,when converted to Android I get this error ,anyone have a clue please ?
Assets/Scripts/Car Control/AICar_Script.js(131,124): BCE0019: ‘position’ is not a member of ‘Object’. (sorry to post as answer but the comment wouldnt allow me to paste code ??)