【问题标题】:Unity 3D Character Stuck on wall-collidersUnity 3D 角色卡在墙壁对撞机上
【发布时间】:2017-01-10 16:09:23
【问题描述】:

我目前正在开发一款 3D Unity 游戏,在该游戏中,您可以通过由方块组成的迷宫控制方块,并且必须避开尖刺、移动的敌人和其他陷阱。 这是它目前的样子(你是蓝色立方体,必须避免移动的粉红色立方体):

现在的问题是,当我沿着墙移动时,玩家会卡住并停止移动,直到我再次向另一个方向移动(墙的每个部分都与玩家一样大,因为我是从图片)。

我已经尝试了所有物理材料和摩擦力,但并没有变得更好:(。

【问题讨论】:

  • 您有任何冲突代码(脚本中是否发生任何事情)?
  • 修复colision代码...没有显示代码...我们哪儿也不去
  • 不,我没有碰撞代码,只有元素上的盒子碰撞器。
  • 你是如何移动你的街区的?如果您使用Translate(),则会忽略帧的物理交互,并可能导致物理实体对象内部的剪切。
  • 我正在像这样移动我的块: input = new Vector3(Input.GetAxis("Horizo​​ntal"), 0, Input.GetAxis("Vertical")); if(rigidBody.velocity.magnitude

标签: c# unity3d character


【解决方案1】:

问题是玩家的 BoxCollider 可能卡在两个墙壁碰撞器之间的边缘。考虑稍微“平滑”碰撞器的边缘,这样玩家就不会被卡住。

【讨论】:

  • 你会怎么做呢?我会考虑使用多边形对撞机,但没有 3D 对撞机。
  • @Tobias 嗯。我猜胶囊对撞机对你来说太粗糙了?
  • 是的,已经以多种方式尝试了所有对撞机,但是当我使用圆形或胶囊式对撞机时,当对撞机发生变化时,玩家会从墙上跳下。是否有任何方法或脚本可以在生成后将所有墙壁对撞机连接到一个对撞机?
  • @Tobias Unity3D中的多边形碰撞器被称为网格碰撞器。
  • 也许最简单的方法是使用 3D 建模软件构建自定义网格。
猜你喜欢
  • 2020-08-14
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 2017-03-30
  • 2016-10-26
相关资源
最近更新 更多