2017-10-25 2 views
0

私は原子シミュレータのようなプロジェクトを作成しています。だから、私が現在行っていることは、ユーザーが要素のいずれかをクリックすると、その要素の球体gameobject(つまりアトム)が生成されます。今では原子はそれらの周りに異なるシェル構成を持つ電子を持っています。私はその効果をシミュレートしようとしています。私は球(原子)の周りに単一の軌道経路を作り、原子周りをうまく回転する電子球を生み出すことができます。ここでユニに球の周りに複数の軌道を動的に作成する方法

は、私は次のコードを使用して、これをやっている

enter image description here

のように見えるものです。

// Update is called once per frame 
void Update() { 
    //transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime); 
    transform.RotateAround(rotateAround.position, Vector3.forward, rotationSpeed); 
} 

私は原子(nシェル、pシェルなど)の周りに複数の軌道経路を持つようにしています。私は、rotate aroundメソッドで渡される変換にあるオフセットを追加しようとしましたが、パスが完全に円形ではありませんでした。

どうすればそのようなものを作成できますか?

+0

「Vector3.forward」をランダムな「新しいVector3(x、y、z)」に変更しようとしましたか? –

+0

@CùĐứcHiếuしかし、定義によれば、それはそれが回る軸です。私は別の半径の軌道を持っていたい。 –

+0

正しく理解すれば、半径は電子からプロトンまでの距離であり、その距離(増減)を操作できますか?そしてそれは異なった半径の軌道を作ります。 2番目のパラメータは、2つの軌道が互いに直交するように2つの平面を作ることができます。 –

答えて

1

コードのどこかで電子を生成する必要があります。 コードを見つけて次の操作を行います。

  1. 電子の位置を陽子の位置に設定します。
  2. transform.position += p * Vector3.leftを使用して、左にp単位をシフトします。
  3. Update()メソッドがローテーションを処理します。 Vector3.forwardをランダムnew Vector3(x, y, z)に変更して、軌道を含む平面も回転するように調整すると、より現実的な効果が得られます。
関連する問題