位置: 编程技术 - 正文

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

  • 什么是进项税额转出
  • 购入原材料计划成本
  • 如何写财务制度
  • 营业外支出增加的原因
  • 外派人员工资费用怎么算
  • 非盈利组织是什么
  • 个人出口货物到国外
  • 关联方费用分摊是否要调账
  • 企业借个人款该交税吗
  • 废品计入哪个科目
  • 外贸出口退税是退出口金额的多少
  • 软件著作权如何入账
  • 税盘被锁应该怎么办?
  • 自然灾害造成的存货净损失计入什么科目
  • 发票作废时间有多长
  • 个人给公司付款怎么做分录
  • 个税申报初始密码一定要去所属税局看吗
  • 劳务报酬所得缴多少税
  • 税务申报利润表本期金额
  • 继承房产再出售满五是按老证还是按新证计算时间
  • 企业已确认销售收入的售出商品发生销售折让,且不属于
  • mac终端更新系统
  • 鸿蒙系统桌面如何设置
  • 盈余公积必须提折旧吗
  • json去除某个字段
  • 销售安装费的账务处理
  • 进出口商品的税率是多少
  • 应付未付工资企业所得税
  • 以前年度损益调整结转到本年利润吗
  • layui 日期控件赋值
  • echarts饼图标题
  • php domdocument
  • 浅谈php中类和对象的区别
  • 捆绑销售如何进行账务处理?
  • thinkphp框架入门
  • php中&&什么意思
  • 事业单位收到银行利息如何记账
  • 印花税计税基础含增值税
  • 企业利润分配的账务处理
  • 留底税额怎么入账
  • 个人所得税其他扣除300一个月
  • 发票章丢了会不会有事
  • 光盘盒属于什么税收分类
  • 用友t3怎样设置权限
  • mysql中如何设置默认值
  • 公司注销前账务怎么处理好
  • 交强险必须要买嘛
  • 应交增值税为负数是什么意思
  • 无偿调入资产如何做账
  • 市政道路基础设施
  • 公司注销前怎么平账需要提前多久
  • 固定资产可以一次性折旧吗
  • 预提费用为什么是负债
  • 一般纳税人支付房租账务处理
  • 收入与成本不配合
  • 银行对公账户季度
  • 企业年报修改后没有公示怎么办
  • 主营业务成本怎么结转本年利润
  • 如何处理消防安全事件
  • 减值损失账务处理
  • 私营公司融资租房合法吗
  • fedora workstation怎么安装
  • win32k.sys是什么
  • windows越狱软件
  • vc精华氧化变黄
  • Win10中SmartScreen无法设置需要系统管理员身份该怎么办?
  • win10mobile现在能干吗
  • win10系统如何关闭杀毒软件和防火墙
  • find 命令 查找文件
  • opengl混合模式
  • 用python编写登录程序
  • Shell脚本监控linux系统信息
  • django在pycharm
  • html头像代码
  • 仿百度首页html代码静态
  • 如何使用开塞露排便
  • 哈尔滨工业大学录取分数线2023年
  • 社保征管职责是什么
  • 浙江省如何自助缴纳社保
  • 争议问题
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设