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

这篇具有很好参考价值的文章主要介绍了从零开始教你用Unity做一个自动感应门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


使用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

运行看效果,通过键盘和鼠标正面走近三个方块组成的墙
从零开始教你用Unity做一个自动感应门

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

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

3、创建动画文件

Hierarchy-〉Door-〉在Animation面板左上方的红点下面有一上下双向箭头按钮-〉单击Create New Clip->为Door创建一个动画,弹出保存对话框,输入Door-open并保存
从零开始教你用Unity做一个自动感应门

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

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

5、开始录制动画

下面开始录制动画,单击Animation面板的红色按钮-〉Add Property
–〉Transform-〉Position-〉按右边的+
从零开始教你用Unity做一个自动感应门

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

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

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

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

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

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

二、Animator组件

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

Animator组件在使用脚本互动时较Amination组件复杂
Inspector->Add Component->Miscellaneous->Animation
从零开始教你用Unity做一个自动感应门

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

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

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

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

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

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

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

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

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

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

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,由下往上升

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

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

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

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

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

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

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

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

将Assets下的Door-open动画拖放到场景Door的Amination组件的Element 0;将Door-Close拖放到Element 1
从零开始教你用Unity做一个自动感应门

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

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

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

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

三、总结

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

这次项目从细化到编程语言、脚本与设计,从Unity应用策划到发布,真正贴近实际生产环境开发,为以后AR/VR开发打下基础。文章来源地址https://www.toymoban.com/news/detail-405273.html

到了这里,关于从零开始教你用Unity做一个自动感应门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【用unity实现100个游戏之7】从零开始制作一个仿杀戮尖塔卡牌回合制游戏(附项目源码)

    参考原视频链接: 【视频】:https://www.bilibili.com/video/BV1eF41177hu/ 注意 :本文为学习笔记记录,推荐支持原作者,去看原视频自己手敲代码理解更加深入

    2024年02月08日
    浏览(110)
  • 【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏1(附项目源码)

    他来了他来了,万众期待的类幸存者肉鸽(Roguelike)游戏。我将从0带大家制作一款肉鸽游戏。 这款游戏采用经典的 Roguelike 游戏玩法,每次冒险都将是一次全新的体验。敌人的位置和道具都是随机生成的,确保每次游玩都充满了无限可能性。 你需要运用智慧、策略和一点运气来

    2024年02月05日
    浏览(149)
  • 【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏2(附项目源码)

    本节紧跟着上一篇,主要实现对象池程序化生成敌人和属性配置。 新增不同敌人预制体,并配置默认跑步动画 新增一个敌人类的脚本,实现了敌人向玩家移动并面对玩家的功能。注释已添加在相应的代码行上。 挂载脚本,配置参数,一般敌人移速都是比主角低 我们放几个敌

    2024年03月16日
    浏览(70)
  • 手把手教你用 Jenkins 自动部署 SpringBoot

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念可以总结为三点: 持续集成 持续交付 持续部署 CI/CD 主要针对在集成新代码时所引发的问题(俗称\\\"集成地狱\\\")。 为什么会有集成地狱这个“雅称”呢?大家想想我们一个项目部署的

    2024年02月02日
    浏览(49)
  • 手把手教你用MindSpore训练一个AI模型!

    首先我们要先了解深度学习的概念和AI计算框架的角色( https://zhuanlan.zhihu.com/p/463019160 ),本篇文章将演示怎么利用MindSpore来训练一个AI模型。和上一章的场景一致,我们要训练的模型是用来对手写数字图片进行分类的LeNet5模型 请参考( http://yann.lecun.com/exdb/lenet/ )。 图1 M

    2024年02月04日
    浏览(57)
  • 教你用API插件开发一个AI快速处理图片小助手

    本文分享自华为云社区《【案例教学】华为云API图引擎服务 GES的便捷性—AI帮助快速处理图片小助手》,作者:华为云PaaS服务小智。 调用云服务、API、SDK、调试、查看…… “我”都行,一起来体验用Huawei Cloud API实现AI快速处理图片。 API插件支持 VS Code IDE、IntelliJ IDEA等平台

    2024年02月08日
    浏览(36)
  • 教你从零开始画echarts地图

    离线地图下载地址https://datav.aliyun.com/tools/atlas/index.html echarts文档地址https://echarts.apache.org/zh/option.html 基于VUE编写,其他框架请自行转换,大同小异 先让地图内容出来,npm安装步骤省略,请参考官方文档,创建的div必须设置宽度和高度,关于图表的宽高自适应,参考我的另一

    2023年04月17日
    浏览(65)
  • 小白指南:手把手教你用低代码开发一个应用页面

    原文链接: 小白指南:手把手教你用低代码开发一个应用页面,点击链接查看更多技术内容; 一、什么是低代码开发 在了解低代码开发之前,我们先看看使用低代码开发的效果。 低代码开发效果示例 低代码开发是DevEco Studio为HarmonyOS开发者提供的可视化页面的开发方式,具

    2024年02月09日
    浏览(50)
  • 教你用Python搭建一个属于自己的AI聊天机器人

    近年来,人工智能(AI)的发展日新月异,而 聊天机器人 (Chatbot)则是AI领域的明星应用之一。 今天,我们将深入浅出地介绍如何使用ChatGPT API,构建属于自己的智能聊天机器人的基础。 注册OpenAI账户 要使用ChatGPT API,首先需要在OpenAI官网(https://www.openai.com)上注册一个账

    2024年02月06日
    浏览(69)
  • 【源码可分享】教你用Python制作自动答题脚本,实现自动答题,100%正确率!

    当今社会,人们的生活越来越依赖于计算机技术,而Python作为一种高级编程语言,已经成为了众多程序员的首选语言。Python具有简单易学、代码简洁、可读性强等特点,因此在各个领域都有广泛的应用。其中,自动化脚本是Python的一个重要应用领域之一。本文将介绍如何使用

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包