位置: 编程技术 - 正文

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

  • 多交增值税怎么算
  • 以前年度损益调整科目怎么用
  • 电子发票入账是什么意思
  • 辞退福利全部计入当期
  • 加计抵减税额账务处理
  • 企业筹建期间利息支出税前扣除怎么算
  • 收到赠品入库需要用什么记录
  • 国家对工资发放的规定
  • 非正常损失免税吗
  • 超范围经营是不是就等于无证经营
  • 支付职工医药费计入什么科目
  • 金税三期个人所得税税率
  • 一台设备分期开票数量
  • 会计学中递延收益怎么算
  • 单位车辆折旧完怎么处理
  • 电子承兑汇票付款流程
  • 税控设备全额抵扣政策
  • 废品计入哪个科目
  • 旅游服务费如何入账
  • 坏账准备为负数怎么填资产负债表
  • 用人单位逾期未缴纳社会保险费可能会使用的文书
  • 苹果6plus自带软件有哪些
  • 预收账款与应收账款为什么合并
  • 其他综合收益怎么来的
  • 模具成本怎么核算
  • 酒店购啤酒属于什么科目
  • PHP:spl_autoload()的用法_spl函数
  • 进程process
  • 税法的构成要素中,()是税法最基本的要素
  • 每个建筑项目都有监理吗
  • 发行的企业债券是什么会计科目
  • 变电所的相关费用是什么
  • smart 变量表
  • 如何进行iframe框架切换
  • php静态函数
  • 非征期不能抄报
  • 基于html的旅游网站设计源代码
  • metareplace -e
  • thinkphp教程
  • php源码封装
  • 个人税收收入退税政策
  • 质保金如果以后可以退吗
  • 记账凭证的记账符号要打勾吗
  • 增值税专票和普票的区别图片
  • 现金流动负债比率和流动比率一样吗
  • linux开启php服务
  • Fatal error: Call to undefined function mysqli_init() in 路径
  • 坏账准备的计提金额怎么算
  • 织梦自定义模型调用
  • 转出未交增值税最终怎么转平
  • 科目余额表数据包括
  • odbc api
  • 同一控制下合并报表恢复留存收益
  • 金税四期对纳税人的影响有哪些
  • 机关事业单位购买口罩
  • 无形资产的处置损益
  • 出差的住宿费能抵扣吗
  • 材料采购发票未到
  • 年终奖财务是以工资形势发放,个税怎么单独计税
  • 月末应付职工薪酬为负数怎么办
  • 装饰公司工地
  • 担保费能否抵扣增值税
  • 电汇凭证有效期
  • 毛利润包括什么
  • 一家企业至少要运转几个月以上
  • mysql 5.6新特性
  • sqlserver 查看表
  • sql作业怎么执行
  • mmc无法创建管理单元win10
  • intel的me
  • 在linux系统中,用来存放系统所需要的配置文件和子目录
  • mx1014
  • 二分法查找 js
  • 原生js制作日历软件
  • shell脚本 su
  • unity ulua
  • unity网络通信框架
  • unity灯光闪烁效果
  • 社保银行代扣收费吗
  • 东莞市国税局南城莫
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设