THREE.Object3D.add: объект не является экземпляром THREE.Object3D. undefined - как создать несколько объектов me sh со свойствами - PullRequest
0 голосов
/ 10 июля 2020

Разработка сцены солнечной системы. Я решил, что солнечная система состоит из Pl anet объектов (OOP). Каждый объект Pl anet имеет свойства name, size, distance from Sun, et c. Мне удалось создать объект Pl anet с этими свойствами (я могу получить доступ к атрибутам PlanetArray через консоль). Кажется, я не могу понять, как создавать объекты Pl anet (OOP), где сетки имеют вышеупомянутые свойства. Это вызывает ошибку темы. Я попытался разделить / упростить проблему с помощью новой функции для создания объекта PlanetMe sh - без других свойств. Но функция PlanetMe sh выдает ту же ошибку. Я мог бы воспользоваться некоторыми советами. Это ситуация, когда я должен изучить UserData ?

'' '// создать пустой массив для хранения геометрических объектов Pl anet var planetMeshArray = [];

        // create emtpy array to hold 'Planet' objects
        var planetArray = [];

        var unitSphere = new THREE.SphereBufferGeometry(1, 2 * 32, 2 * 16);
        var planetMaterial = new THREE.MeshBasicMaterial({ color: "white" });

        // define PlanetMesh object
        function PlanetMesh(meshName) {
            this.meshName = new THREE.Mesh(unitSphere, planetMaterial); 
        } // end Person function
        console.log("# PlanetMesh object properties: ", PlanetMesh.length);

        // define Planet object
        function Planet(name, position, distance, size) {
            this.name = name
            this.position = position;
            this.size = size;
        } // end Person function
        console.log("# Planet object properties: ", Planet.length);

        // create the Planet meshes!
        for (var i = 0; i < config.planets.length; i++) {
                planetMeshArray[i] = new PlanetMesh(config.planets[i].name);
                scene.add(planetArray[i]);
        } // end for loop

        // create the Planets!
            for (var i = 0; i < config.planets.length; i++) {
                console.log("planets array - Name: ", config.planets[i].name)
                planetArray[i] = new Planet(config.planets[i].name, config.planets[i].position, config.planets[i].distance, config.planets[i].size);
                //scene.add(planetArray[i]); //stmt throws lots errors...temporarily commented
        } // end for loop

        console.log("the planetArray is an array of Planet objects : ", planetArray)
        console.log("the planetMeshArray is an array of Planet mesh objects : ", planetMeshArray)

'' '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...