Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在两点之间添加多个长方体碰撞器?_C#_Unity3d - Fatal编程技术网

C# 在两点之间添加多个长方体碰撞器?

C# 在两点之间添加多个长方体碰撞器?,c#,unity3d,C#,Unity3d,我曾尝试在两点之间添加一个线条渲染器,效果很好。如何在两点之间添加多个小方框碰撞器?假设我想在这两点之间添加10个小盒子碰撞器。 长方体碰撞器不应重叠,但第一个长方体碰撞器的结束位置可以与第二个长方体碰撞器的开始位置接触。我希望我在这里讲清楚了 我假设我必须用两个点之间的框碰撞器实例化游戏对象,我如何实现这一点 公共游戏对象PointA; 公共游戏对象PointB; 公共游戏对象GameObjPrefab; //在第一帧更新之前调用Start void Start() { 实例化(GameObj

我曾尝试在两点之间添加一个线条渲染器,效果很好。如何在两点之间添加多个小方框碰撞器?假设我想在这两点之间添加10个小盒子碰撞器。 长方体碰撞器不应重叠,但第一个长方体碰撞器的结束位置可以与第二个长方体碰撞器的开始位置接触。我希望我在这里讲清楚了

我假设我必须用两个点之间的框碰撞器实例化游戏对象,我如何实现这一点

公共游戏对象PointA;
公共游戏对象PointB;
公共游戏对象GameObjPrefab;
//在第一帧更新之前调用Start
void Start()
{
实例化(GameObjPrefab,Mathf.Lerp((float)PointA,(float)PointB,0.5f),四元数.identity);
}
试试看

使用UnityEngine;
公共类CubeCreator:单行为
{
[SerializeField]Transform startPoint=null;
[SerializeField]转换端点=null;
void Start()
{
AddCollidersBetween();
}
void AddCollidersBetween()
{
常数int padding=2;
const int colliderCount=10+填充;
常数浮点数立方=0.5f;
常量浮点lerpMultiplier=1f/碰撞计数;
for(int i=1;i
完美!谢谢
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);
        }
    }

}