私は現在、Vector3.Lerp
を使っていくつかのオブジェクトを連続してインスタンス化しています。これは動作していますが、オブジェクト間にもいくつかのギャップがあります。これは、開始点と終了点の間の距離が新しいオブジェクトを挿入するのに十分な大きさではない場合に発生しますが、少しだけスライドできるほど十分です。彼らはエンドツーエンドで実行する必要があり、お互いに対して直接突き合っています。Unity lerpはギャップを取り除きます
コードは次のとおりです。私の
Vector3 startPosition= blah.transform.position.
Vector3 endPosition = getCurrentMousePosition();
Vector3 size = ObjectToSpawn.GetComponent<Renderer>().bounds.size;
fillCount = Mathf.RoundToInt(Vector3.Distance(startPosition, endPosition)/size.z);
float distance = 1.0f/fillCount;
float lerpValue = 0;
for (int i = 0; i < fillCount; i++)
{
lerpValue += distance;
nextPosition = Vector3.Lerp(startPosition, endPosition, lerpValue);
Instantiate(ObjectToSpawn, nextPosition, Quaternion.identify);
}
パートはそれだけでちょうど彼らのサイズ/距離に基づいて行のオブジェクトをインスタンス化しようとしている価値があるかもしれないと思うが、私はかなりそれを得るように見えることはできません右どちらか。このシステムは何かのために使用されていますが、新しいコードを書き直すのではなく、これを少し変更して動作させることはできます。私はLerpの値を丸めることが、おそらく行く方法だろうと思っていますか?
何かアドバイスやアドバイスをいただければ幸いです。
それを行っています。ちょっとコードを微調整しなければなりませんでした((i + 1)* size.z)。ありがとう!! – Tony