Open-source Unity 3D Assets
I am an indie developer and I enjoy creating useful little assets for Unity 3D. Above, you can find some of my assets in action.
I'm sharing these assets on both GitHub (under MIT license) and Asset Store (for free).
If you find my assets useful and would like to support me, you can buy me a coffee (you can also support me via GitHub Sponsors) ☕. If you don't want to, it is totally fine, I still appreciate you using my assets 🐤🌼
Here is a list of my growing number of assets
360° Screenshot Capture
This simple script captures a 360° photo with your Unity camera and injects the necessary XMP metadata to it; so the output image supports 360° viewers on the web out-of-the-box (like Facebook and Flickr). Both JPEG and PNG formats are supported.
Asset Store: https://assetstore.unity.com/packages/tools/camera/360-screenshot-capture-112864
GitHub: https://github.com/yasirkula/Unity360ScreenshotCapture
Adjust Pivot
This script allows you to change the pivot point of an object without having to create an empty GameObject as the pivot point.
Asset Store: https://assetstore.unity.com/packages/tools/utilities/adjust-pivot-112883
GitHub: https://github.com/yasirkula/UnityAdjustPivot
Android Runtime Permissions
This plugin helps you query/request runtime permissions synchronously on Android M and later. It also works on older Android versions and detects whether a requested permission is declared in AndroidManifest or not.
Asset Store: https://assetstore.unity.com/packages/tools/integration/android-runtime-permissi...
GitHub: https://github.com/yasirkula/UnityAndroidRuntimePermissions
Asset Usage Detector
This editor extension helps you figure out at which places an asset or GameObject is used, i.e. lists the objects that refer to the asset. It is possible to search for references in the Assets folder (Project view) and/or in the scene(s) of your project. You can also search for references while in Play mode!
Asset Store: https://assetstore.unity.com/packages/tools/utilities/asset-usage-detector-11283...
GitHub: https://github.com/yasirkula/UnityAssetUsageDetector
Bezier Solution
This asset is a means to create bezier splines in editor and/or during runtime: splines can be created and edited visually in the editor, or by code during runtime.
Asset Store: https://assetstore.unity.com/packages/tools/level-design/bezier-solution-113074
GitHub: https://github.com/yasirkula/UnityBezierSolution
Video: https://www.youtube.com/watch?v=OpniwcFwSY8
Dynamic Panels
This asset helps you create dynamic panels using Unity's UI system. These panels can be dragged around, resized, docked to canvas edges or to one another and stacked next to each other as separate tabs.
Asset Store: https://assetstore.unity.com/packages/tools/gui/dynamic-panels-114126
GitHub: https://github.com/yasirkula/UnityDynamicPanels
WebGL Demo: embedded at the top of this page
Image Cropper
ImageCropper aims to be a powerful, customizable and easy-to-use image cropping solution for Unity 3D. It is created with Unity's UI system.
Asset Store: https://assetstore.unity.com/packages/tools/gui/image-cropper-116650
GitHub: https://github.com/yasirkula/UnityImageCropper
WebGL Demo: https://yasirkula.net/ImageCropperDemo/
In-game Debug Console
This asset helps you see debug messages (logs, warnings, errors, exceptions) runtime in a build (also assertions in editor) and execute commands using its built-in console. It also supports logging logcat messages to the console on Android platform.
Asset Store: https://assetstore.unity.com/packages/tools/gui/in-game-debug-console-68068
GitHub: https://github.com/yasirkula/UnityIngameDebugConsole
WebGL Demo: embedded at the top of this page
Inspect Plus
This plugin helps you view an object's Inspector in a separate tab/window, copy&paste the values of variables in the Inspector and inspect all variables of an object (including non-serializable and static variables) in an enhanced Debug mode.
GitHub: https://github.com/yasirkula/UnityInspectPlus
Native Camera for Android & iOS
This plugin helps you take pictures/record videos natively with your device's camera on Android and iOS. It has built-in support for runtime permissions, as well.
Asset Store: https://assetstore.unity.com/packages/tools/integration/native-camera-for-androi...
GitHub: https://github.com/yasirkula/UnityNativeCamera
Native File Picker for Android & iOS
This plugin helps you import/export files from/to various document providers on Android & iOS. On iOS, it uses UIDocumentPickerViewController in the background.
Asset Store: https://assetstore.unity.com/packages/tools/integration/native-file-picker-for-android-ios-173238
GitHub: https://github.com/yasirkula/UnityNativeFilePicker
Native Gallery for Android & iOS
This plugin helps you save your images and/or videos to device Gallery on Android and Photos on iOS. It is also possible to pick an image or video from Gallery/Photos.
Asset Store: https://assetstore.unity.com/packages/tools/integration/native-gallery-for-android-ios-112630
GitHub: https://github.com/yasirkula/UnityNativeGallery
Native Share for Android & iOS
This plugin helps you natively share files (images, videos, documents, etc.) and/or plain text on Android & iOS. A ContentProvider is used to share the media on Android.
Asset Store: https://assetstore.unity.com/packages/tools/integration/native-share-for-android-ios-112731
GitHub: https://github.com/yasirkula/UnityNativeShare
Runtime File Browser
This plugin helps you show save/load dialogs during gameplay with its uGUI based file browser.
Asset Store: https://assetstore.unity.com/packages/tools/gui/runtime-file-browser-113006
GitHub: https://github.com/yasirkula/UnitySimpleFileBrowser
Runtime Inspector & Hierarchy
This is a simple yet powerful runtime Inspector and Hierarchy solution for Unity 3D that should work on pretty much any platform that Unity supports, including mobile platforms.
Asset Store: https://assetstore.unity.com/packages/tools/gui/runtime-inspector-hierarchy-111349
GitHub: https://github.com/yasirkula/UnityRuntimeInspector
WebGL Demo: embedded at the top of this page
Runtime Preview Generator
This plugin helps you generate preview textures (thumbnails) for your GameObjects or materials in Texture2D format on the fly.
Asset Store: https://assetstore.unity.com/packages/tools/camera/runtime-preview-generator-112...
GitHub: https://github.com/yasirkula/UnityRuntimePreviewGenerator
Runtime Scene Gizmo
This plugin helps you display a runtime scene gizmo as a UI element in your Unity projects. An event is raised when a component of the gizmo is clicked.
Asset Store: https://assetstore.unity.com/packages/tools/gui/runtime-scene-gizmo-123040
GitHub: https://github.com/yasirkula/UnityRuntimeSceneGizmo
WebGL Demo: embedded at the top of this page
Runtime Texture
This asset is an abstraction layer on top of Texture2D.LoadImage to create Texture2D objects at runtime from raw PNG/JPEG data. Image files' contents are stored in RuntimeTexture assets and are used to create Texture2Ds on demand. With this abstraction layer, you no longer need to store the image files in e.g. StreamingAssets directory, you can hold references to RuntimeTexture assets in your scripts and generate Texture2Ds using them.
GitHub: https://github.com/yasirkula/UnityRuntimeTexture
Simple GDPR Consent
This plugin helps you present a GDPR consent dialog to the users. Please note that you are responsible from forwarding the consent data to your SDKs.
Asset Store: https://assetstore.unity.com/packages/tools/gui/simple-gdpr-consent-151966
GitHub: https://github.com/yasirkula/UnitySimpleGDPRConsent
Simple Input System
SimpleInput is an improvement over Unity's legacy Input system that allows you to use custom input providers like on-screen joysticks, UI buttons and d-pads. In other words, it lets you simulate e.g. Input.GetAxis when a button is pressed or a virtual joystick is dragged. It also supports using custom axes and buttons that don't necessarily exist in Edit-Project Settings-Input.
Asset Store: https://assetstore.unity.com/packages/tools/input-management/simple-input-system...
GitHub: https://github.com/yasirkula/UnitySimpleInput
WebGL Demo: https://yasirkula.net/SimpleInputDemo/
Simple Patch Tool
SimplePatchTool is a general-purpose patcher library for standalone applications. This asset is no longer maintained.
Asset Store: https://assetstore.unity.com/packages/tools/network/simple-patch-tool-124296
GitHub: https://github.com/yasirkula/UnitySimplePatchTool
Text to TextMesh Pro Upgrade Tool
This asset helps you upgrade the Text, InputField, Dropdown and TextMesh objects in your projects to their TextMesh Pro variants. It also upgrades the scripts so that e.g. Text variables in those scripts become TMP_Text variables. Then, it reconnects the references to the upgraded components (e.g. if a public variable was referencing an upgraded Text component, it will now reference the corresponding TextMeshProUGUI component).
Asset Store: https://assetstore.unity.com/packages/tools/utilities/text-to-textmesh-pro-upgrade-tool-176732
GitHub: https://github.com/yasirkula/UnityTextToTextMeshProUpgradeTool
Texture Ops
This plugin helps you save/load textures and perform simple operations on them, like scale and slice. It also contains an example sliding puzzle project to demonstrate the slice operation.
Status | Released |
Category | Assets |
Author | yasirkula |
Made with | Unity |
Code license | MIT License |
Links | Asset Store, Source code, Homepage |
Comments
Log in with itch.io to leave a comment.
I just noticed you can't use the EditorUtilities File Browser in runtime so I was really glad I found your asset. I was thinking about making a file browser myself but that would have cost a few days to get every quirk working. Thanks a lot!
Happy to help!
Thank you so much for all the work you've done! Really helped me out alot :>>
And thank you for your support ^_^
Thank you for so big contribution to unity! I think they should hire you :P
lol thank you :D
+1
Hello guy,
we want to post the Text + picture on facebook, but when we did it, the Text disappeared. Do you know how can we resolve it?
Hi! It may not be possible without using Facebook SDK. Some apps deliberately omit the text or the image for unknown reasons, they allow sharing only one of these contents.
Big thank you for your generous contribution to the Unity community. Not only the assets but also your prompt and patient replies to my queries on the forums. Buy yourself a coffee, or a beer, you deserve it. Cheers :)
Thank you for your support :)
Heyo, just wanted to let you know that I'm using several of these assets now and that I can't thank you enough for all of this work you've done! For one thing I use Asset Usage Detector basically every day.
Thank you :D My favorites are also Asset Usage Detector and Inspect+.
Hello,
This is a good plugin to use. Easy to integrate. But,
Generating Error of permission in build with Facebook SDK.
Logs:
CommandInvokationFailure: Gradle build failed.
C:\Program Files\Java\jdk1.8.0_191\bin\java.exe -classpath "G:\Android\gradle-6.6.1-bin\gradle-6.6.1\lib\gradle-launcher-6.6.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
stderr[
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':launcher:processReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
G:\Temp\gradleOut\launcher\src\main\AndroidManifest.xml:5:3-126: AAPT: error: attribute android:requestLegacyExternalStorage not found.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 39s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
]
stdout[
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
> Configure project :launcher
WARNING: DSL element 'useProguard' is obsolete.
It will be removed in version 5.0 of the Android Gradle plugin.
Use 'android.enableR8' in gradle.properties to switch between R8 and Proguard.
WARNING: DSL element 'useProguard' is obsolete.
It will be removed in version 5.0 of the Android Gradle plugin.
Use 'android.enableR8' in gradle.properties to switch between R8 and Proguard.
> Task :unityLibrary:preBuild UP-TO-DATE
> Task :unityLibrary:OneSignalConfig.plugin:preBuild UP-TO-DATE
> Task :launcher:preBuild UP-TO-DATE
> Task :launcher:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:OneSignalConfig.plugin:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:packageReleaseRenderscript NO-SOURCE
> Task :unityLibrary:OneSignalConfig.plugin:compileReleaseAidl NO-SOURCE
> Task :unityLibrary:OneSignalConfig.plugin:packageReleaseRenderscript NO-SOURCE
> Task :unityLibrary:OneSignalConfig.plugin:compileReleaseRenderscript NO-SOURCE
> Task :unityLibrary:generateReleaseResValues
> Task :unityLibrary:OneSignalConfig.plugin:generateReleaseResValues
> Task :unityLibrary:OneSignalConfig.plugin:generateReleaseResources
> Task :unityLibrary:compileReleaseAidl NO-SOURCE
> Task :launcher:generateReleaseBuildConfig
> Task :launcher:compileReleaseRenderscript NO-SOURCE
> Task :unityLibrary:compileReleaseRenderscript NO-SOURCE
> Task :unityLibrary:generateReleaseResources
> Task :launcher:compileReleaseAidl NO-SOURCE
> Task :launcher:generateReleaseResValues
> Task :launcher:generateReleaseResources
> Task :launcher:createReleaseCompatibleScreenManifests
> Task :launcher:extractDeepLinksRelease
> Task :launcher:prepareLintJar
> Task :unityLibrary:packageReleaseResources
> Task :unityLibrary:extractDeepLinksRelease
> Task :unityLibrary:OneSignalConfig.plugin:packageReleaseResources
> Task :unityLibrary:OneSignalConfig.plugin:extractDeepLinksRelease
> Task :launcher:checkReleaseDuplicateClasses
> Task :launcher:javaPreCompileRelease
> Task :unityLibrary:generateReleaseBuildConfig
> Task :unityLibrary:processReleaseManifest
> Task :unityLibrary:javaPreCompileRelease
> Task :unityLibrary:OneSignalConfig.plugin:processReleaseManifest
> Task :unityLibrary:OneSignalConfig.plugin:generateReleaseBuildConfig
> Task :unityLibrary:OneSignalConfig.plugin:javaPreCompileRelease
> Task :unityLibrary:mergeReleaseShaders
> Task :unityLibrary:compileReleaseLibraryResources
> Task :unityLibrary:OneSignalConfig.plugin:prepareLintJarForPublish
> Task :unityLibrary:compileReleaseShaders NO-SOURCE
> Task :unityLibrary:generateReleaseAssets UP-TO-DATE
> Task :unityLibrary:OneSignalConfig.plugin:mergeReleaseShaders
> Task :unityLibrary:OneSignalConfig.plugin:compileReleaseShaders NO-SOURCE
> Task :unityLibrary:OneSignalConfig.plugin:generateReleaseAssets UP-TO-DATE
> Task :unityLibrary:OneSignalConfig.plugin:packageReleaseAssets
> Task :unityLibrary:OneSignalConfig.plugin:processReleaseJavaRes NO-SOURCE
> Task :unityLibrary:OneSignalConfig.plugin:bundleLibResRelease NO-SOURCE
> Task :unityLibrary:OneSignalConfig.plugin:mergeReleaseJniLibFolders
> Task :unityLibrary:OneSignalConfig.plugin:parseReleaseLocalResources
> Task :unityLibrary:OneSignalConfig.plugin:compileReleaseLibraryResources
> Task :unityLibrary:OneSignalConfig.plugin:mergeReleaseNativeLibs
> Task :unityLibrary:OneSignalConfig.plugin:stripReleaseDebugSymbols NO-SOURCE
> Task :unityLibrary:OneSignalConfig.plugin:copyReleaseJniLibsProjectOnly
> Task :unityLibrary:OneSignalConfig.plugin:generateReleaseRFile
> Task :unityLibrary:OneSignalConfig.plugin:compileReleaseJavaWithJavac
> Task :unityLibrary:OneSignalConfig.plugin:bundleLibRuntimeToJarRelease
> Task :unityLibrary:OneSignalConfig.plugin:bundleLibCompileToJarRelease
> Task :launcher:processReleaseManifest
G:\Temp\gradleOut\launcher\src\main\AndroidManifest.xml:21:5-80 Warning:
uses-permission#android.permission.READ_EXTERNAL_STORAGE was tagged at AndroidManifest.xml:21 to replace another declaration but no other declaration present
> Task :unityLibrary:packageReleaseAssets
> Task :unityLibrary:processReleaseJavaRes NO-SOURCE
> Task :unityLibrary:bundleLibResRelease NO-SOURCE
> Task :unityLibrary:mergeReleaseJniLibFolders
> Task :unityLibrary:parseReleaseLocalResources
> Task :unityLibrary:prepareLintJarForPublish
> Task :unityLibrary:mergeReleaseNativeLibs
> Task :unityLibrary:stripReleaseDebugSymbols
WARNING: Compatible side by side NDK version was not found. Default is 21.0.6113669.
Compatible side by side NDK version was not found. Default is 21.0.6113669.
Unable to strip the following libraries, packaging them as they are: libMonoPosixHelper.so, libmain.so, libmonobdwgc-2.0.so, libunity.so.
> Task :launcher:mergeReleaseResources
> Task :launcher:mergeReleaseShaders
> Task :launcher:compileReleaseShaders NO-SOURCE
> Task :launcher:generateReleaseAssets UP-TO-DATE
> Task :unityLibrary:copyReleaseJniLibsProjectOnly
> Task :unityLibrary:generateReleaseRFile
> Task :unityLibrary:compileReleaseJavaWithJavac
> Task :unityLibrary:bundleLibCompileToJarRelease
> Task :unityLibrary:bundleLibRuntimeToJarRelease
> Task :launcher:mergeReleaseAssets
> Task :launcher:processReleaseResources FAILED
> Task :launcher:desugarReleaseFileDependencies
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.6.1/userguide/command_line_interface.html#sec:command_...
50 actionable tasks: 50 executed
]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.Command.Run (System.String command, System.String args, System.String workingdir, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1[T] progress, System.String error) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
Rethrow as GradleInvokationException: Gradle build failed
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
Rethrow as BuildFailedException: Exception of type 'UnityEditor.Build.BuildFailedException' was thrown.
UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message, System.Exception ex) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (UnityEditor.BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <2975258ba72b4441a1487a1bed69dfb8>:0)
UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <8004fcc221b54f98ba547350ea71d812>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
You can check out the FAQ entry about requestLegacyExternalStorage in README.txt.
hello there, I am a student learning unity and recently came across your amazing asset on unity asset store. I tried contacting you on forum thread but unable to do so. I need Help!! pls provide an example script for multiple image pick from gallery on your GitHub readme please!
like following script is for single Image pick
Please check your e-mail, I've replied to your mail.
Hello, thank you very much for such a wonderful project, but I had to resort to seeking help, when I go to select multiple photos, it only lets me select the recent captures, the camera photos and others appear in white and are not allowed to be selected, this is normal? is it impossible to fix?
Problem In (NativeGalleryForAndroid)
Edit: i fixt it (changing the GetImagesFromGallery to GetMixedMediasFromGallery)
for now it works fine
This was a strange solution but I'm glad that it worked ^^
@Donat01k please provide me an example of how multiple photos are selected
Found your multiscreenshot script on github and I gotta say you saved me a lot of time. Exactly what I needed for making screenshots for App Store and Google Play :)
Thank you <3
Happy to hear that :D
Hello is that your model
Looking at the Java classes, I'd say that the NativeGallery and AndroidRuntimePermissions plugins used in this game are my plugins.
Tnx but you upload that files 13.August. In im right Because it wasn't before in game. And files is new.
And what's that used for?
I'm not affiliated with this game; they have probably imported these assets to their Unity project from Asset Store. These assets have been on Asset Store for a long time. You can find a description of each asset in the "Here is a list of my growing number of assets" section.
P.S. You can find the original release date of assets at the bottom of the Releases section in Asset Store.
Tnx you.
Awesome assets, thank you so much!
Thank you for your kind words :)