位置: 编程技术 - 正文

Unity3D游戏开发之基于Trigger的触发式动画设计(Unity3D游戏开发标准教程)

编辑:rootadmin

推荐整理分享Unity3D游戏开发之基于Trigger的触发式动画设计(Unity3D游戏开发标准教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Unity3D游戏开发(第2版)pdf,Unity3D游戏开发基础,Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社,unity3D游戏开发,unity3D游戏开发,Unity3D游戏开发pdf,unity3D游戏开发,Unity3D游戏开发(第2版),内容如对您有帮助,希望把文章链接给更多的朋友!

喜欢我的博客请记住我的名字:秦元培,我的博客地址是 本文出处: 好了,下面请大家跟随我一起来学习如何在Unity3D中实现基于Trigger的触发式动画,首先我们创建如下的场景:

Unity3D游戏开发之基于Trigger的触发式动画设计(Unity3D游戏开发标准教程)

场景中的地面和墙体、门均有Cube构成,这里我们把地面、墙体的盒子碰撞器全部移除,避免它们对我们的程序产生干扰。首先我们编写两段脚本来控制门从左向右移动、从右向左移动的动画:

[csharp] view plaincopyprint?//开门动画 private void OpenDoorAni() { if(transform.position.x<=1.8F) { transform.Translate(Vector3.right * Time.deltaTime * 1.5F); } } //关门动画 private void CloseDoorAni() { //等待5秒后再关门,避免角色与门发生碰撞 StartCoroutine("Wait"); if(transform.position.x>=0) { transform.Translate(Vector3.left * Time.deltaTime * 1.5F); } }

代码基本上很容易理解,就是分别从左向右、从右向左移动门啦!接下来,我们给我们的角色加上一个球体碰撞器并勾选isTrigger选项,为什么选择球体碰撞器呢,因为这样角色进入触发和退出触发的时候,都是和门的盒子碰撞器相切的。在关门的时候延迟两秒是为了给玩家一个控制角色的反应时间,避免和门发生碰撞。这里要注意的是角色是带刚体的。

好了,接下来我们编写触发这一块的代码:

[csharp] view plaincopyprint?void OnTriggerEnter(Collider mCollider) { Debug.Log(mCollider.gameObject.tag); if(mCollider.gameObject.tag=="Player") { Triggered=true; } } void OnTriggerExit(Collider mCollider) { if(mCollider.gameObject.tag=="Player") { Triggered=false; } } 我们在这里是通过改变一个bool型的标志变量来标记角色是否引起了触发,当引起了触发的时候执行开门的动画,退出除了触发的时候执行关门的动画。这一部分我们放在Update()方法里:[csharp] view plaincopyprint?void Update () { if(Triggered) { OpenDoorAni(); }else if(!Triggered) { CloseDoorAni(); } } 最后给出全部代码:[csharp] view plaincopyprint?using UnityEngine; using System.Collections; public class AniScripts : MonoBehaviour { //定义门的移动速度 public float mSpeed=1.5F; //定义门的标志变量 private bool Triggered=false; void Update () { if(Triggered) { OpenDoorAni(); }else if(!Triggered) { CloseDoorAni(); } } //开门动画 private void OpenDoorAni() { if(transform.position.x<=1.8F) { transform.Translate(Vector3.right * Time.deltaTime * 1.5F); } } //关门动画 private void CloseDoorAni() { //等待5秒后再关门,避免角色与门发生碰撞 StartCoroutine("Wait"); if(transform.position.x>=0) { transform.Translate(Vector3.left * Time.deltaTime * 1.5F); } } void OnTriggerEnter(Collider mCollider) { Debug.Log(mCollider.gameObject.tag); if(mCollider.gameObject.tag=="Player") { Triggered=true; } } void OnTriggerExit(Collider mCollider) { if(mCollider.gameObject.tag=="Player") { Triggered=false; } } IEnumerator Wait() { //等待5秒在执行 yield return new WaitForSeconds(5); } } 更多精彩请点击 www.gopedu.com 一起来看看效果演示吧:

Unity3D游戏开发之仿仙剑奇侠传仙灵岛机关的实现 喜欢我的博客请记住我的名字:秦元培,我的博客地址是

Unity3D游戏开发之自由视角状态下的角色控制 喜欢我的博客请记住我的名字:秦元培,我的博客地址是

Unity3D游戏开发之自由视角状态下的角色控制(二) 喜欢我的博客请记住我的名字:秦元培,我的博客地址是

标签: Unity3D游戏开发标准教程

本文链接地址:https://www.jiuchutong.com/biancheng/372906.html 转载请保留说明!

上一篇:Unity3d游戏开发之漫游场景的制作(Unity3D游戏开发pdf)

下一篇:Unity3D游戏开发之仿仙剑奇侠传仙灵岛机关的实现(Unity3D游戏开发引擎)

  • 自动售货机进货渠道
  • 减税后含税单价计算公式
  • 已付款未收到发票账务处理
  • 资产损失税前扣除及纳税调整明细
  • 法人费用报销怎么报销
  • 销售方退款回来要怎么处理?
  • 老板向公司借款用于公司经营
  • 企业所得税申报流程图
  • 个人独资企业是什么类型
  • 个人开机械租赁发票需要什么
  • 佣金发票可以抵扣吗
  • 事业单位固定资产盘盈账务处理
  • 所得税申报怎么弥补以前年度亏损
  • 英雄联盟电脑软件图片
  • win10设置里没有飞行模式
  • 冲红发票会计分录大全
  • 百内国家公园塔状尖峰
  • PHP:oci_pconnect()的用法_Oracle函数
  • php的使用
  • 在win7中怎么安转只兼容win10的软件
  • Mac OS X Mavericks的Finder打开不同标签的操作步骤
  • deepin声音
  • php实战
  • synaudsrv.exe是什么
  • 五彩鲍鱼的做法
  • 注册造价师挂靠费怎么缴纳个税
  • 应交营业税计算公式
  • 哪些合同不属于担保合同
  • php多任务
  • 萨勒克国家公园课文
  • 资产减值会计处理对利润的影响
  • php执行流程
  • php checkbox使用
  • 企业所得税按季还是按年
  • php7.4配置
  • HTML+CSS+JS+Jquery+练手项目+...合集(前端学习必备,持续更新中...)
  • 微信小程序人民法院审核通过多久立案
  • php如何入门
  • thinkphp如何连接数据库
  • 以前年度损益调整是什么意思
  • 存续分立会计处理原则
  • 税务代开,开错了重开要多久?
  • 管理不善造成的货物损失进项税可以抵扣吗
  • 未开票收入下月开票
  • SqlServer与MongoDB结合使用NHibernate
  • 固定资产清理是什么科目
  • 对方开给我的专票,我要报税吗?
  • 高速公路费如何开票
  • 其他应付款是什么类账户
  • 发票超过三个月就不能开了吗
  • 应付账款主要是什么
  • 4s店交首付分期多久
  • 集团公司股份
  • 福利费可以计入销售费用吗
  • 公司为员工异地缴纳五险一金
  • 盘亏机器设备
  • 对方公司收钱不开发票怎么办
  • 劳务公司开出发票没有收到钱,怎么做成本
  • 税控盘领了发票怎么发票读入
  • Win10 Build 17035自制64位中国版十合一ISO镜像下载地址
  • PQV2ISECURITY.EXE - PQV2ISECURITY是什么进程 有什么用
  • win7系统网页无法调用摄像头
  • linux发布项目
  • win8手提电脑怎么关闭触摸板
  • Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
  • linux系统中可用于添加用户账号
  • node.js创建服务
  • 安卓桌面照片插件
  • android draglistview中拖动异常显示,无法移动到原先位置
  • python中判断语句怎么写
  • Android ImageLoader 本地缓存
  • bootstrap要学到什么程度
  • 个人房屋出租给公司怎么开发票
  • 辽宁税务微信公众号
  • 转让土地的土地增值税
  • 电子税务局密码能随便告诉别人吗
  • 税控盘开票怎么赋码的教程
  • 乐陵到德州多远距离
  • 深圳国税咨询电话是多少
  • 金融机构不包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设