使用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外门自动关闭。文章来源:https://www.toymoban.com/news/detail-405273.html
这次项目从细化到编程语言、脚本与设计,从Unity应用策划到发布,真正贴近实际生产环境开发,为以后AR/VR开发打下基础。文章来源地址https://www.toymoban.com/news/detail-405273.html
到了这里,关于从零开始教你用Unity做一个自动感应门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!