The forum on this site is closed for new comments and posts. Continue the conversation in our Snap AR Discord server.

For loop doesn´t instantiate multiple times

  • Are you sure it's only happening once? Are 10 "Tapped #" statements being logged in the console or only 1? Are there any error messages?

    Your code is pretty straightforward and should be working. So there must be something else going on.

    Comment actions Permalink
  • Hey Ryan,
    thanks for asnwering,

    Yes, the tap appear 10 times, but the model instantiation is only happening once. And the same happens with any different manipulation i need to do on the model.

    Given the fact that it doesn´t make much sense, i was wondering if it´s the system itself to prevent multiple operations like this on the models. I´m also stating here, i´m trying to do something which LensStudio is probably not supposed to handle in such complexity.

    Comment actions Permalink
  • Hey Ryan,
    thanks for asnwering,

    Yes, the tap appear 10 times, but the model instantiation is only happening once. And the same happens with any different manipulation i need to do on the model.

    Given the fact that it doesn´t make much sense, i was wondering if it´s the system itself to prevent multiple operations like this on the models. I´m also stating here, i´m trying to do something which LensStudio is probably not supposed to handle in such complexity.

    Comment actions Permalink
  • No, Lens Studio doesn't directly limit the instantiation of object prefabs. I believe it's only really limited by processing power.

    I just created a quick example project script that does the same thing you're trying to do, and it seems to work consistently. Not sure if you know this, but the copies don't show up in the scene hierarchy - you'll have to position them in the script to see them separately

    Comment actions Permalink
  • Hi Ryan,
    it seems to be working so i have to thank you.
    I´m still not sure what was wrong with my code but it´s ok.

    I have a very very last tip to ask here to not open a second topic.
    How do i get a runtime reference TO a custom script on an object? The documentation on the scripting is really basic basic, and also the api itself sometimes doesn´t help.

    Thanks a lot in advance if you will answer again.





    Comment actions Permalink
  • Snap actually provides a global method called 'getTime' that you can use to get the number of seconds since the start of the lens (reference: https://lensstudio.snapchat.com/api/GlobalMethods/)

    Coming from a Javascript development background, I usually default to using Date.now(), but using getTime is probably a cleaner way to do it and, more importantly, it should be consistent across multiple scripts.

    Comment actions Permalink
  • i think there was a misunderstanding.

    I meant: normally if you want to access a script variable or a script function from another script, you just create a reference and you link it directly through the Lens Studio editor.

    I wanted to get that reference directly through code, but the getComponent("Component.ScriptComponent") seems always to return "undefined", also because it seems not possible to specify a custom script name to call the exact custom script you´re searching for. At least i haven´t found a way for it.

    Is there any?
    Thanks!


    Comment actions Permalink
  • Oh, got it.

    Should work the way you're describing. Again, just did a quick test and I was able to access a script component through the scene object it was attached to using getComponents. I set up an api variable on the WorldObjectController script (script.api.dummyVariable = "hello from the other side";) and then accessed it and printed that variable in another script.

    I believe you're right in that there's no built-in way to figure out if the script you're accessing is actually the one you want, but you could always specify a "name" variable on the api of each script (script.api.name = "scriptName"). Then, when you access the script programmatically, you could do something like:

    const scripts = script.obj.getComponents("Component.ScriptComponent");

    const scriptYouWant = scripts.find(function(s) { return s.name === "scriptName" });

    Comment actions Permalink

We're here to help! We just need a little bit of information...

What system are you using?

Have you downloaded the latest version of Lens Studio?

Please download the latest version of Lens Studio. If you still run into this issue, please come back and report it!

Is this issue causing Lens Studio to crash?

What system do you run Lens Studio on?

Version

Graphics

Follow the next steps to help us solve your issue:

  • Copy and paste this text into your TerminalCommand Window
    open ~/Library/Preferences/Snap/Lens\ Studio/ %LOCALAPPDATA%\Snap\Lens Studio Copy Text
  • Press ReturnEnter to run the command. The Lens Studio folder will automatically open
  • Prepare to upload your files: zip the "Log" Folder by right-clicking and choosing "compress."
    Locate the Log.txt file right above it.

    Attach a screenshot of the issue:

Name:

Email:

What is this most relevant to?

Please enter a brief description of your issue:

Thanks for submitting this issue.

Unfortunately, it's likely due to the operating system or hardware you're using – since they don't meet the system requirements for Lens Studio.

Still, we hear you loud and clear, and are logging the issue in case there's ever a workaround we can provide!

Minimum Requirements

Operating System: Windows 10 (64 bit); MacOS 10.11+

Hardware: Minimum of Intel Core i3 2.5Ghz or AMD Phenom II 2.6Ghz with 4 GB RAM; Intel HD Graphics 4000 / Nvidia GeForce 710 / AMD Radeon HD 6450 or better; screen resolution of 1280x768 or higher

We'll try to resolve this issue as soon as possible. Thanks for letting us know about it!

Keep an eye out for a followup email from us. We may have a couple more questions for you, or we might already have a solution to offer.

Happy creating!