- Home /
Question by
xiaohe · Aug 19, 2011 at 02:42 AM ·
camerajavascriptmovepath
Viewport in the game, how to create a path~
In the game window, you can create your own at some point generate a path. You can add a camera to follow the path。 This camera can generate different paths 。 Click the Generate button to see the different camera paths! thank you!!
var cube1 :Transform; var speed : float = 2;
//private var currentWaypoint : int = 0;
//var waypoint : Vector3[];
function OnGUI () { GUI.Button(Rect(0,0,100,30),"add path"); GUI.Button(Rect(0,35,100,30),"add Camera");
}
function Update () {
var hit :RaycastHit;
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast (ray,hit,1000)) {
if(Input.GetMouseButtonDown(0)){
var cube2 =Instantiate(cube1,transform.position,Quaternion.identity);
cube2.transform.position=hit.point;
}
}
//hit.point- Camera.main.transform.position
var relativePos : Vector3 = cube2.transform.position ;
//var rotation : Quaternion = Quaternion.LookRotation(relativePos);
transform.position = Vector3.MoveTowards(transform.position, relativePos, Time.deltaTime * speed);
//transform.LookAt(target);
}
Comment
Answer by Techsuport · Aug 19, 2011 at 03:09 AM
it seems you want to make paths by clicking and having those points listed to move to points down the list... something like this?
var pathList:Array;
var currentTarg:Vector3;
var proximityMin:float;
var walker:GameObject;
var speed:float;
function Update(){
if(Input.GetButtonDown("Fire1")){
var hit:RaycastHit;
if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition,hit))){
pathList.Add(hit.point);
}
}
}
function FixedUpdate(){
if(walker&&pathList.length>0){
walker.transform.position=walker.transform.position+((walker.transform.position-currentTarg).normalized*speed*Time.deltaTime);
if(Vector3.Distance(walker.transform.position,pathList[0])<proximityMin){
pathList.Shift();
}
}
}