位置: 编程技术 - 正文

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

  • 年末发票
  • 独资企业的个人所得税怎么缴纳
  • 公司购买了地板可以退吗
  • 应发工资包含请年假吗
  • 建筑公司多个项目,增值税收入确认
  • 个人所得税申报操作流程
  • 理财产品产生的利息怎么入账
  • 拓展费税收分类编码
  • 向境外销售货物交增值税吗?
  • 税控发票包括哪些
  • 费用和利润的比例
  • 企业代办业务有哪些
  • 货物运输企业的经营方式
  • 多交印花税申请怎么写
  • 季度企业所得税计算方法举例
  • 小规模定期定额计税依据
  • 增值税专用发票可以开电子发票吗
  • 企业合同约定调岗不接受辞退没赔偿成立吗
  • 利润分配可以用现金吗
  • 一般纳税人既有批发零售又有不动产租赁
  • 新企业残保金免交三年超过30人
  • 公益性生物资产有哪些
  • 小企业会计准则会计科目表
  • 购买原材料并作会计分录
  • 工商局打印公司章程介绍信
  • 办公室租金可以计入办公费吗
  • 利息保障倍数能反映企业偿债能力吗
  • 税务局返还的个税手续费需要缴纳增值税吗
  • 东芝t351笔记本
  • 公司罚款怎么写
  • 公司的现金管理规定
  • mac电脑新手使用
  • 工厂没有生产许可证可以生产吗
  • 如何解决连接宽带的方法
  • win10电脑时间改了又跳回去
  • 补缴社保操作流程
  • 公积金可以支付二手房首付款吗
  • 支付给员工的工伤赔偿款账务
  • 公司购买二手车需要什么手续
  • 360路由器怎么连接网络
  • 接受捐赠旧的固定资产以什么价格入帐
  • php获取数据库中的数据,输出到div中
  • php怎么取数组
  • 负数发票的销售成本怎么做?
  • 营业税规定
  • 征税对象的具体项目
  • 财务费用税前扣除标准是多少
  • 公司账户收款退回怎么查
  • 救护车车船税优惠政策
  • 支付运输费计入
  • 上月结余金额是什么的
  • 工程服务费会计怎么做账
  • 公司向法人借款协议
  • 住宿发票费率是多少
  • 存货周转率多少算低
  • 资产减值损失什么科目
  • 退多收的费用计入什么科目
  • 没有取得增值税发票
  • 要交多少税收跟什么有关
  • 单位内部部门之间人员调整
  • 预收账款账务处理分录
  • 无票收入怎么写分录
  • mysql日期和时间函数
  • sqlserver数据库怎么导出
  • win8系统蓝屏后无法修复
  • centos6.5安装步骤
  • backupwx.exe
  • ubuntu14升级
  • yosemite 10.10.3 beta4 下载地址 os x10.10.3beta4官方下载
  • centos8设置默认启动命令界面
  • 电脑ie8浏览器
  • win8.1怎么用
  • unity3d地图定位
  • python的判断
  • vue组件互相嵌套
  • jquery设置滚动条到底部
  • jquery滚动条滚动到指定位置
  • jquery attribute
  • 税务干部转正工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设