位置: 编程技术 - 正文

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

  • 房东口头答应减免房租又反悔了
  • 无偿使用厂房用交税吗
  • 劳务外包 规定
  • 隔年的发票能冲销吗
  • 企业对公账户转法人私户
  • 购买金税盘需要带什么
  • 行政单位预算资金拨付流程
  • 分期收款开具发票可以吗
  • 年末本年利润结转未分配利润
  • 怎么核算关联企业的借款费用?
  • 用于出口的进项可以抵扣吗
  • 以前年度已付的现金
  • 公司从基本户转钱到一般户走流程?
  • 实收资本未实缴到位,是否缴纳印花税
  • 政府补贴项目申报流程
  • 商贸公司结转成本应该贴什么凭证
  • 小企业会计准则2023电子版
  • 电费发票可以抵扣进项吗
  • 小规模纳税人印花税怎样计算
  • 房产税的改革方向
  • 个人所得税是次月申报上月的吗怎么填
  • 开户许可证怎么下载电子版
  • 未计提工资
  • 开发成本开发间接费用是哪类账户
  • 外籍员工家属入境
  • 应付职工薪酬科目的应用
  • 管理人员预借差旅费会计分录怎么写
  • 如何查企业是否上市公司
  • 支付设备维修费用计入什么科目
  • 增值税减免是当月报下月冲吗
  • php面向对象的三大特征
  • 出租厂房代收的水电费如何账务处理
  • 股权无偿赠与协议书范本
  • Netlib.exe - Netlib是什么进程 有什么用
  • 数据持久化操作
  • 若依系统怎么样
  • php页面刷新代码
  • 投资性房地产的减值准备可以转回吗
  • 税管员管多少企业
  • 代理进口业务应纳的关税
  • 租赁业务成本
  • 公司负担个人所得税如何做账
  • 年收入1500万是富人吗
  • 小规模纳税人怎么申报增值税报表
  • 增值税直接计算法间接计算法举例
  • 跆拳道馆薪酬详细方案
  • 财务费用中的利息支出
  • 存货的发出计价方法有哪些
  • 走逃失联企业管理办法
  • 资产减值损失是负的意味着什么
  • 销售返利怎么做税务处理
  • 个人所得税经营所得税申报表A表
  • 记账凭证的项目有哪些
  • 冲回以前年度工会费
  • 会计做账的凭据怎么写
  • 医院财务核算制度
  • mysql拆表迁移数据
  • sqlserver的sql文件导入mysql
  • sql server的主数据库是( )
  • mysql8.0 主从
  • bios设置或coms设置完整的说法
  • xp系统弹出广告怎么处理
  • winxp系统提速
  • 局域网 下载
  • windows xp设置屏保密码
  • linux 维护命令
  • 用iTunes更新iPhone结果盘容量一直减少
  • ubuntu sudo not found
  • win7系统怎样
  • Win10 Mobile Build 14342上手体验视频
  • w8虚拟内存怎么设置
  • python2.7多进程
  • node 连接sqlserver
  • javascript怎么学
  • jquery 动态添加列表元素
  • java项目怎么变成web项目
  • python读取一个文件并写入另一个文件
  • 家庭农场有什么用途
  • 纳税人办理汇算清缴
  • 税票电话号码变更影响抵扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设