前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >元宇宙3D游戏开发规则丨元宇宙3D游戏链游系统开发实现技术逻辑及方案丨元宇宙3D游戏链游源码案例部署

元宇宙3D游戏开发规则丨元宇宙3D游戏链游系统开发实现技术逻辑及方案丨元宇宙3D游戏链游源码案例部署

原创
作者头像
系统_I8O28578624
发布2023-02-21 15:22:30
2990
发布2023-02-21 15:22:30
举报
文章被收录于专栏:YYDS

  3D场景构建

  场景主体搭建本场景参考此淘宝商品。本项目在此模型的基础上,删掉了几个书架,增加了一个房间和一扇门。

  开关门动画门的架构如下:

  Door(空物体)

  |----DoorPivot(空物体,位于父物体一半门宽度的地方,当作把手,包含Animator)

  |----RealDoor(Cube类型物体,包含Transform,MeshRender和BoxCollider)

  |----DoorTrigger1(Cube类型物体,包含Transform,BoxCollider和Script)

  |----DoorTrigger2(Cube类型物体,包含Transform,BoxCollider和Script)

  其中两个Trigger一内一外,挂载触发开关门动画脚本。RealDoor是门的物理真身,DoorPivot是门的转轴,转轴上挂载Animator实现开关门动画。

  打开Window-Animation-Animation, 点击DoorPivot,Add Property为门的Rotation。在0:00个0:30添加两个关键帧。开门时0:00关键帧Rotation为0,0:30关键帧Rotation为85;关门时0:00关键帧Rotation为85,0:30关键帧Rotation为0。

  Animator状态机如上图编写,当人站到DoorTrigger上的时候触发动画。

  关键代码如下:

  //DoorManager.cs

  public class DoorManager:MonoBehaviour

  {

  private Animator _animator;

  public bool IsDoorOpen()

  {

  return _animator.GetBool("Opened");

  }

  public void OpenDoor()

  {

  if(!IsDoorOpen())

  {

  _animator.SetBool("Opened",true);

  }

  }

  public void CloseDoor()

  {

  if(IsDoorOpen())

  {

  _animator.SetBool("Opened",false);

  }

  }

  void Awake()

  {

  _animator=GetComponent<Animator>();

  }

  }

  .开关门触发

  为Animator添加一个bool变量isOpen,当物体踏入trigger的时候,把isOpen设置为true,否则设置为false。当isOpen变化的时候,Animator状态转移,门的开关状态改变。

  关键代码如下:

  //DoorTrigger.cs

  public class DoorTrigger:MonoBehaviour

  {

  public DoorManager doorManager;

  private void OnTriggerEnter(Collider other)

  {

  doorManager.OpenDoor();

  }

  private void OnTriggerStay(Collider other)

  {

  doorManager.OpenDoor();

  }

  private void OnTriggerExit(Collider other)

  {

  doorManager.CloseDoor();

  }

  }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档