0

球体との衝突をしたいだけです。2 つの球体があり、そのうちの 1 つが別の球体に移動しています。最初はそれらの間に距離があり、距離が 5 であるとしましょう (球体 1 と球体 2 としましょう)。そして、球体 1 が球体 2 に衝突すると、球体 2 は 5 単位だけ移動する必要があります。そして、この衝突は物理法則に従って実体化する必要があります。私はそれを行うことができますか?私は多くのことを試しましたが、私は unity 3D に非常に慣れていません。そのため、方法を見つけることができませんでした。助けてくれてありがとう。

4

2 に答える 2

1

それが物理学で意味をなすために、そして任意の距離で同じことを行うには、球体 1 が球体 2 に向かって加速する必要があると思います (または、10 ユニットに加えて摩擦が発生するのに十分なエネルギーで開始します) すべてを転送しますすぐに停止している間、そのエネルギーの量を減らすと、衝突後に同じ速度で減速するために sphere2 が必要になります。

球体が必要な距離を移動するまで一定の速度で移動するように、単純化されたまたは漫画的な物理学を使用して、自分で移動する方が簡単な場合があります。

于 2012-06-19T13:52:52.630 に答える
0

次のようなことを試しましたか?

using UnityEngine;
using System.Collections;

public class MovingSphere : Monobehavior // Attatch to sphere1
{
    public GameObject sphere1, sphere2; // Set these in the inspector
    // Say sphere1 is at (-2, 0, 0)
    // Say sphere2 is at ( 0, 0, 0)

    void Update( )
    {
        if(sphere2.transform.position.x < 5) // If x-position of sphere2 < 5
        {
            sphere1.transform.Translate(0.1f, 0, 0); // Moves the first sphere
        }                                            // positively on the x-plane
    }
}

私はこれを今書いたので、テストされていません...しかし、それは次のようになるはずです:

START SCENE:

 [x] [-2] [-1] [00] [+1] [+2] [+4] [+5]
(s1)           (s2)

 [x] [-2] [-1] [00] [+1] [+2] [+4] [+5]
     (s1)      (s2)

 [x] [-2] [-1] [00] [+1] [+2] [+4] [+5]
          (s1) (s2)

 [x] [-2] [-1] [00] [+1] [+2] [+4] [+5]
               (s1) (s2)

 [x] [-2] [-1] [00] [+1] [+2] [+4] [+5]
                    (s1) (s2)

 [x] [-2] [-1] [00] [+1] [+2] [+4] [+5]
                         (s1) (s2)

 [x] [-2] [-1] [00] [+1] [+2] [+4] [+5]
                              (s1) (s2) <Stop>

2番目の球がヒットしたときに狂った場合は、y軸とz軸をロックする必要があります。これは、インスペクターウィンドウの小さなチェックボックスで実行できます。

さらに何か必要な場合はお知らせください。

于 2012-06-24T16:37:26.887 に答える