我目前正在使用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);
}
部分的我認爲,這可能僅僅是值得嘗試的只是根據它們的大小/距離實例在一排的對象,但我似乎無法得到相當多正確的。雖然這個系統被用於其他的東西,我寧願不重寫全新的代碼,如果這可以稍微修改一下工作。我猜猜四捨五入的價值將會成爲可能?
任何意見或建議將不勝感激。
這樣做了它。只需稍微調整一下代碼,((i + 1)* size.z)將它們全部放在一行中,沒有重疊。謝謝!! – Tony