The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Hi there,
I am trying to create a probabilistic multiple choice test (like in the picture below), I have created it within Unity, hosted it using an Amazon S3 bucket, and embedded it in a Canvas page. How would I now make it so that when they finish it their final score can be pulled from the application and published to the gradebook(only if no previous grade has been recorded). If it is not possible to do this would anyone happen to know how I could simulate this same type of test using Canvas's tools? Let me know if you have any questions or if I can provide any additional information 🙂
Sincerely,
Kyle Brim (Instructor)
Hi - True kudos to you for using Unity for your multiple choice test. We have a 3D immersive life science learning platform and use Unity ourselves. Except...we also have a team to do so. The main option for you might be to create / reuse / find off the shelf middleware that would communicate between Unity and the Canvas public API. I don't know for sure, but I doubt Unity would have the interface to do that for you.
If I may suggest, a faster "time to market" for you would be to dive more deeply into Canvas' own quizzing tools. I believe you can use H5P (https://h5p.org/content-types-and-applications) types with Canvas, and between those and other native tools really should be able to get you what you need. I think the overhead to set up and test any kind of connection with the API is really not going to be a great use of your time.
Maybe others know a way directly, but I thought I might offer that advice.
Can you update the H5P link? The current one is giving a custom H5P 404 error now. I'd like to view what you are proposing.
Thank you
My original link had an extra parenthesis. This should work:
https://h5p.org/content-types-and-applications
Also, I don't know for sure that New Quizzes incorporate H5P per se, but from the available types it sure looks like it does:
https://community.canvaslms.com/t5/Instructor-Guide/How-do-I-create-a-Hot-Spot-question-in-New-Quizz...
Hello @KyleBrim,
What you are describing is the functionality of an LTI. The 1EdTech Consortium maintains the LTI specifications. An LTI is basically a web application that confirms to a strict message-passing and authentication specification. The LTI handles authenticating the user so they have access to your app and so your app has access to the Canvas LTI Grade Service to post the grade. There are starter templates out there, such as those on GitHub, but it will still take a significant time investment to get it up and running if you have never built one before.
I agree with @pwhitmer8 that the built-in Canvas Classic Quizzes or Canvas New Quizzes may better suit your needs. You also can create quizzes with tools like Adobe Captivate and upload those to Canvas as SCORM packages. The bottom line is that unless you want to use Unity for something very interactive and game-like, you may find it easier to use one of the other tools already available.
Hi Kyle,
If I understand correctly, you've exported your Unity game as a WebGL build and put it on a webserver and then embedded it into Canvas page or assignment description, and you're now trying to get the results of the quiz to display in the Canvas gradebook? This is possible, I achieved it myself a few years ago when I was testing Unity's viability as a content creation tool for Canvas, but there are some hoops that you need to jump through.
You need a SCORM compliant package and not an embedded page, as an embedded page will never be able to perform any data exchange with Canvas, including the gradebook. This would be cross-site scripting, which is a massive security issue and so Canvas will block any attempt to do so. Briefly put, SCORM is a coding standard, basically a language that e-learning applications and systems use to communicate with each other. A SCORM package is basically a ZIP file that contains some content that can run in a browser along with SCORM compliant information/code that can be executed by a learning management system, ie. Canvas. This information can include, amongst many other things, grading information and how and when to award points to students for completing your quiz.
Fortunately, you’re not the first person who wants to use Unity to create games/quizzes for Canvas, Moodle and so on. You can purchase this asset in the Unity asset store to make all of this fairly easy: https://assetstore.unity.com/packages/tools/integration/scorm-api-53523
This will enable Unity to build a WebGL SCORM package as a zip file that you can then upload to Canvas via the SCORM feature. You will have to code the SCORM instructions, but once you’ve done so and built your SCORM package in Unity, you can open any course, select SCORM on the side menu and upload the package. Canvas will then create a fully fledged and normal assignment and award points as per the instructions found in the SCORM package/Unity build.
I can’t remember exactly how I did it inside Unity, but you need some sort of trigger for awarding points. This can be very complicated or very simple depending on how detailed your grading scheme for the quiz is, but how you can code this should be available in the asset documentation if you decide to use it.
Good luck. 🙂
- Michael
Edit: By the way, if you're mass producing quizzes, Unity is very unlikely to be the most efficient and reliable tool. Captivate, H5P and other content creation tools that I see others have suggested are definitely faster and easier to use, but they are quite limited in options whereas Unity has no hard limits. Also, since Unity's technical complexity is a lot greater than more commonly used tools, expect that you will need to provide some tech support to students if you use it. 🙂
I did not know Unity had a built-in tool for building SCORM packages. This is a nice piece of info to keep in mind if anyone ever wants to create something that needs to go beyond the offerings of Captivate, H5P, etc. Thank you, @michael5!
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in