位置: 编程技术 - 正文

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游戏开发引擎)

  • 4s店事故处理流程
  • 申报表货物及劳务是什么
  • 计提税金账务处理
  • 金融类企业
  • 附加税是当月计算吗
  • 油卡预付款可以报销吗
  • 想要自己开厂应该怎么做
  • 企业发生的技术转让费应计入
  • 凭证审核签字操作只能
  • 财务部门使用固定资产的折旧计入管理费用
  • 电子承兑汇票接收和转出步骤
  • 前期物业开办费和承接费一样吗
  • 银行代付工资如何做财务处理合适?
  • 经营租赁不动产发票备注栏
  • 当月支付租金没有发票
  • 详解劳务报酬个人所得税应该怎么计算?
  • 营改增后固定资产进项税抵扣规定
  • 快递费可以抵扣进项税额吗
  • 小规模增值税本期免税额怎么计算
  • 企业购买原材料生产时企业还没有赚到钱
  • 电子申报是什么
  • 培训学校的收入
  • 应付职工薪酬科目的应用
  • u盘如何进行杀毒
  • 网页游戏玩着卡
  • 补缴增值税的会计处理
  • 附加税会计分录2022
  • 撤销权之诉需要哪些证据
  • 公司转账到支付宝有记录么
  • u盘bios设置usb启动
  • php ini
  • PHP:eregi_replace()的用法_Regex正则函数
  • 另一种答案
  • 企业利润对外投资会计处理
  • 马格达拉之战
  • php生成时间戳
  • 银行承兑汇票贴现怎么算
  • mac如何使用php
  • 应收账款账务处理及案例分析
  • php file_get_contents smb
  • 增值税专用发票查询系统官方网站
  • redux-tookit
  • svg symbol
  • 进项税转出能转回吗
  • 退伍军人企业所得税优惠
  • 法人不发工资可以吗
  • 公司全部股权转让流程
  • 母公司持有子公司70%股权
  • 进出口 外汇
  • 存货跌价准备可以转回吗?
  • 公司注销应付款如何办理
  • 售后更换零件的申请
  • 健身房健身器材采购清单
  • 红十字会是事业编还是行政编
  • 小企业应收账款减值
  • sql server 约束
  • Linq to SQL 插入数据时的一个问题
  • wininfo.exe - wininfo是什么进程
  • win8开始屏幕设置
  • w10消费者版本和专业版区别
  • win7为什么打不开原神
  • 如何清楚windows搜索记录
  • /usr/bin/install: 无法创建一般文件‘/usr/local/man/man1/cjpeg.1’: 没有那个文件
  • linux创建.c
  • script_tool_for_windows.bat Windows 环境下的 hosts 一键部署脚本
  • opengl 模型
  • jquery刷新局部页面
  • nodejs实战教程
  • 三眼仔啥意思
  • opengl示例
  • Activity的四种启动模式和onNewIntent()
  • Node.js中的construct构造函数
  • flask使用celery
  • android设计模式总结
  • unity3d 画线
  • vue2.0与bootstrap3实现列表分页效果
  • JavaScript中的方法名不区分大小写
  • 郑州地铁客服热线电话
  • 客货两用车应如何运输
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设