文章目录

  • 一、设置物体参数
    • 1、打开实现的项目(可以人在走动),选一块平地一排放三个长方体组成一面墙,中间的长方体薄一点当门用。参考下面的尺寸。
    • 2、单击Scene视图右上角的图标(竖向的三个小点)-〉Add Tab-〉Animation,Animation视图就显示在Unity的主控面板上
    • 3、创建动画文件
    • 4、在Door的Inspector面板中出现Amimator组件
    • 5、开始录制动画
    • 6、移动红色的时间帧到1:00位置-〉在Scene面板中,沿Y轴向下移动Door,使其顶部的面与Floor对齐
    • 7、再次单击红色按钮,完成动画记录
    • 8、运行,在Game视图查看Door的动画,门下降的动画自动在场景中播放
  • 二、Animator组件
    • 1、将Animator组件更换为Animation组件
    • 2、将Assets下的Door-open动画添加到场景Door的Amination组件的Animation右边的参数选项
    • 3、右击Animator ->Remove Component,删掉Animator组件
    • 4、运行,在Game视图查看Door的动画,门下降的动画自动在场景中播放,去掉Amination组件的Play Automatically,门不再下降
  • 三、脚本实现,当人走进门时,门再下降
    • 1、Door->Assets-〉Create-〉C#,在Project面板选择新建的脚本,重命名为Door.cs
    • 2、再参照录制动画Door-Open的过程录制Door-Close,由下往上升
    • 3、Project->Asset->选中Door-open动画 -> Inspector最右边的下拉按钮(竖向的三点)-〉Debug-〉Lagacy选项打勾
    • 4、Project->Asset->选中Door-close动画 -> Inspector最右边的下拉按钮-〉Debug-〉Lagacy选项打勾
    • 5、Debug最右边的下拉按钮-〉 Normal回到 Inspector窗口
    • 6、Inspector-〉Aminations-〉Size=2,此时会在下面出现Element 0和Element 1
    • 7、修改ThirdPersonController_LITE的Door(Script)组件下的参数:Door右边的选项为door.
    • 8、运行,使用W、A、S、D健,当游戏玩家向场景中的Door对象靠近时,触发Door-Open动画
  • 三、总结

使用Unity对墙体的交互动作进行制作

一、设置物体参数

1、打开实现的项目(可以人在走动),选一块平地一排放三个长方体组成一面墙,中间的长方体薄一点当门用。参考下面的尺寸。

  • GameObject-〉Create Other-〉Cube-〉重命名Wall
    Inspector-〉Wall的Potion:640、102、0,Scale:10、3.5、1
  • Hierarchy-〉Wall-〉Duplicate-〉重命名Wall2
    Inspector-〉Wall2的Potion:660、102、0,Scale:10、3.5、1
  • Hierarchy-〉Wall-〉Duplicate-〉重命名Door
    Inspector-〉Door的Potion:650、102、0,Scale:10、3.5、0.4

运行看效果,通过键盘和鼠标正面走近三个方块组成的墙

2、单击Scene视图右上角的图标(竖向的三个小点)-〉Add Tab-〉Animation,Animation视图就显示在Unity的主控面板上

3、创建动画文件

Hierarchy-〉Door-〉在Animation面板左上方的红点下面有一上下双向箭头按钮-〉单击Create New Clip->为Door创建一个动画,弹出保存对话框,输入Door-open并保存

4、在Door的Inspector面板中出现Amimator组件

5、开始录制动画

下面开始录制动画,单击Animation面板的红色按钮-〉Add Property
–〉Transform-〉Position-〉按右边的+

6、移动红色的时间帧到1:00位置-〉在Scene面板中,沿Y轴向下移动Door,使其顶部的面与Floor对齐

7、再次单击红色按钮,完成动画记录

8、运行,在Game视图查看Door的动画,门下降的动画自动在场景中播放

二、Animator组件

1、将Animator组件更换为Animation组件

Animator组件在使用脚本互动时较Amination组件复杂
Inspector->Add Component->Miscellaneous->Animation

2、将Assets下的Door-open动画添加到场景Door的Amination组件的Animation右边的参数选项

Door的Inspector窗口下方出现Amination->点开下面的Animations,size=1, Element 0 选Door-open;Play Automatically右边打勾

3、右击Animator ->Remove Component,删掉Animator组件

4、运行,在Game视图查看Door的动画,门下降的动画自动在场景中播放,去掉Amination组件的Play Automatically,门不再下降

三、脚本实现,当人走进门时,门再下降

1、Door->Assets-〉Create-〉C#,在Project面板选择新建的脚本,重命名为Door.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Door : MonoBehaviour
{bool flagdoor = false;public GameObject door;void Update(){float dis = (this.transform.position - door.transform.position).sqrMagnitude;if (!(flagdoor) && dis <= 20.0f){door.GetComponent<Animation>().Play("Door-open");flagdoor = true;}if (flagdoor && dis > 20.0f){door.GetComponent<Animation>().Play("Door-close");flagdoor = false;}}
}

2、再参照录制动画Door-Open的过程录制Door-Close,由下往上升

3、Project->Asset->选中Door-open动画 -> Inspector最右边的下拉按钮(竖向的三点)-〉Debug-〉Lagacy选项打勾

4、Project->Asset->选中Door-close动画 -> Inspector最右边的下拉按钮-〉Debug-〉Lagacy选项打勾

5、Debug最右边的下拉按钮-〉 Normal回到 Inspector窗口

6、Inspector-〉Aminations-〉Size=2,此时会在下面出现Element 0和Element 1

将Assets下的Door-open动画拖放到场景Door的Amination组件的Element 0;将Door-Close拖放到Element 1

7、修改ThirdPersonController_LITE的Door(Script)组件下的参数:Door右边的选项为door.

8、运行,使用W、A、S、D健,当游戏玩家向场景中的Door对象靠近时,触发Door-Open动画



三、总结

通过借助前一个项目的人物运动控件,这次设计了一个自动感应的门,实现了当人物接近20cm内自动开门,当人物离开20cm外门自动关闭。

这次项目从细化到编程语言、脚本与设计,从Unity应用策划到发布,真正贴近实际生产环境开发,为以后AR/VR开发打下基础。

从零开始教你用Unity做一个自动感应门相关推荐

  1. 【游戏开发创新】手把手教你使用Unity制作一个高仿酷狗音乐播放器,滨崎步,旋律起,爷青回(声音可视化 | 频谱 | Audio)

    文章目录 一.前言 二.获取UI素材 三.使用UGUI制作界面 1.界面布局 2.账号圆形头像 3.搜索框 4.调节UI层 5.黑色按钮悬浮高亮效果 6.纯文字按钮 7.滚动列表自适应 8.歌名与视频 ...

  2. 零基础Unity做一个中秋诗词鉴赏网页,提前祝您中秋快乐!(DoTween动画 | WebGL视频 | 大文件上传GitHub)

    零基础Unity做一个中秋诗词鉴赏网页,提前祝您中秋快乐! 前言 一,环境搭建 1.1 安装Unity 1.2 添加WebGl模块 二,开发项目 2.1 导入插件 2.2 项目搭建 2.3 逻辑处理 ...

  3. Unity做一个太阳系

    Unity做一个太阳系(适合初学者学习) 步骤 1.新建Unity项目(我用的unity2019) 2.在assets中建script文件夹,material文件夹. 2.创造9个sphere物体:太 ...

  4. 手机python软件怎么下载词云_从零开始教你用 Python 做词云

    原标题:从零开始教你用 Python 做词云 雷锋网按:本文作者王树义,原载于微信公众号玉树芝兰(nkwangshuyi),雷锋网经授权发布. 临渊羡鱼,不如退而结网.我们步步为营,从头开始帮助你用P ...

  5. 三步教你用Node做一个微信哄女友(基友)神器,小白可上手

    前言 不知道大家最近有没有被python版的<微信每日说>刷屏呢,他可是霸占了github的python热门快两周了.我们前端的小伙伴是不是也看着有点眼馋呢,因为毕竟是不那么熟悉的pyth ...

  6. 教你用CSS3做一个旋转的宇宙星球

    教你用CSS3做一个旋转的宇宙星球 可能略有瑕疵,无非就是先画一个圆圈,把小球定位到上面,然后再让圆圈旋转即可 直接上效果图 代码 <!DOCTYPE html><html lang ...

  7. 用Unity做一个小Demo入门Unity

    文章目录 前言 个人介绍 一.准备工作 1. unity下载安装 2. 个人许可证激活 3. 素材下载 二.项目准备 1. 项目创建 2. 素材导入 三.开始项目 1. 将素材变为精灵 2. 将精灵放 ...

  8. 教你用C++做一个简单的用户名以及密码注册系统

    很多网站在访问时都要登陆或注册,今天,小编教大家做一个特别简单的注册系统. 首先在注册时先会让你设置用户名,我们用一个字符串存储并输入它: int main(){string name;getline ...

  9. unity做一个小游戏(适合零基础或者巩固加深unity中的工具类的用法)

    今天跟着官方unity做了一个小游戏.巩固一下之前学习的unity的知识.注意unity的版本要在2018.3以上 大概游戏是这样子的如图:人物只能控制左右移动,空格发射饼干,动物从屏幕上方随机出现在 ...

  10. 使用Unity做一个艺术字系统

    为了熟悉CaptureScreen方法,做一个艺术字系统. 首先声明一个公共变量toward,以便在书脚本Cature_Use中调用,然后给另一个变量delays赋予一个随机值,以便每个小球的运动显得 ...

最新文章

  1. 聊一聊如何优雅地向程序员提问题
  2. Windos 解决Flutter 报错
  3. 【图像修复】浅析:图像修复中的TV模型
  4. C语言棋盘中的正方形,C语言DFS(4)____棋盘问题
  5. Android插件化开发之DexClassLoader动态加载dex、jar小Demo
  6. Tableau Desktop
  7. row number函数_窗口函数介绍及案例实战
  8. 1016. 部分A+B (15)-PAT乙级真题
  9. 开启samba服务的设置步骤
  10. 云计算和python哪个好就业_盘点linux云计算就业方向
  11. 柯西过程(Cauchy process)
  12. python 通达信公式函数_通达信zig函数的python实现
  13. RDS MySQL和Mongodb 物理备份文件.xb恢复到自建数据库
  14. XRename(文件文件夹超级重命名工具)简介
  15. 财报对比:GREE和DeNA由来已久的竞争
  16. 国产web端开源ui组件-通用前端ui界面组件库
  17. 有36匹马,六个跑道,用最少的次数选出最快的前3匹马
  18. 调焦后焦实现不同距离成像_相机的“对焦”和“变焦”,这二者有什么区别?...
  19. 爬虫技术框架——Heritrix
  20. CLRS 2.2分析算法

热门文章

  1. 晶圆切割机_单轴晶圆划片机特点:
  2. 360 vs QQ 有意思的大战
  3. 邮件服务器公网IP被国外反垃圾联盟(PBL)列入黑名单移除操作方法
  4. android截图方法,安卓手机的截图方法
  5. python12306抢票_Python 12306 的抢票工具
  6. Java实现电子表格的创建
  7. Random类:用来产生随机数字
  8. c#:判断一个数组元素中否有重复元素
  9. Python编程:判断字符串中是否包含中文
  10. 影响虚拟主机访问速度的因素,主要有哪些?