Unity3D--枚举+协程控制定点移动
我们做Gear VR只能用触摸板控制移动。要么就写个定位移动,让他在固定地方停留下来。
主要思路是让物体在固定的地方停留,其中用来枚举和协程。枚举来控制点位的个数,协程控制下一步移动的方向。
你也可以在另外脚本中控制枚举状态,让你当前点位完成了你想要的操作,让后在让a->b。或者直接if (cc.position == t1.position){ts = point.c;}让它等于当前位置,直接下步。
你还可以写个协程让它在当前停留多少秒后在进行下布操作。
希望对初学者有帮助,有疑问的可以在下面留言。
在这里插入代码片
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class YDong1 : MonoBehaviour {public enum point{a,b,c,d,e,f,sce,third}public point ts = point.a;public Transform t1;public Transform t2;public Transform t3;public Transform t4;public Transform t5;public Transform t6;private Vector3 en;public Transform cc;// Use this for initializationvoid Update() {if (ts == point.a){en = new Vector3(t1.position.x, t1.position.y, t1.position.z);StartCoroutine("YD");}else if (ts == point.b){en = new Vector3(t2.position.x, t2.position.y, t2.position.z);StartCoroutine("YD");if (cc.position == t2.position){ts = point.c;}}else if (ts == point.c){en = new Vector3(t3.position.x, t3.position.y, t3.position.z);StartCoroutine("YD");if (cc.position == t3.position){ts = point.d;}}else if (ts == point.d){en = new Vector3(t4.position.x, t4.position.y, t4.position.z);StartCoroutine("YD");if (cc.position == t4.position){ts = point.e;}}else if (ts == point.e){en = new Vector3(t5.position.x, t5.position.y, t5.position.z);StartCoroutine("YD");if (cc.position == t5.position){ts = point.f;}}else if (ts == point.f){en = new Vector3(t6.position.x, t6.position.y, t6.position.z);StartCoroutine("WO");}}// Update is called once per frameprivate IEnumerator YD(){yield return new WaitForSeconds(3f);this.transform.position = Vector3.MoveTowards(this.transform.position, en, Time.deltaTime);}private IEnumerator WO(){yield return new WaitForSeconds(9f);StartCoroutine("YD");}}
Unity3D--枚举+协程控制定点移动相关推荐
- 学习|Unity3D使用协程实现减速停车效果
学更好的别人, 做更好的自己. --<微卡智享> 本文长度为4303字,预计阅读11分钟 前言 上一篇<学习|Unity3d的导航实现循环线路移动>讲了一下定制循环行驶路线的方 ...
- Unity3d 通过协程来实现文件的全部加载后执行
相信大家会经常遇到在游戏中需要WWW从本地或者服务器上获取数据,而我们通常容易会犯下面这种个错误:当数据较少或者网速较好时程序运行正常.而当数据较大或者网速不好时程序会出错误.比如卡住. 所以我们要使 ...
- Unity3D之协程(Coroutines Yield )
写游戏代码,往往最终需要代码为连续的事件.结果会像这样: [它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行.] private int state = 0; void Upda ...
- unity3D的面试题
第一部分 1.请简述值类型与引用类型的区别 2.C#中所有引用类型的基类是什么 3.请简述ArrayList和List<Int>的主要区别 4.请简述GC(垃圾回收)产生的原因,并描述如何 ...
- Unity3D常见面试题
Unity3D常见面试题 目录 C#问题 4 1.在类的构造函数前加上static会报什么错?为什么? 4 2.C# StringBuilder类型比string类型的优势是什么? 4 3.C# 函数 ...
- Unity3d 知识点2
第一部分 1. 请简述值类型与引用类型的区别 2.C# 中所有引用类型的基类是什么 3. 请简述 ArrayList 和 List 的主要区别 4. 请简述 GC (垃圾回收)产生的原因,并描述如何避 ...
- Unity3D常见技术笔试题
一:什么是协同程序? 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足. 二:Unity3d中 ...
- Unity3D面试题整合
http://www.unitymanual.com/blog-11763-2877.html 最近unity3d找工作有些受挫,自己也开始补课了. 下面把这段时间看到的些面试题供出来让大家也学习下, ...
- 【Unity3D】回合制游戏
回合制游戏一直在游戏史,至少是在中国的游戏历史上扮演很重要的角色.从仙剑到梦幻,这类游戏深受玩家喜爱.那么在Unity3D中怎么实现呢?下面用一个比较简单Unity3D的一对一回合制游戏来说明这个问题 ...
最新文章
- jquery 对 Json 的各种遍历
- ubuntu 14.04-LTS 系统下安装搜狗输入法
- Silverlight 控件开发记录之 extern alias” 关键字
- 【朋克智库】比特币详解2.0——比特币的沉沦
- mt6735通用recovery_山寨4G V8主板MT6735线刷机包
- 让DIV中文字换行显示
- react vs 2017_我在React Europe 2017上学到了什么
- 软件工程概论课堂作业3
- python出现的意义_[转]Python中下划线以及命名空间的意义
- Incorporating Lexical Priors into Topic Models(即交互式主题模型的应用)论文阅读
- 大数据理论与实践9 分布式数据仓库Inceptor
- Java开发使用百度翻译api
- IBM Power小型机用前面板液晶屏查看HMC端口IP
- Window环境MatConvNet安装
- PAT 甲级 1048 Find Coins
- phpstorm 配置自动编译 less
- OLED有哪些优劣势?
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java小微企业ERP软件物料需求模块设计55ss9
- canal搭建(HA)
- 元素周期表的118个化学元素
热门文章
- 解决Windows应用程序Side-by-Side错误
- .NET 框架中的字符串(转自MSDN,关于字符串的详细解说!)
- Xenon构建MySQL高可用
- CentOS 7.4系统安装配置图解教程
- windows中的计划任务(タスクスケジュール)不登陆也可以执行 设定方式
- 关于java 中 的 null。
- mysql库的user表误删除或mysql的管理员密码丢失的解决方法
- libreoffice转换文件为pdf文件乱码问题解决办法
- 解决ifconfig没有网卡问题
- Android App自动更新解决方案(DownloadManager)