Tag: 碰撞

碰撞后正确附加到GameObject?

如何在碰撞后正确地将GameObject附加(或“粘贴”)到另一个GameObject? 问题:我希望GameObject在碰撞后附加,即使它正在改变比例。 “附上碰撞”代码: protected Transform stuckTo = null; protected Vector3 offset = Vector3.zero; public void LateUpdate() { if (stuckTo != null) transform.position = stuckTo.position – offset; } void OnCollisionEnter(Collision col) { rb = GetComponent(); rb.isKinematic = true; if(stuckTo == null || stuckTo != col.gameObject.transform) offset = col.gameObject.transform.position – transform.position; stuckTo = col.gameObject.transform; } 此代码使GameObject在碰撞后完美连接。 但是当GameObject改变比例(当它附着时)时,它在视觉上不再看起来与它碰撞的任何东西相关联。 […]

三角形 – 三角交点测试

我想知道是否有一些教程或指南来理解和实现3D环境中的三角形 – 三角形交叉测试。 (我不需要知道交叉点发生的确切位置,但只知道交叉点已经发生) 我打算按照理论的pdf来实现它,但我很沮丧 三角形的计算平面方程2。 如果三角形1的所有点都在同一侧,则拒绝为微不足道。 三角形的计算平面方程1。 如果三角形2的所有点都在同一侧,则拒绝为微不足道。 计算交叉线和项目到最大轴。 计算每个三角形的间隔。 相交间隔。 本指南的第5点。 我真的不知道在问什么(所有5,6和7)。 XD 因为我没有很高的数学知识(好吧,我知道大学的几门考试给了我(我是一名原始程序员XD)),请尽量让我尽可能简单。 :D(我试图在谷歌搜索,但大多数链接指向大约4-5页的公式,我真的不知道,我不明白。) 谢谢您的帮助

阻止碰撞运动

我正在XNA开发一款2D游戏,而且我正在研究我的物理课。 我当前的任务是在物体与另一物体相撞时停止物体。 当两个物体发生碰撞时,我让我的游戏调用此function: public void BlockMovement(gameObject target) { //you can call width by just typing width. same for height owner.position.X += (owner.position.X – target.position.X); owner.position.Y += (owner.position.Y – target.position.Y); } 问题是,而不是停止。 正在移动的物体被它的宽度推回。 谁能请出示/告诉我如何做到这一点我在很多项目中一直坚持这一点。 谢谢

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

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 >= […]

WPF C#查找转换后的RectangleGeometry的角点

我正在尝试对一个Rect进行一些命中测试,我将几个RenderTransforms推送到Canvas的DrawingContext。 我已经将相同的旋转/缩放/平移变换应用于RectangleGeometry,因此我可以获得最终绘图的边界。 但是,RectangleGeometry上的.Bounds属性返回轴对齐的边界框,而我需要有向的边界框。 简而言之,我需要一些方法来找到实际变换矩形的角落,以便我可以对它进行命中/碰撞测试。

C#面板随着碰撞而移动

我是C#和Winforms的新手,并尝试制作一个移动面板。 它应该向右移动直到窗口结束然后向左移动。 它应该从一侧到另一侧反弹。 但经过几个小时的尝试后发生的唯一事情是它向左移动并停止。 使用此表单工具: Timer = tmrMoveBox (interval: 50) Panel = pnlBox Label = lblXY (for showing the X and Y coordinates in the form) 这是我的第一个最好的尝试: private void tmrMoveBox(object sender, EventArgs e) { if (pnlBox.Location.X <= 316) { for (int i = 0; i = 0) { for (int i = 0; i >= […]

未调用OnTriggerEnter2D

我试图在Unity中制作小行星的复制品。 问题是我的子弹没有触发小行星上的OnTriggerEnter2D方法。 小行星附有以下脚本: using UnityEngine; using System.Collections; public class Asteroid : MonoBehaviour { void Start () { print (“class initiated”); } void onTriggerEnter2D (Collider2D collider) { Debug.Log (collider); } } 子弹GameObject具有运动学和触发器function,并附有Rigidbody 2D和Box Collider 2D。 小行星GameObject具有Rigidbody 2D和Circle Collider 2D,并且Is Kinematic和Is Trigger未经检查。