首页 文章

Unity导入相机视图

提问于
浏览
0

我正在从Rhino将我客户的3D模型导入Unity . 他们给我从Rhino导出的fbx文件,我可以将它们导入Unity . 现在我想为模型导入Camera视图 . 在Rhino中,他们无法将摄像机视图导出为fbx的一部分 . 所以他们把它作为一个脚本给我,信息看起来像下面的样本3相机视图 . 现在我需要找到一种方法来使用这些信息在Unity中添加摄像机视图 . 我们无法手动完成,它应该是自动化的,因为我们必须为许多fbx模型执行此操作 . 我能想到的一种方法是编写一个脚本,使用这些值将摄像机添加到场景中 . 但是它会在运行时发生 . 还有其他更好的选择吗?

谢谢

camName "Name View 1"
  camGroup "Name View 1_Grp"
  focalLen "49"
  Cx "29.1070392477262"
  Cy "32.2508470958018"
  Cz "89.5861273886465"
  Tx "0"
  Ty "0"
  Tz "0"

  camName "Name View 2"
  camGroup "Name View 2_Grp"
  focalLen "49"
  Cx "2.9038526478832"
  Cy "99.2149465666948"
  Cz "7.80852804487048"
  Tx "0"
  Ty "0"
  Tz "0"

  camName "Side View"
  camGroup "Side View_Grp"
  focalLen "49"
  Cx "82.9710911032618"
  Cy "31.0804895092999"
  Cz "14.463142097058"
  Tx "10.4951110723463"
  Ty "0.999934019398793"
  Tz "-4.14650803054286"

1 回答

  • 1

    编辑器脚本怎么样?为了简洁起见,我会留给你解析你自己的文件并弄清楚你的值是什么意思,但下面的代码可以得到你所需要的 .

    示例(未经测试):

    using UnityEngine;
    using UnityEngine;
    using UnityEditor;
    using System.Collections;
    
    public class LoadCameras : ScriptableObject
    {
        [MenuItem ("CameraLoader/Load")]
        static void MenuCameraLoader()
        {
            var path = EditorUtility.OpenFilePanel(
                    "Load cameras",
                    "",
                    "txt");
            if(path.length!=0){
                // * parse the file here for your values
                // * assume we get a position and orientation
                // * for each camName call
                //   CreateCamera(camName,position,orientation/*, other stuff*/);
            }
    
        }
        static void CreateCamera(string name,Vector3 position, Quaternion rotation /*, other props*/){
            GameObject newCamera = new GameObject(name);
            newChild.AddComponent(Camera);
    
            newCamera.transform.position = position;
            newCamera.transform.rotation = rotation;
            // load camera with other properties
        }
    }
    

相关问题