rigid-bodies

    3热度

    2回答

    我目前正在使用点击移动Unity的游戏。当我点击地图上的一个点时,我将鼠标点击到目的地,然后使用RigidBody.MovePosition()将该物体移动。当我这样做时,当游戏对象到达目的地时,我会发生很多闪烁。任何援助表示赞赏。谢谢。 // COMPONENTS Rigidbody rigidBody; // MOVEMENT Vector3 destination; Vector3

    0热度

    1回答

    我想用与玩家推动物体刚体相同的力拉动物体。但是,我不知道如何使这样的力量等于走进刚体的力量。 这里是我的代码: //if can push and holds button for pushing other.GetComponent<Rigidbody>().AddForce(new Vector3(player.moveInput.x*player.speed*mass, player.mo

    1热度

    2回答

    我正在为一个班级编写一个自上而下的黑客和斜杠游戏。我们想要一个机械师,如果你被敌人击中,或者敌人击中你,你会被“击倒”。不幸的是,无论我尝试了什么,我都无法让敌人或玩家对这支部队做出反应。 这里是中已提出其他问题,这样的事情我已经检查列表: 播放器/敌人不是运动 试图与这两个重力和关闭 没有位置/旋转被冻结 玩家/敌人附有刚体 玩家/敌人有附加的碰撞体,一个和一个没有检查'isTrigger'功能

    0热度

    1回答

    我试过在Unity答案网站上提出这个问题,但由于我还没有收到答案,我想我也会在这里问这个问题。我试图制作一个3D版的游戏“蛇”,但我遇到了严重的问题,试图让第一个蛇段跟在蛇头上。我使用的GameObjects是带有刚体组件的球体,玩家只能控制蛇的“头部”。然后,随着蛇的增长,更多的球体应该沿着主球体的路径添加。 我想知道是否有一个更优雅的解决方案,我想实现什么,或者至少有一点帮助我可以做什么来修复

    1热度

    1回答

    我注意到,当两个物体与Collider2D组件发生接触时,OnCollisionEnter2D不会触发。只有当它们中的一个连接了RigidBody时才会触发。这对我来说似乎很奇怪,因为Unity编辑器本身说,使用静态碰撞器代替非移动的RigidBody对性能来说更好。那么为什么Unity不允许两个具有静态碰撞体的游戏对象在联系时触发碰撞事件?

    0热度

    1回答

    我已经写了一个脚本来移动一个对象通过射线投射到地形上的位置,但是我不能为我的生活似乎使这个运动平稳。我尝试了所有的方法来试图解决这个问题(你可以通过下面的注释代码的数量来判断);禁用各种刚体变量,但无济于事。 (种类)工作的一种方法是禁用连接到物体的碰撞器,但是这会导致物体无意中下沉到地形下方。 任何人都可以请告诉我最好的方法去做这件事吗?我觉得这应该很简单,但我过分复杂。 //Move

    0热度

    1回答

    是否可以阻止两个对象/碰撞体/刚体相互施加拉力,同时仍检查它们之间的碰撞? 我知道你可以通过检查Collider2D组件上的'Is Trigger'属性来做到这一点,但如果我这样做,该对象将不再站在平台上并且会掉下来。 我知道你可以使用Physics.IgnoreCollision,但问题是我想要发生碰撞,我通过OnTriggerEnter方法检查它。我只想让对象停止施加彼此的力量,就像拖动其他人

    0热度

    1回答

    所以我有这个空的游戏对象正在旋转。现在,它有一个球体对象作为它的孩子。所以当父点对象旋转时,子球体似乎围绕它旋转。我想知道该球体的速度,特别是其切向速度。 当我调试时,我发现球体刚体速度/角速度的所有分量都是(0,0,0)。任何人都可以请告诉我如何才能达到此目的。

    1热度

    1回答

    我无论如何都不是物理学专家,因此我无法确切地告诉我所寻找的效果如何。我只是把它称为“下旋”现在:) 图片这样的场景: 有在一张乒乓球桌的你面前一个乒乓球。你用手指在它上面施加压力(用很大的力量从球的顶部到底部)。乒乓球会从你的手指向前滑动但是向后旋转。所以,尽管它已经向前移动时它最终会退回给你,因为它向后旋转:d 我希望是有道理的。我真的不知道这种效应是如何被调用的,所以我不能真正查找解决方案。

    0热度

    1回答

    Im在屏幕外产生一个对象,我想将它发送到中间。 DrawLine显示目标方向是正确的。但是,这个物体会以任何随机的方向出现。我的计算有什么问题? // add force towards center of screen var targetPosition = new Vector3(Random.Range(-3, 3), Random.Range(-3, 3),00);