位置: 编程技术 - 正文

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

  • 企业所得税是什么意思大白话
  • 装修工程一切险
  • 进项大于销项怎么结转分录
  • 现金流量表抵消分录
  • 年报过期了
  • 汽车租赁用不用交税
  • 销售折扣怎么开
  • 非货币性资产交换的会计处理
  • 代驾费开增值税专票还是普票?
  • 企业装载机管理制度
  • 财政拨款申请格式怎么写
  • 普票丢失的最新处理2019
  • 租赁收入账务处理
  • 财务费用利息收入在损益表中怎么填
  • 有形动产经营租赁服务税率
  • 固定资产提前报废账务处理
  • 营业收入销售收入计算公式
  • 收到工伤保险的发票
  • 联营 保底
  • 改变资金用途的说明
  • 信息技术服务费发票
  • 荣耀x10的鸿蒙系统怎么开启
  • 差额承兑汇票办法规定
  • 企业所得税分析方法
  • 企业代付个人所得税计算公式
  • mac修改系统版本号
  • dwm.exe是啥
  • php单例模式例子
  • php文本操作
  • php中imagecreatefromjpeg
  • mysql分区分表原理
  • 房地产消防工程入什么科目
  • 发生广告费的会计分录
  • 前端解决跨域问题的代理
  • webstorm功能
  • 嵌入式从业10年,聊聊我对工业互联网和消费物联网的看法 | 文末赠书4本
  • 非营利组织能否开社保账户
  • c语言中sizeof是啥意思
  • 社保减免财务账务处理
  • 建筑业工会经费计提比例
  • 银行汇票是什么意思易懂
  • 固定资产的入账时间应该是什么时间
  • 劳动仲裁经济补偿金写多了
  • 营业成本包含哪些项目
  • 职工薪酬都包括什么
  • 收到土地使用权转让怎么做账
  • 非预算类专用账户
  • 关于职工薪酬的确认和计量下列说法中不正确的是
  • 失控发票未付款什么意思
  • 企业应如何合理安排筹资期限的组合方式,优化资金结构
  • MySQL 5.7双主同步部分表的实现过程详解
  • mysql 5.5 5.6
  • mysql数据库迁移方案
  • mysql数据库简单介绍
  • 微软一般什么时候活动
  • ubuntu tcp
  • cfg是什么格式,怎么打开
  • win10虚拟机无法安装
  • centos安装视频播放器
  • win7如何设置多个显示器
  • win7系统更新怎么关闭
  • 查看rpm包含的内容
  • linux 管理员登录
  • win7玩游戏全屏
  • jquery代码实现鼠标点击
  • 使用jQuery的ajax方法向服务器发出get和post请求的方法
  • java.基础
  • node.js适用哪些场景
  • js alert()
  • node js模块
  • js中的flat
  • js window.screen
  • 人员进出管理系统
  • 城市配套费需要什么资料
  • 哪些润滑油属于润滑剂
  • 运输费用抵扣税率最新规定
  • 网上交医保几点上班
  • 信用体系建设
  • 电子税务局使用率低的原因
  • 自助办税服务厅怎么用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设