如何创建一个3D立方体,并将其定位在另一个对象的中心?

问题描述 投票:0回答:1

添加一个立方体只是为了测试如何找到中心的蓝色东西。找到中心后,我会使用我的激光束。

另一个对象没有渲染器,所以我想用刚体组件在他身上找到中心。

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.AI;

public class CenterTest : MonoBehaviour
{
    public NavMeshAgent agent;

    private bool createCube = false;

    void Start()
    {

    }

    void Update()
    {
        if (createCube == false)
            {
                var center = agent.GetComponent<Rigidbody>().centerOfMass;
                var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                cube.transform.localPosition = new Vector3(0, 0, 0);//center;
                cube.transform.parent = agent.transform;

                createCube = true;
            }
    }
}

这是在检查器设置下的代理截图。主要的目标是拍摄使一个激光束从代理中心出来的圆圈蓝色的东西在中心.但中心的蓝色是不是一个骨头或游戏对象,我可以得到它的位置。所以我假设蓝色的东西在中心。

问题是这个立方体从来不在中心,而是在世界的其他地方。

enter image description here

c# unity3d
1个回答
1
投票

如果没有人给你一个更好的答案,可以试试这个。

添加一个空的游戏对象,并尝试将其定位在蓝色圆圈的中心,然后你可以通过脚本获得它的位置。

另一种方法(如果你熟悉3D软件的话)是在3D软件中打开科幻无人机模型,并将位置设置为(0,0,0),然后切换到顶点模式,选择蓝圈中间的顶点,就可以得到它相对于科幻无人机的位置。

© www.soinside.com 2019 - 2024. All rights reserved.