如何加载一次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()
};
}
答案 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);
}