接触U3D以来,我做过的场景漫游实现方式一般有以下几种:

  • Unity3d中的Animation组件,通过设置摄像机的关键点实现场景漫游
  • 第一人称或第三人称控制器
  • 编写摄像机控制脚本
  • iTween
iTween实现相对来说比较简单,而且动画效果非常好,因此是我做场景漫游的首选,下面我来总结一下iTween做场景漫游的具体实现

简单做了个小demo如图:


我在场景中建了4个空物体作为路径点,摄像机从一个路径点到下一个路径点循环往复,当按下空格键后,漫游会暂停,松开后继续,代码符合我一贯的风格,注释很详细,我就不多解释了.

涉及到的代码绑在摄像机上面,如下:

using UnityEngine;
using System.Collections;public class TweenRoam : MonoBehaviour
{public Transform[] paths;  //路径寻路中的所有的关键点 使用空物体路径点 //public Vector3[] paths;  //也可以使用这句代码直接给路径点的位置赋值public Hashtable args;   //设置路径键值对public float m_speed = 10f;  //漫游的速度public bool isMove = true;  //是否漫游void Start(){args = new Hashtable();args.Add("path", paths);  //设置路径的点  args.Add("easeType", iTween.EaseType.linear);  //设置类型为线性,线性效果会好一些。  args.Add("speed", m_speed);  //设置寻路的速度  args.Add("movetopath", false);   //是否先从原始位置走到路径中第一个点的位置  args.Add("orienttopath", true);//是否让模型始终面朝当面目标的方向,拐弯的地方会自动旋转模型,如果你发现你的模型在寻路的时候始终都是一个方向那么一定要打开这个  args.Add("looktarget", Vector3.zero);   //移动过程中面朝一个点  args.Add("loopType", "loop");   //三个循环类型 none loop pingpong(一般 循环 来回)  args.Add("NamedValueColor", "_SpecColor");  //这个是处理颜色的。可以看源码的那个枚举。  args.Add("delay", 0f);   //延迟执行时间  iTween.MoveTo(gameObject, args);   //让模型开始寻路  这个方法和放在Update函数里的MoveUpdate()方法效果一样  Update里为了控制是否移动    }void Update(){RoamControl();}/// <summary>/// 控制动画暂停和继续的函数/// </summary>void RoamControl(){if (Input.GetKeyDown(KeyCode.Space)){iTween.Pause();}if (Input.GetKeyUp(KeyCode.Space)){iTween.Resume();}}void OnDrawGizmos(){//在Scene视图中绘制出路径  iTween.DrawLine(paths, Color.yellow);iTween.DrawPath(paths, Color.red);}
}

Demo源码地址: http://pan.baidu.com/s/1jIulQpo

注意:代码绑定到摄像机上后要给paths指定路径,或者用vector那句直接赋值也可以

关于iTween的其他知识点

  • iTween.MoveTo(): 让模型移动到一个位置,它的底层函数是通过动态的修改模型每一帧的transform.position完成的,所以它会百分之百到达目标点,不会出现误差。

  • iTween.MoveFrom():它和上面的一样,iTween.MoveTo()是将模型移动到目标位置,而iTween.MoveFrom()是将模型从目标位置移动到原始位置。

  • iTween.MoveAdd() 和iTween.MoveBy()底层实现一样,大家可以去看源码。处理移动时采用的是transform.Translate也就是API的平移,这样在处理移动的时候可能会出现一些误差,但是效果好点。

  • iTween.MoveUpdate():和iTween.MoveTo()差不多,只是它需要放在循环或者Update()中。
  • iTween.Pause(); 暂停
  • iTween.Resume();恢复

转载于:https://www.cnblogs.com/qiaogaojian/p/6511442.html

Unity3d场景漫游---iTween实现相关推荐

  1. Unity3d中场景漫游的制作

    最近在学习Unity 3D漫游制作,发现这篇博文,转载过来,感谢原作者,Unity3d中场景漫游的制作 Unity3d中场景漫游的制作,非常方便!!! 首先在3d软件中准备好模型,我找了个maya制作 ...

  2. Unity3d 简单的小球沿贝塞尔曲线运动(适合场景漫游使用)

        简单的小球沿贝塞尔曲线运动,适合场景漫游使用 贝塞尔曲线:(贝塞尔曲线的基本想法部分摘自http://blog.csdn.net/u010019717/article/details/4768 ...

  3. #游戏unity-VR场景漫游#有关VR环境的搭建【HTC vive】

    #游戏unity-VR场景漫游#有关VR环境的搭建[HTC vive] 需要解释的一点是,上一周赶上清明假期,我们团队确认了分工和计划后,就各自开始行动了,以至于忘记了更博客,差的两篇博客都会在这一周 ...

  4. Cesium for Unreal 数据加载 场景漫游 粒子效果 视频监控 VR预览

    Cesium for Unreal: Cesium出了UE插件后一直没有时间学习体验,而且也从来没有接触过UE开发,只是在网上看过一些用UE做的数字孪生的案例,看上去确实是十分炫酷,正好最近工作不是很 ...

  5. unity3d场景怎么添加天空盒子?

    unity3d场景中想要添加天空盒子,该怎么添加呢?下面我们就来看看详细的教程. 1.先下载组成天空盒子的天空图片 2.把天空图片拖进unity3d中创建的文件夹 3.新建一个材质球 4.把材质球的s ...

  6. OpenGL---GLUT教程(六) GLUT场景漫游

    GLUT教程                键盘控制例子:场景漫游 让我们看一个比较好的使用键盘控制的例子.这一章我们将建立一个应用程序.这个程序绘制了一个小的居住着雪人的世界.并且我们将用方向键来移 ...

  7. unity虚拟现实技术场景漫游

    unity实现第一人称场景漫游项目,主要包含如下功能: 1.场景搭建 场景主要包括水.草.树木.石头.飘动的白云,房子等. 2.模型导入 这个场景就导入了一个桥和一个房子,这个桥横跨在小溪的两边,我们 ...

  8. #游戏unity-VR场景漫游#关于VR以及项目基础

    #游戏unity-VR场景漫游#关于VR以及项目基础 近年来,随着互联网的发展,VR的发展及其迅速,结合unity平台,可以制造很多不同的VR项目. 目前市场上大概有三种类型的VR硬件设备: 第1种: ...

  9. 解析OBJ模型并将其加载到Unity3D场景中

    版权声明:本文由秦元培创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处,本文作者为秦元培,本文标题为解析OBJ模型并将其加载到Unit ...

  10. VRTRIX数据手套的配置以及在Unity3D场景下的多种交互实现

    VRTRIX数据手套的配置以及在Unity3D场景下的多种交互实现 准备阶段 装配 配对 连接 Tacker部分 StreamVR Unity3D部分 Package 构建场景 定义交互 交互一:点击 ...

最新文章

  1. 对spring cloud config的一点理解
  2. 阿里云开发者大会核心看点揭晓,开发者最好的时代来了?
  3. Delphi中 StrToIntDef函数的用法
  4. ECMAScript6 ES6语法
  5. zookeeper简单命令
  6. 一个酷炫的音乐播放界面
  7. 分页解决方案 之 分页算法——Pager_SQL的思路和使用方法
  8. python list去重_基础知识详解:python( list,set,dict)大规模查找效率对比
  9. Smart 3D 切块合并 使用S3C索引 excel表格法
  10. 通达信公式解密工具5.05
  11. viso添加多个图注_Visio画图几个技巧
  12. CODESYS学习心得(持续更新)
  13. python输入两个数 求和_Python两数相加
  14. java山海经之轩辕_山海经之情剑轩辕 炼化任务详细攻略
  15. mysql停掉正在运行的存储过程
  16. css overflow
  17. 【进程线程】1. 概念和区别
  18. G - Ugly Numbers
  19. 常用 DOM 方法与属性
  20. C语言的stdio解释(4)

热门文章

  1. Struts2 注解
  2. Microsoft SQL Server 2008 All-in-One Desk Reference For Dummies 读书笔记之六
  3. [导入]Reporting Services 3: 报表模型项目
  4. 【从0开始机器学习】神经网络识别手写字符!
  5. 【每日算法Day 72】谷歌面试题:又双叒叕是位运算,最详细的自动机推导过程...
  6. 数据科学包4-pandas核心数据结构
  7. Java中equals与==的区别(全面)
  8. 5.1 RNN 情感识别、tensorflow实现——python实战
  9. 隐马尔可夫模型通俗导论
  10. 建立一个中文名字的文件夹Python