在unity的建筑场景中,大家会碰到这样一个问题,建筑中门的运动不自然,没有开门的效果。如果有不了解HingeJoint(铰链关节)的人习惯性的通过旋转门的方向来达到开门的效果,这样就会存在一个物体,开门时无法控制开门的幅度,门是在固定的条件下旋转,而不是像现实中受力的影响而偏移。下面就和大家介绍下通过HingeJoint来控制开门的效果。

一、场景的搭建

在场景中通过Cube搭建出一个门,用独立的一个Cube当作人。场景图如下:

我们需要的效果是移动红色方块去推门,用方块把门推开。

二、门的设置

对门添加刚体和HingeJoint两个组件,在HingeJoint中进行设置,这个组件就是用来控制门的偏移。

要控制门的旋转主要改变组件的Anchor和Axis两个属性,其他保持默认就行。其中Anchor是关节的锚点,物体是绕锚点旋转,Axis是锚点的轴向,控制物体旋转的方向。我设置的是让门绕着左边的门框旋转,方块向前推时,门往里开,向后推时门向外开。

三、开门效果演示

在门之前时,当方块向前移动,可以推着门往里开,在门之后时,方块向后移动,可以推着门往外开。效果图如下,左边的图是门往里开的,右边的图是门往外开的。

四、总结

在unity中,HingeJoint的运用能够使门的开关更真实,HingeJoint通过与别的物体连接来控制物体的偏移,一般用在门、窗的开关,链子、钟摆的摇晃。unity中的关节组件常用的有FixedJoint(固定关节)、SpringJoint(弹簧关节)和HingeJoint(铰链关节)。我们能够通过关节组件把两个物体连接起来,通过力的作用改变一个物体的移动让另一个物体跟随移动,让物体的运动更真实。

Unity中HingeJoint控制开门相关推荐

  1. Pico SDK在Unity中如何控制移动

    Unity导入Pico SDK后如何进行实际开发呢?想必大家都很好奇.从去年的省赛到今年的国赛, 本人研究Pico有快一年了,刚开始学习的时候自己翻过很多的博主文章,都没有找到自己想要的知识,从那时起 ...

  2. Unity中按钮控制模型爆炸拆分的制作

    很基础的教程,适用于unity小白.实现效果如下: 操作步骤如下: 1.在场景中创建动画模型,放到一个空物体下面,如图所示. 2.在window-Animation下,打开Animation窗口,点击 ...

  3. unity中通过代码控制游戏中画质

    最近在开发项目的时候突然想到可以添加一个调整画质的按钮或者DropDown或者Slider的UI来控制游戏中的画质 因为我之前写过一篇关于DropDown的使用方法的博客 DropDown的使用方法地 ...

  4. unity中控制游戏物体移动最基本的三种方法

    **unity**中控制游戏物体移动的最基本的三种方法 第一种移动方法-transform.Translate,游戏物体按照你给的方向和速度进行运动 代码如下: Public float speed; ...

  5. Unity中使用动画状态机控制Spine动画

    下载Spine-Unity 为了在Unity中支持Spine动画,在http://zh.esotericsoftware.com/spine-unity-download/#Download下载spi ...

  6. unity中的关于声音(利用UI控制)

    在游戏制作中声音是一个比较重要的部分,没有声音可以说游戏是没有灵魂的. unity中声音组件介绍 在unity中如果想要加入声音,我们可以再摄像机上添加一个AudioSource 然后下载我们想要的音 ...

  7. unity中声音大小控制物体行为(音量的大小)

    声音的大小控制物体的运动:这个是写好的脚本,拿到unity中就可以测试一下. public class Manager : MonoBehaviour { public float volume; A ...

  8. Unity中C#代码学习用wasd和上下左右键控制物体前后左右上下移动和绕轴旋转

    Unity中C#代码学习用wasd和上下左右键控制物体前后左右上下移动和绕轴旋转 using System.Collections; using System.Collections.Generic; ...

  9. Unity3D总结记录(四) Unity中控制AudioSourse播放多条不同的声音文件

    Unity中,如果需要让播放声音,只需要给游戏对象添加AudioSourse组件即可,但,默认的组件中,仅支持一条音源的播放,如要实现多条音源的播放,可在代码中实现,具体方法如下: 首先在类中申请多个 ...

最新文章

  1. 1 2 5组合100,有多少种方法
  2. IDEA2017注册码
  3. mysql 只返回第一条_mybatis 关联查询时,从表只返回第一条记录解决办法
  4. Android DDMS如何使用?
  5. windows 卸载IE8还原IE7的方法
  6. Bootstrap CSS 编程规范之语法规范
  7. UVA11577 Letter Frequency【文本】
  8. 民族融合 —— 魏晋南北朝
  9. python之scipy库简单操作
  10. 【Jmeter】Jmeter使用教程
  11. Centos下ftp的安装和配置
  12. 进制和ASCII转换工具
  13. 参加第一届“SLAM技术及应用”暑期学校暨研讨会和全国SLAM技术论坛有感
  14. 【自然语言处理】从词袋模型到Transformer家族的变迁之路
  15. 正在移除icloud数据久_数据集中存储、安全备份好帮手,上德数据天忆宝盒PDP-SA104 NAS...
  16. 冲激响应不变法或双线性变换法中的参数T为什么是一个无关紧要的参数
  17. [Android]桌面应用
  18. CC00055.LinuxNetwork——|LinuxApache.V05|
  19. 零基础能不能学计算机专业,零基础新手可不可以学会计算机电脑
  20. OLED 驱动模块程序代码

热门文章

  1. Linux循环登录,输入一次密码,屏幕闪了一下还要输入密码,一直循环在登录界面
  2. matlab三斜晶系,高分子与计算机模拟
  3. 【嵌入式Linux学习笔记】基于Linux官方库的标准外设驱动
  4. 你了解C语言中的输入函数吗?
  5. 通俗易懂的TCP,SSL以及HTTPS的连接建立过程详解
  6. swift airdrop_如何关闭iPhone上的AirDrop(这样您就不会得到未经请求的照片)
  7. 软件测试行业女生多么,软件测试行业为何女生越来越多?
  8. matplotlib部件(widgets)之套索(Lasso)
  9. 互联网时代?真人秀时代?
  10. Frida 基础环境部署和运行第一个 hook demo