iNaturalist for Unity is a third-party tool created by Josh Aaron Miller to provide integration between Unity projects and the iNaturalist API.This package gives you easy access to the entire iNaturalist database and server!Use it to:Add authentic nature sounds to your gameAdd authentic nature photography for flavorful immersionGet information about local flora and fauna to make your real-life setting more realisticEnable your players to make citizen science contributions to worldwide efforts in biodiversity scienceAnd more!This project is not endorsed by iNaturalist, the California Academy of Sciences, or National Geographic. This project is not sponsored by or affiliated with Unity Technologies or its affiliates. “Unity” is a trademark or registered trademark of Unity Technologies or its affiliates in the U.S. and elsewhere.Getting StartedAdd this package to your Unity project.For any scripts that want to interact with iNaturalist, import this code by adding using JoshAaronMiller.INaturalist; at the top of the file.Add an INatManager component to any GameObject, e.g.: INatManager myINatManager = gameObject.AddComponent(); or by adding the component in the Unity editor.Use the INatManager to make calls to the API following the documentation, see the examples below.General Usage NotesAll calls to the INatManager require two parameters: a function to callback when the request returns successfully, and a function to callback when the request fails.Example:INatManager iNatManager;ObservationSearch myObservationSearch;// ...public void ProcessObservations(Results myObservationResults){// do stuff}public void HandleError(Error error){// do stuff}iNatManager.SearchObservations(myObservationSearch, ProcessObservations, HandleError);AuthenticationThe demo authenticates in a way that is simple to program but cumbersome for the user, i.e., by asking the user to copy/paste in their API token. For a production-ready application, you would want to instead use a web viewer to load the iNaturalist login screen within the client. See iNaturalist's recommended means for authenticating, here.Free web viewers:For free web viewer packages, I have found these options (this is not an endorsement of any software listed below):Windows: https://github.com/tunerok/unity_browserEverything else: https://github.com/gree/unity-webviewAndroid / iOS: https://assetstore.unity.com/packages/tools/utilities/game-package-manager-147711Common Use Cases and ExamplesFetch soundsWhy: Your game/project wants to have authentic nature sounds, such as bird calls from real birds of a specific species.Example: See this project's GitHub page for examples.Fetch picturesWhy: Your game/project wants to use authentic nature photography for flavorful immersion.Example: See this project's GitHub page for examples.Get information about local flora/faunaWhy: Your game/project uses a real-life place and wants to have accurate information about the animals and plants that live in that area.Example: See this project's GitHub page for examples.Help classify images or soundsWhy: Your game/project has a real citizen science component where users can submit labels or vote on existing labels.Example: See this project's GitHub page for examples.DocumentationSee this project's GitHub page for more details, examples, and documentation.iNaturalist + UnityThe full documentation for this code is available here.iNaturalist API DocumentationThe official iNaturalist API documentation is available here.SupportFor questions or feedback, contact me at josh [at] joshaaronmiller [dot] comFeatures:Search observations, identifications, and biological taxa by a wide range of parametersSubmit new identifications for classifying and labeling dataThoroughly documentedWell-commented demo and examplesSee this project's GitHub page for more details, examples, and documentation.