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

Unity3d 简单的按照路径移动物体

[复制链接]

1602

主题

1

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
24658
精华
6

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

跳转到指定楼层
楼主
发表于 2012-4-25 13:48:15 |只看该作者 |倒序浏览
在TORQUE引擎中,我们只要设置几个点,然后物体会按照这几个点顺序移动,unity3d也可以的,现在介绍一个很简单的按照路径移动的方法。






目标是让蓝色方块沿着紫色方块组成的路径移动,设计思想就是让蓝色方块移动第一个,然后继续移动到第二个,然后.....,我们使用碰撞检测判定蓝色方块是否已经到位置来改变方向。   首先编写2个简单的脚本:   /----------------------------- move.cs 给蓝色方块使用------------------------------/ using UnityEngine; using System.Collections;   public class move : MonoBehaviour {     //用来保存目标的数组     public Transform [] obj;     //用来改变数组的值     private static int i = 0;       void Start()     {     }        void Update()     {         // 让我们的物体朝目标移动         transform.LookAt(obj[i % obj.Length]);         transform.Translate(Vector3.forward*Time.deltaTime*5);     }       //改变目标物体     public static void Add()     {         i++;     } } /----------------------------- move.cs end --------------------------/
  /----------------------------- point.cs 给紫色方块使用 ----------------/ using UnityEngine; using System.Collections;   public class point : MonoBehaviour {   // Use this for initialization void Start () { }   // Update is called once per frame void Update () { }       //当用户接触到目标物体改变参数到下一个目标物体     void OnTriggerEnter(Collider cos)     {         move.Add();     } } /----------------------------- point.cs end --------------------------/   蓝色方块的参数设置,注意要将box collider 换成Character Controller,这样才能跟紫色方块产生碰撞触发。






紫色方块的参数设置,注意要将Is Trigger 参数打钩,否则也不会产生碰撞检测。


运行工程,你就会发现蓝色方块会沿着紫色方块路径移动,不停的循环.......



分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

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

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

GMT+8, 2025-6-15 08:18 , Processed in 0.061941 second(s), 28 queries .

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

© 2008-2019 Narkii Inc.

回顶部