Tag: 游戏物理

当试图从屏幕边缘反弹时,物体会卡住,我这样做错了吗?

public class AsteroidMovement : MonoBehaviour { public Vector2 speed; public Vector2 direction; private Vector2 movement; private Vector3 TopScreenBound; private Vector3 BottomScreenBound; // Use this for initialization void Start() { TopScreenBound = Camera.main.ViewportToWorldPoint(new Vector3(0f, 1f, 0f)); BottomScreenBound = Camera.main.ViewportToWorldPoint(new Vector3(0f, 0f, 0f)); } // Update is called once per frame void Update() { if (gameObject.transform.position.y >= […]

递归调用buff / unbuff? C#Unity3D

我的目标是进行单次碰撞检测,这将降低与特定持续时间碰撞的物体的移动速度。 到目前为止我尝试了什么: //Class that detects the collision if (other.gameObject.tag == “enemy”) { EnemyMovement enemyMove = other.GetComponent (); if (enemyMove.slowMove != 1) { return; } enemyMove.Slow (2, 0.5f, true); //…. //Class that handles the Enemy-Movement //The slowfactor gets multiplied with the Vector3 that handles the movementspeed of the Character void FixedUpdate () { Movement(); } void […]

如何确定矩形的哪一边与圆碰撞

在你指出这个问题还有其他答案之前,我已经查看了这个问题或类似问题的大多数其他答案,但我还没有找到我需要的解决方案。 基本上我想要做的就是当圆/球与矩形碰撞时,我想确定这个碰撞发生在矩形的哪一侧。 我想找到这个,以便我可以强制执行更逼真的物理,例如,如果球击中矩形的顶部,只反过来它的Y速度……而不是两者。 我已经尝试比较球和矩形的X和Y位置,甚至是它们两个边界框的位置……测试即使球的底部与矩形顶部相交……使用’if ball .boundingBox.Bottom> = rectangle.boundingBox.Top’。 我已经附上了一张照片,以显示我想要实现的目标…以防它有点混乱,因为它不详细……如果球从一侧进来,那么看起来像v的红色是路径,我希望撞击时的运动以相反的方式行进,但这取决于矩形的一侧,关于球的速度的哪个部分我将不得不改变…… 仅供参考我也看过矢量标准化…我之前没有使用过它原谅我如果可以用这个来解决… 感谢v.much阅读 编辑,因为我匆忙,我使用了不同的图像……这仍然显示了我想要实现的行为,因为图上显示的物理是我希望球在与另一个碰撞时表现的行为双方……链接到图片: http : //codeincomplete.com/posts/2011/6/12/collision_detection_in_breakout/bounce2.v283.png

基于鼠标瞄准Unity3d

我正在制作炮弹射击游戏。 这是一个简短的代码,我在计算瞄准方向。 Vector3 mousePos = Input.mousePosition; mousePos.z = thisTransform.position.z – camTransform.position.z; mousePos = mainCamera.ScreenToWorldPoint (mousePos); Vector3 force = mousePos – thisTransform.position; force.z = force.magnitude; 这适用于球和角度(0,0,0)。 但是当角度改变时,我无法向正确的方向射击。 假设球和相机在右侧看45度,相同的代码不起作用。 当前代码假定两者都是角度(0,0,0)。 所以在上面提到的情况下,投掷方向总是错误的。 我想把球扔向任何方向。 但假设它为0角并相应地投掷。