查看: 1326|回复: 0
打印 上一主题 下一主题

如何建立飞行路径【转】

[复制链接]

1602

主题

1

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
24658
精华
6

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-8-10 16:27:22 |只看该作者 |倒序浏览
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();
         }
     }
}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-6-16 03:47 , Processed in 0.064079 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部