c# - 在两点之间添加多个盒子碰撞器?
问题描述
我试图在两点之间添加一个线渲染器并且有效。如何在两点之间添加多个小盒子碰撞器?假设我想在这两点之间添加 10 个小盒子碰撞器。Box collider 不应重叠,但第一个 box collider 的结束位置可以与 2nd box collider 的起始位置接触。我希望我在这里说清楚了。
我假设我必须在两点之间用盒子碰撞器实例化游戏对象,我该如何实现呢?
public GameObject PointA;
public GameObject PointB;
public GameObject GameObjPrefab;
// Start is called before the first frame update
void Start()
{
Instantiate(GameObjPrefab, Mathf.Lerp((float)PointA, (float)PointB, 0.5f), Quaternion.identity);
}
解决方案
尝试
using UnityEngine;
public class CubeCreator : MonoBehaviour
{
[SerializeField] Transform startPoint = null;
[SerializeField] Transform endPoint = null;
void Start()
{
AddCollidersBetween();
}
void AddCollidersBetween()
{
const int padding = 2;
const int colliderCount = 10 + padding;
const float cubeSize = 0.5f;
const float lerpMultiplier = 1f / colliderCount;
for (int i = 1; i < colliderCount; i++)
{
float lerpFactor = i * lerpMultiplier;
GameObject cubeObject = GameObject.CreatePrimitive(PrimitiveType.Cube);
cubeObject.name = "Cube " + i;
Transform cube = cubeObject.transform;
cube.position = Vector3.Lerp(
startPoint.position, endPoint.position, lerpFactor
);
cube.localScale = Vector3.one * cubeSize;
cube.LookAt(endPoint);
}
}
}
推荐阅读
- android - 在 Android P 中以有效的方式获取 android.os.SystemProperties
- angular - 角度应用程序中的 Firebase 功能不起作用
- php - 使用 $_GET['value'] 作为指针的动态页面内容
- ajax - 如何检查记录是否存在于laravel中?
- asynchronous - 如何管理 Dialogflow / Api.ai 中的 5 秒响应超时限制?
- webmail - 如何删除网络邮件中任何给定日期之前的电子邮件?
- mongodb - GroupBy 使用 cond 选择字段
- php - 如何从多维数组中获取所有值
- python - 创建具有实际值的虚拟列
- angular - Angular :mat-input 输出在输入值更改时触发两次