- Home /
Duplicate Question
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!
Hi,I have a problem with the same error (BCE0019: 'position' is not a member of 'Object'), but I don't have .ToString in my code. Please help.
function NavigateTowardsWaypoint () {
var RelativeWaypointPosition : Vector3 = transform.InverseTransformPoint( Vector3(
waypoints[currentWaypoint].position.x,
transform.position.y,
waypoints[currentWaypoint].position.z ) );
@$$anonymous$$laudia: Your post doesn't answer the question, so don't post it as answer. This is a Q&A site, not a forum. I've converted your "answer" into a comment.
Answer by DaveA · Feb 14, 2012 at 11:19 PM
.ToString.position.x
Get rid of .ToString
when used above it Says, " 'position' is not a member of 'function(): String'. "
Answer by Bunny83 · Sep 27, 2012 at 04:37 PM
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 ;) 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.
this variable is re-writing
function GetWaypoints () {
var potentialWaypoints : Array = waypointContainer.GetComponentsInChildren( Transform );
waypoints = new Array(potentialWaypoints);
for ( var potentialWaypoint : Transform in potentialWaypoints ) {
if ( potentialWaypoint != waypointContainer.transform ) {
waypoints[ waypoints.length-1 ] = potentialWaypoint;
}
}
}
Answer by javanoob · Dec 22, 2012 at 07:42 PM
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[i] < 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 ??)
oh. Yeah, I have that problem too. Have you fixed it already? (this code contains 128 lines but your console has printed 131 line. I think line 101-103 is the right location)
Follow this Question
Related Questions
Change 3D Object by pressing Gui Button 1 Answer
Script stops working when switching to Android 1 Answer
Can't Add Script 1 Answer
Send an activity from C# to Java 0 Answers
Help!, Android plataform SCRIPT? 1 Answer