- Home /
Not sure what this error means?
Hi all. I am trying to create a simple raycast system, so my enemy will know if the path to a waypoint is blocked. This is the code I am using:
var waypoint : Transform[];
var speed : float = 50;
private var currentWaypoint : int = 0;
var loop : boolean = true;
var player : Transform;
var dist : float = 3;
var rayDist : float = 3;
private var character : CharacterController;
function Start ()
{
character = GetComponent(CharacterController);
}
function Update ()
{
var target : Vector3 = waypoint[currentWaypoint].position;
target.y = transform.position.y; // keep waypoint at character's height
var moveDirection : Vector3 = target - transform.position;
if(moveDirection.magnitude < 1)
{
transform.position = target; // force character to waypoint position
currentWaypoint = Random.Range(0, waypoint.Length);
}
else
{
var rayDirection = target.transform.position - transform.position;
var rayLength = Vector3.Distance(transform.position, target.transform.position);
if (Physics.Raycast (transform.position, rayDirection, rayLength)==false){
transform.LookAt(target);
character.Move(moveDirection.normalized * speed * Time.deltaTime);
}
if (Physics.Raycast (transform.position, rayDirection, rayLength)==true){
currentWaypoint = Random.Range(0, waypoint.Length);
print("Going around");
}
}
}
And this is the error I am receiving:
MissingFieldException: UnityEngine.Vector3.transform
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.FindExtension (IEnumerable`1 candidates)
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.Create (SetOrGet gos)
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.CreateGetter ()
Boo.Lang.Runtime.RuntimeServices.DoCreatePropGetDispatcher (System.Object target, System.Type type, System.String name)
Boo.Lang.Runtime.RuntimeServices.CreatePropGetDispatcher (System.Object target, System.String name)
Boo.Lang.Runtime.RuntimeServices+<GetProperty>c__AnonStorey16.<>m__A ()
Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetProperty (System.Object target, System.String name)
UnityScript.Lang.UnityRuntimeServices.GetProperty (System.Object target, System.String name)
The issue is that I am not sure what that error means, and I have no clue how to fix it. I would be grateful for any help anyone can provide, or even a reference to figure out what the error means. Thanks all!
Comment
Answer by Slobdell · Jun 21, 2013 at 04:40 PM
I didn't look through your code, but it would appear that somewhere in there you are accidentally trying to access the transform of a vector3. Since vector3 doesn't have a transform you're getting the error. The first line is probably the cause and the rest is all related