Three.js - 多次调用JSON模型

时间:2015-11-05 10:58:12

标签: javascript three.js

如何加载一次JSON模型并多次将其添加到场景中?

目前,我打电话给模特两次。也许有人可以给我一个我正在努力实现的实例。

 public ActionResult Index()
    {


            var _dashboardVM = new DashboardVM
            {
                User = _employee.Users.FirstOrDefault(),

                MenuParentList=_db.Menus
                                 .Where(x => _parentList.Contains(x.Id))
                                 .Select(x => new SMS.Models.ViewModel.DashboardVM.MenuParent
                                 {
                                     MenuParentID = x.Id,
                                     MenuParentName = x.MenuName
                                 })
                                 .OrderBy(x=>x.MenuParentID)
                                 .ToList(),
                MenuList=_employee.Designation.Role.MenuRoles
                                              .Select(x=>x.Menu)
                                              .ToList()

            };
     }

1 个答案:

答案 0 :(得分:1)

您可以在加载程序之外定义geometry对象,如下所示:

var loader = new THREE.JSONLoader();
var genericGeometry;

loader.load( "models/model1.js", meshloader("models/model1.js"));

function meshloader(fileName){
    return function(geometry){
        genericGeometry = geometry;
        createMeshs();
    }
}

// Since `loader.load()` method is async,
// you need to wrap this inside a function and call it when the geometry is actually loaded
function createMeshs(){
   var mesh1 = new THREE.Mesh(genericGeometry, material);
   mesh1.position.set( 0, 0, 0 );
   mesh1.scale.set( 1, 1, 1 );
   scene.add(mesh1);

   var mesh2 = new THREE.Mesh(genericGeometry, material);
   mesh2.position.set( 1, 1, 0 );
   mesh2.scale.set( 1, 1, 1 );
   scene.add(mesh2);
}