unity3d学习GUIFly脚本

2023-05-16

用途:一个GUI对象在屏幕中飞行,用GameObject.SendMessage告诉GUI对象何时飞行。

使用:把该脚本拖到一个GameObject上,用另一个脚本GameObject.SendMessage发送飞行消息。

unity3d学习GUIFly脚本代码 :

[javascript] view plaincopy
             
  //Attach this to the same as the GUIFly is attached to.
             
  // Fly in
             
  gameObject.SendMessage(“Fly”, true);
             
  // Wait 5 seconds
             
  yield new WaitForSeconds(5);
             
  // Fly out
             
  gameObject.SendMessage(“Fly”, false);
             
  [c-sharp] view plaincopy
             
  using UnityEngine;
             
  using System.Collections;
             
  public class GUIFly : MonoBehaviour
             
  {
             
  public enum InterpolationType
             
  {
             
  Linear,
             
  Sinusoidal,
             
  Hermite
             
  }
             
  public Vector3 m_InPosition;
             
  public Vector3 m_OutPosition;
             
  public float m_TravelTime = 0.5f;
             
  public float m_DelayToStartTravelingAfterMessageReceived = 0.1f;
             
  public bool m_StartWithInPosition = false;
             
  public InterpolationType m_InterpolationType = InterpolationType.Sinusoidal;
             
  void Start ()
             
  {
             
  transform.position = (m_StartWithInPosition) ? m_InPosition : m_OutPosition;
             
  }
             
  IEnumerator Fly(bool flyIn)
             
  {
             
  yield return new WaitForSeconds(m_DelayToStartTravelingAfterMessageReceived);
             
  Vector3 targetPosition = (flyIn) ? m_InPosition : m_OutPosition;
             
  float startTime = Time.time;
             
  Vector3 startPosition = transform.position;
             
  while (Time.time < startTime + m_TravelTime)
             
  {
             
  switch (m_InterpolationType)
             
  {
             
  case InterpolationType.Linear:
             
  transform.position = Vector3.Lerp(startPosition, targetPosition, (Time.time - startTime) / m_TravelTime);
             
  break;
             
  case InterpolationType.Sinusoidal:
             
  transform.position = Sinerp(startPosition, targetPosition, (Time.time - startTime) / m_TravelTime);
             
  break;
             
  case InterpolationType.Hermite:
             
  transform.position = Hermite(startPosition, targetPosition, (Time.time - startTime) / m_TravelTime);
             
  break;
             
  }
             
  yield return 0;
             
  }
             
  transform.position = targetPosition;
             
  }
             
  void Reset()
             
  {
             
  m_InPosition = transform.position;
             
  }
             
  private static Vector3 Sinerp(Vector3 start, Vector3 end, float value)
             
  {
             
  return new Vector3(Sinerp(start.x, end.x, value), Sinerp(start.y, end.y, value), Sinerp(start.z, end.z, value));
             
  }
             
  private static Vector3 Hermite(Vector3 start, Vector3 end, float value)
             
  {
             
  return new Vector3(Hermite(start.x, end.x, value), Hermite(start.y, end.y, value), Hermite(start.z, end.z, value));
             
  }
             
  /* The following functions are also in the Mathfx script on the UnifyWiki, but are included here so the script is self sufficient. */
             
  private static float Sinerp(float start, float end, float value)
             
  {
             
  return Mathf.Lerp(start, end, Mathf.Sin(value * Mathf.PI * 0.5f));
             
  }
             
  private static float Hermite(float start, float end, float value)
             
  {
             
  return Mathf.Lerp(start, end, value * value * (3.0f - 2.0f * value));
             
  }
             
  }


转载于:https://blog.51cto.com/unity3d168/1202548

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity3d学习GUIFly脚本 的相关文章

  • Unity集成Leap Motion

    转载自 http www cocoachina com game 20150716 12625 html 演示视频文章最后 如果你已经熟悉编程的概念 理解并在C 语言方面有一定的经验 并且对面向对象编程思想和设计概念有所熟悉 如果你了解3D
  • unity 五种旋转方式localEulerAngles、eulerAngles、rotation、localRotation和Rotate的区别

    1 1 transform localEulerAngles 使用localEulerAngles进行旋转的时候 我们要使用transform localEulerAngles new Vector3 x y z 其中 new Vector
  • 树实现客户端红点系统

    树实现客户端红点系统 红点系统总览 demo 设计 代码设 引用 https zhuanlan zhihu com p 85978429 红点系统总览 如上图所示 规划红点系统的时候 我们将整个系统分为独立的三个部分 结构层 驱动层和表现层
  • VS2017调试unity没有解决方案

    1 VS2017之前的版本调试unity 需要下载 Visual Studio Tools for Unity 2 VS2017内置了Visual Studio Tools for Unity 3 首先打开 帮助 gt 关于 已安装程序中查
  • Unity的C#编程教程_52_类 Class 详解及应用练习(一)

    文章目录 C Classes for Behaviours Custom Classes 1 Custom Classes 2 Serialized Custom Class RPG Item Database Example 3 When
  • Unity的Text Mesh Pro文字显示重叠处理

    在使用Text Mesh Pro的时候 出现文字重叠 如图 在编辑器内显示是正确的 最后发现是换行造成的 原本的文字是从pdf中复制过来 就会重叠 在记事本中删除换行用回车再次换行就能正确显示
  • Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换

    Cinemachine在2017版中正式加入 结合Timeline可以轻松的制作出一下相机动画 相比Unity自带的标准相机 这个Cinemachine插件可操作的变量更多 不同虚拟相机 用来控制相机的 可以平滑转换等 具体可以参考上篇 U
  • 离散仿真引擎基础作业与练习

    作业内容 一 简答题 1 解释 GameObjects 和 Assets 的区别与联系 2 下载几个游戏案例 分别总结资源 对象组织的结构 3 使用 debug 验证 MonoBehaviour 基本行为或事件触发条件 4 了解 GameO
  • Vuforia Virtual Button(虚拟按钮)使用技巧

    最近一直在摸索Vuforia的使用 Virtual Button算是一个比较容易吸引人眼球的功能 在经过一些测试后 我来总结下自己在探索过程中得到的一些经验 1 如何新建一个Virtual Button工程 导入Vuforia sdk 后把
  • Unity3D 碰撞器和触发器

    对于碰撞器和触发器经常忘记用法 这次主要记录下以便于能够复习用 1 碰撞器 发生条件 1 碰撞的双方中一定至少要有一个Rigidbody存在 并且碰撞双方必须都要有碰撞体组件 2 碰撞双方若只有一个有刚体 那么那个刚体一定要处于运动的状态下
  • protobuf C#编译

    protobuf C 编译 标签 protobufc 2016 08 30 23 22 342人阅读 评论 1 收藏 举报 分类 工作记录 2 版权声明 本文为博主原创文章 未经博主允许不得转载 1 下载protobuf代码 https g
  • Unity笔记:修改代码执行的默认打开方式

    使用 External Tools 偏好设置可设置用于编写脚本 处理图像和进行源代码控制的外部应用程序 External Script Editor 选择 Unity 应使用哪个应用程序来打开脚本文件 Unity 会自动将正确的参数传递给内
  • Unity3D【脚本】 按键盘Esc弹出退出面板 确定退出游戏 取消关闭面板

    按键盘Esc弹出退出面板 确定退出游戏 取消关闭面板 效果图 脚本 using UnityEngine using System Collections public class Exit MonoBehaviour public Game
  • unity3d 理解刚体(Rigidbody)和碰撞体(Collider)以及触发器(Is Trigger),边学边更新

    unity3d 理解刚体 Rigidbody 和碰撞体 Collider 以及触发器 Is Trigger 边学边更新 分类 Unity3D 2014 04 01 16 50 2755人阅读 评论 2 收藏 举报 刚体 Rigidbody
  • 【Unity灯光与渲染技术】Global Illumination全局光照

    本系列主要参考Unity灯光与渲染技术教程Unity Lighting And Rendering 同时会加上一点个人实践过程和理解 分割线 这篇文章主要讲全局光照 在看教程的时候就有一个点不是很理解 就是作者开启物体的static这个选项
  • unity粒子特效附上贴图后播放动画

    转自 http jingyan baidu com article f96699bbb1a0d6894f3c1b77 html 参考 http www unitymanual com thread 2993 1 1 html dsign a
  • unity中的一些快捷键(齐)

    重命名的快捷键是F2 ALT 鼠标左键点击Hierarchy对象可以展开和收起对象的所有子物体 SHIFT 空格 可以对当前窗口进行放大缩小
  • Unity3D如何修改Button显示的文字以及深入了解Button组件

    在创建了一个Button后 结构如图 先仔细观察一下Button的Inspector视图 发现其中竟然有一个叫Button的脚本组件 新建脚本 代码如下 并将该脚本绑定给Canvas组件 using UnityEngine UI using
  • Unity使用spine动画

    Unity使用spine动画 在 Unity 中 常常使用 Spine 来制作一些动画 引擎本身并不能直接播放 Spine 动画 需要额外导入一个 RunTime 插件库才能支持 官网插件导入 当然 也可以到 Spine 官网关于 Unit
  • Unity中UI组件

    一 Canvers 画布组件 Canvers下面是添加Button和Image组件 Rect Transform 1 Position 坐标位置 2 Width Height 高宽尺寸 3 Anchors 锚点 4 Pivot中心点 即UI

随机推荐

  • 源码方式Squid安装与配置(Debian/ubuntu)

    了解squid代理服务器的过程 xff0c 我们知道它在企业中应用能很明显的提升网络使用效率 xff0c 并能很好的屏蔽某些网站的访问 前期我们介绍过命令方式快速安装squid 今天 xff0c 我来着手源码方式安装squid xff0c
  • 《R语言入门》矩阵元素定义及筛选

    R语言入门 目录 xff1a 如何在Windows下安装R语言编程环境 矩阵元素定义及筛选 和向量一样 xff0c 矩阵也可以做筛选 但是需要注意一下语法上的不同 下面是一个简单的例子 xff1a 以下代码用户定义一个矩阵元素变量 si x
  • iOS开发之性能优化

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 关于ios性能优化 可以从以下方面下手 1 xff0c 计算代码运行时间 xff1a 相信数据 xff0c 不要太相信感觉 不过要注意模拟器和真机的差异 最简单的工具就是
  • 6大主流开源SQL引擎总结,遥遥领先的是谁?

    作者 xff5c 覃璐 编辑 xff5c Tina 根据 O Reilly 2016年数据科学薪资调查显示 xff0c SQL 是数据科学领域使用最广泛的语言 大部分项目都需要一些SQL 操作 xff0c 甚至有一些只需要SQL 本文就带你
  • 使用选择排序法对数组进行排序

    int array 61 new int 10 生成随机数对象 Random random 61 new Random for int i 61 0 i lt array length i 43 43 array i 61 random n
  • 码code | 小程序接入「激励式视频广告」硬核指南

    4月16日 xff0c 微信开放社区发布了 激励式视频广告 向非游戏类小程序流量主开放 的公告 xff0c 也就是说现在只要是开通了流量主的小程序 xff0c 就可以跟小游戏一样插入激励视频广告 激励式视频广告的功能 对用户来说 xff1a
  • ios auto sizing cell遇到的坑(estimatedRowHeight的重要性)

    PS 确实项目中设置了 xff1a self tableView estimatedRowHeight 61 0 self tableView estimatedSectionHeaderHeight 61 0 self tableView
  • 如何打印枚举类型:%d

    include lt stdio h gt typedef enum SessionState SESSION OPENING Session scope is being created SESSION ONLINE Logged in
  • SQL注入测试工具:Pangolin(穿山甲)

    第一章 简介 1 1 Pangolin是什么 xff1f Pangolin是一款帮助渗透测试人员进行Sql注入测试的安全工具 所谓的SQL注入测试就是通过利用目标网站的某个页面缺少对用户传递参数控制或者控制的不够好的情况下出现的漏洞 xff
  • 转文件系统介绍(这个真好)--来自ubuntu中文论坛

    2019独角兽企业重金招聘Python工程师标准 gt gt gt xff08 这就是著名的根 xff09 bin 你在终端运行的大多数程序 xff0c 比如cp mv boot 内核放在这里 xff0c 这个目录也经常被作为某个独立分区的
  • UIControl 的基本使用方法和 Target-Action 机制

    我们在开发应用的时候 xff0c 经常会用到各种各样的控件 xff0c 诸如按钮 UIButton 滑块 UISlider 分页控件 UIPageControl 等 这些控件用来与用户进行交互 xff0c 响应用户的操作 我们查看这些类的继
  • debian 安装xz 命令

    1 apt install y xz utils 2 xz d Python 3 6 8 tar xz 3 xz d Python 3 6 8 tar xz 转载于 https www cnblogs com lmx1002 p 10255
  • 废旧主板的7大神奇改造

    如果给小编几块废旧主板 xff0c 俺无非是把它们放进抽屉里躺着或是扔到破烂箱里落灰 xff0c 但若是交给Christoph Koch David Casella这些有才的设计师们 xff0c 情况可就大不相同了 下面这些有趣的小玩意儿
  • shields小徽章是如何生成的?以及搭建自己的shield服务器

    shields小徽章介绍 一般开源项目都会有一些小徽章来标识项目的状态信息 xff0c 并且这些信息是会自动更新的 在shields的官网https shields io 上面有各种各样的小图标 xff0c 并且有很多自定义的方案 起因 x
  • TuShare(3):使用pandas 压缩存储hdf5文件

    本文的原文连接是 http blog csdn net freewebsys article details 51025044 未经博主允许不得转载 博主地址是 xff1a http blog csdn net freewebsys 1 x
  • sublime text3 破解方法(亲测可用)

    1 更改windows 的hosts文件 windows系统的hosts文件在C Windows System32 drivers etc 路径下 xff0c 其他系统请自行百度 在hosts文件中加入下面两行 xff1a 127 0 0
  • 【开发经验】浅谈flutter的优点与缺点

    本文默认你已经是开发者 xff0c 并对 Flutter有基本的了解 xff0c 但是还未深入使用 xff0c 希望了解 Flutter在商业级 xff08 而非demo xff09 的项目中的优势与劣势 很多前端开发者应该都寻找过跨平台的
  • Linux 4.21包含对AMD Rome处理器中新的Zen 2架构重要的新优化

    2019独角兽企业重金招聘Python工程师标准 gt gt gt AMD的下一代EPYC Rome处理器在第一季度上市 xff0c 它们带来了全新的设计 xff0c 比第一代EPYC Naples芯片有着更强的算力 AMD的第二代Infi
  • Workbox CLI中文版

    在写PWA应用时 xff0c 用到WorkBox工具 xff0c 使用过程中发现没有中文的帮助文档 xff0c 为了体验好一些 xff0c 也为了方便自己和他人查看 xff0c 在这里翻译了一下workbox cli Workbox CLI
  • unity3d学习GUIFly脚本

    用途 xff1a 一个GUI对象在屏幕中飞行 xff0c 用GameObject SendMessage告诉GUI对象何时飞行 使用 xff1a 把该脚本拖到一个GameObject上 xff0c 用另一个脚本GameObject Send