मैं कुछ हटाने के लिए "L" अक्षर को दबाना चाहता हूं और फिर जो चीज मैंने हटाई है उसे जोड़ने के लिए फिर से "L" दबाएं। मैं वह हिस्सा कर सकता हूं जो इस कोड से हटा देता है:

  document.addEventListener("keydown", onDocumentKeyDown, false);

    function onDocumentKeyDown(event) {
        // Get the key code of the pressed key 
        var keyCode = event.which;
        console.log("l" + keyCode);
        if (keyCode == 76) {
            scene.remove(directionalLight);
        }

        render();
    }

मैंने करने की कोशिश की:

    else if (keyCode == 76) {
        scene.add(directionalLight);
    }

लेकिन जाहिर है यह काम नहीं करता है।

तो मैं "सीन.एड (डायरेक्शनललाइट);" करने के लिए उसी कुंजी को कैसे दबा सकता हूं? ?

0
Godogo 21 जिंदा 2021, 21:19

2 जवाब

सबसे बढ़िया उत्तर

कुछ इस तरह का प्रयास करें:

//use a variable to keep track of if the directional light exists
bool light = true;

document.addEventListener("keydown", onDocumentKeyDown, false);

    function onDocumentKeyDown(event) {
        // Get the key code of the pressed key 
        var keyCode = event.which;
        console.log("l" + keyCode);
        if (keyCode == 76) {
            //check the status of the variable to decide what to do, 
            //and update its status
            if (light) {
                scene.remove(directionalLight);
                light = false;
            } else {
                scene.add(directionalLight);
                light = true;
            }
        }

        render();
    }

यह दो व्यवहारों के बीच बारी-बारी से एक बहुत ही सरल रणनीति है।

1
micpap25 21 जिंदा 2021, 21:28

दृश्य जोड़ा गया है या नहीं, यह जांचने के लिए आपको एक और शर्त की आवश्यकता होगी। मैं तीन.जेएस से परिचित नहीं हूं, इसलिए मुझे नहीं पता कि कोई वेरिएबल है जिसे आप scene.isAdded की तरह जांच सकते हैं या नहीं, लेकिन आप अपना खुद का बना सकते हैं। मैंने नीचे दिए गए कोड में isAdded नामक एक वेरिएबल बनाया है:

document.addEventListener("keydown", onDocumentKeyDown, false);

let isAdded = true; // define the variable outside of the function

function onDocumentKeyDown(event) {
    // Get the key code of the pressed key 
    var keyCode = event.which;
    console.log("l" + keyCode);
    if (keyCode == 76) {
        if (isAdded) {
            console.log('remove');
            scene.remove(directionalLight);
        } else {
            console.log('add');
            scene.add(directionalLight);
        }
        isAdded = !isAdded ; // toggle the isAdded variable
    }

    render();
}
1
erics2783 21 जिंदा 2021, 21:26