// returns the length of the created platform private PlatformObject spawnPlatform(int localIndex, ObjectLocation location, Vector3 position, Vector3 direction, bool activateImmediately) { PlatformObject platform = (PlatformObject)infiniteObjectManager.objectFromPool(localIndex, ObjectType.Platform); platform.orient(position + (direction * platformSizes[localIndex].z / 2), Quaternion.LookRotation(direction)); int objectIndex = infiniteObjectManager.localIndexToObjectIndex(localIndex, ObjectType.Platform); InfiniteObject prevTopPlatform = infiniteObjectHistory.objectSpawned(objectIndex, 0, location, ObjectType.Platform, platform); // the current platform now becames the parent of the previous top platform if (prevTopPlatform != null) { prevTopPlatform.setInfiniteObjectParent(platform); } else { infiniteObjectHistory.setBottomInfiniteObject(location, false, platform); } infiniteObjectHistory.addTotalDistance(platformSizes[localIndex].z, location, false); if (activateImmediately) { platform.activate(); } return(platform); }