纳金网

标题: 如何建立飞行路径【转】 [打印本页]

作者: 奔跑的小兔    时间: 2012-8-10 16:27
标题: 如何建立飞行路径【转】
1. 建立一个名为FlyPath的飞行路径对象
2. 在FlyPath对象下,加载一个名为FlyCamera的相机
3. 建立一个空的Game Object,将FlyPath脚本拖放至该对象上


var path:GameObject;
  var flyPathCamera:GameObject;
var mainCamera:GameObject;
var text2d:Texture2D[];
var flag : boolean;

function Start(){
     path = GameObject.Find("FlyPath");
     mainCamera = GameObject.Find("First Person Controller");
     if( path!=null )
     {
         flyPathCamera = path.Find("FlyCamera");
     }
     flag=***e;
}

function Update () {
     if( path!=null && path.active )
     {
         var animation:Animation;
         animation = path.GetComponent("Animation");
         if( animation!=null )
         {
             if( !(animation.IsPlaying("Take 001")) )
             {
                 path.active = false;
                 if( flyPathCamera!=null )
                     flyPathCamera.active = false;
                    
                 if( mainCamera!=null )
                     mainCamera.active = ***e;               
             }
             else if( mainCamera!=null && mainCamera.active )
             {      
                 mainCamera.active = false;
             }
         }
     }
}

function  ActiveFlyPath(){
     if( path==null || flyPathCamera==null || mainCamera==null )
         return;
   
     bActive = !(path.active);
     if( path.active!=bActive )
     {
         path.active = bActive;
         flyPathCamera.active = bActive;
         var animation:Animation;
         animation = path.GetComponent("Animation");
         if( animation!=null )
         {
             animation.active = bActive;
             if( bActive && !animation.IsPlaying("Take 001") )
                 animation.Play("Take 001");
             else if( !bActive )
                 animation.Stop();
         }
     }
   
     bActive = !bActive;
     if( mainCamera!=bActive )
     {
         mainCamera.active = bActive;
     }
}

function OnGUI ()
{
     if(flag==***e)
     {
         if(GUI.Button(Rect(0,0,80,20),text2d[0])){
         ActiveFlyPath();
         }
         flag=false;
     }
     else {
         if(GUI.Button(Rect(0,0,80,20),text2d[1])){
         ActiveFlyPath();
         }
     }
}




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5