位置: 编程技术 - 正文

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

  • 业务宣传费和广告费的扣除标准
  • 电子税务局怎么查进项发票明细
  • 餐饮费入什么科目
  • 月末怎么计提税费
  • 去年开的专票今年可以作废吗
  • 有税控盘怎么领发票
  • 分公司的所得税怎么申报
  • 代收污水处理费免税
  • 直接进费用的固定资产
  • 国有企业改制资产评估增值税收规
  • 发生销货退回需要退回发票么
  • 贸易型出口退税流程
  • 1元换购怎么做账
  • 建筑安装业什么时候确认收入
  • 属于制造费用的有
  • 未分配利润可以转盈余公积吗
  • 分支机构的固定资产转移如何处理?
  • 利息可以开专票
  • 关于个体工商户的法律规定及司法解释
  • 旅游合同签订
  • 个税起征点是多少啊
  • 经营租赁中出租人发生的初始直接费用是指
  • 土地使用权摊销账务处理
  • 总资产平均余额是资产总额吗
  • 跨年度增值税发票作废怎么退税
  • 通用文件系统
  • 苹果电脑进入安全模式按什么键
  • PHP:Memcached::touch()的用法_Memcached类
  • 工业企业汽车发生费用处理
  • 个人独资企业怎么做账
  • 法罗群岛知乎
  • 结算借款的账务处理办法
  • php面向对象是什么意思
  • php gzip压缩
  • 前端搭建项目
  • php 验证类
  • 帝国cms怎么用
  • 当月交印花税会计分录
  • 节假日加班工资是几倍
  • wordpress图片大小设置
  • python方差齐性检验
  • 固定资产怎么确认价值
  • 固定资产处置是当月还是下月
  • 增值税发票价税合计不能超过多少
  • 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法
  • 农副产品收购分录
  • 其他收益会计科目解释
  • 抵扣联明细没认证如何申报
  • 固定资产改造替换
  • 项目人员租房费用怎么算
  • 预期收益率怎么用市场预期收益率算
  • 签合同的名称和内容
  • 分配利润给股东公司需要交税吗
  • 删除mysql数据库命令
  • mysql中排序规则是什么意思
  • mysql基本教程
  • Linux下mysql的root密码修改方法
  • xp系统电脑蓝屏无法正常启动怎么恢复
  • linux自动化装机
  • 怎么提高xp系统运行速度
  • 两台mac怎么同步
  • 如何关闭win8快速启动
  • win7桌面图标全部变成了e而且打不开
  • win7系统浏览器不见了
  • windows10x预览版
  • win10预览版好吗
  • javascript入门教程
  • 未知类型的文件怎么打开
  • html气泡效果
  • 关于学习的名言
  • 深入理解新发展理念,推进供给侧结构性改革
  • androidweb view
  • js 小数取整的函数怎么写
  • android 进程通信
  • python网络编程从入门到精通
  • 河北税务怎么查询交了没有
  • 代理业如何缴纳印花税
  • etc可以抵扣吗
  • 继承房产过户后可以要求分割吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设