How can I move an object physically correct around an other object?

Hi guys,

I wanted to move a gameobject to a location, the problem is, that with the code I found my object moves through other objects like walls…

I tried to add rigidbodies to them with no success.

If somebody got a good idea how to avoid this ghostlike behavior, tell me please :wink:

My code looks like this:

var endPoint : Vector3;
var duration : float = 1.0;
var mychamp : GameObject;
private var startPoint : Vector3;
private var startTime : float;
function Start() {
startPoint = mychamp.transform.position;
startTime = Time.time;
endPoint = Vector3(12,1.5,6);
}
function Update () {
mychamp.transform.position = Vector3.Lerp(startPoint, endPoint, (Time.time - startTime) / duration);
}

Thanks in advance.

Unless you have Unity Pro, you probably want a bunch of waypoints that the object can follow to the destination.

var waypoints : Transform[];
var loop : boolean = false;
var targetWaypoint : int;
var waypointRadius = 0.00;
var angularDistance = 0.00;
var carCenter : Transform;

function FixedUpdate () 
{

target = waypoints[targetWaypoint];

xDistance = target.position.x - carCenter.position.x;
zDistance = target.position.z - carCenter.position.z;

angularDistance = (Mathf.Sqrt(xDistance * xDistance) + (zDistance * zDistance));

if (angularDistance < waypointRadius){
targetWaypoint += 1;
}
if (loop == true){
if(targetWaypoint >= waypoints.Length){
targetWaypoint = 0;
}
}
var angle : float = Mathf.Atan2(xDistance, zDistance) * Mathf.Rad2Deg;
}

Move your object at that angle. Hope this works. If it works and helps, please mark this answer correct.