Пікірлер
@mandisaw
@mandisaw 6 күн бұрын
Neat! I avoid internal API reflection as a rule - enterprise dev habits - but menus & custom editors are my go-tos. Just did a Cinemachine dashboard incorporating TV multicamera movements & terms, incl custom spline paths and action-safe & rule-of-thirds composition guides. Then updated to CM3.1, which made their GameView GUI handler inaccessible 😅 Far as I'm concerned, being able to break, remold, and extend the Editor as you need is Unity's 2nd-best strength as an engine. It's top strength would be "port to anything" 😂
@WarpedImagination
@WarpedImagination 5 күн бұрын
Glad you liked it I heard from a fellow dev that Cinemachine changed a fair amount for the better as far as usability, but I could guess that came with a lot of back end breaking changes
@mandisaw
@mandisaw 5 күн бұрын
@WarpedImagination They had a video a year or so back about it. Since it was external software that they bought, it did a lot of stuff that wasn't inline with how Unity normally works. Like using hidden objects and using 1 inspector for 3+ components. The main change for CM3 was unpacking all the "hidden" stuff so those components each sit on the associated virtual camera object. They also cleaned up the 3-axis orbital follow cam to be a little less insane 😅 Everything else was renaming - mostly going from film & TV terms to game-dev terms. (I edit cameras better in the former, hence my dashboard.) They included a wizard & contextual menus (with utility commands) to auto-update existing objects & scenes, but custom scripts have to be updated by hand. They actually recommended folks with a lot of custom tools just park on CM2 😮
@GiftedMamba
@GiftedMamba 10 күн бұрын
Insane stuff, thank you for sharing!
@WarpedImagination
@WarpedImagination 10 күн бұрын
You're welcome, glad you liked it
@카레인도-n6j
@카레인도-n6j 11 күн бұрын
I appreciate to your very helpful video. Could I ask you what SDK did you employed..? I tried to apply research version, but It didn't work because I used Tobii Eye Tracker 5 which is same model with yours. There are stream engine, Tobii Pro SDK, Tobii Game SDK, ETC. Could you let me know which SDK can I apply for my private project on Unity...?
@WarpedImagination
@WarpedImagination 11 күн бұрын
At the time when I made the video I don't remember being offered other versions of the SDK I just looked up the email from a couple of years back for you and the name of the SDK they sent me was TobiiUnitySDK_5.0.0.3.
@카레인도-n6j
@카레인도-n6j 9 күн бұрын
@@WarpedImagination I am really grateful for your reply. I have looked into the matter and it seems that the download page for the Tobii Unity SDK has disappeared from Tobii's website. If it is not an inconvenience for you, would you possibly be able to send me the file you were using for the Unity SDK? Despite knowing it might seem a bit impolite, I am genuinely struggling and would be really grateful for any assistance.
@WarpedImagination
@WarpedImagination 8 күн бұрын
I would love to but unfortunately under the terms of this license agreement I signed I cannot share the SDK. You'll have to contact Tobii to get a license for the SDK and then they will send you one.
@fleity
@fleity 12 күн бұрын
Very useful, did this a long time ago for the mesh renderer, priceless addition.
@WarpedImagination
@WarpedImagination 12 күн бұрын
Glad you liked it .. What functionality did you add to the mesh renderer?
@hakerlod
@hakerlod 12 күн бұрын
Great video as always. I would love to see a context menu action that duplicates tabs, such as inspector, project, hierarchy, etc.
@WarpedImagination
@WarpedImagination 12 күн бұрын
I haven't done that before. The tab menu is hidden behind the DockArea class which again is internal and would be a pain to override. If you have your own window overriding GetExtraPaneTypes() will enable you to add your window type to the add list. As for the process of duplicating a window thats simple enough by getting EditorWindow.focusedWindow then using EditorWindow.CreateInstance
@hakerlod
@hakerlod 12 күн бұрын
Thanks for advice.
@NathanSL11
@NathanSL11 14 күн бұрын
Unity has sooo much internal garbage. Half of the useful extensibility in UI toolkit is stuck behind internal fields. I don't even get it because if they're using internal functionality on extended components why is there no code review saying hey we use this all the time maybe our users would want to use it too...
@WarpedImagination
@WarpedImagination 14 күн бұрын
I have had that conversation a lot with other developers
@mandisaw
@mandisaw 6 күн бұрын
Have you read their internal code? Most of it is good, but some of it is clearly MacGyver'd and can be a bit frail. I suspect that when they write stuff that "works", but is obviously not ready for primetime, and is not part of the required API, they just drop its access level and quietly close the ticket 😅
@ed_halley
@ed_halley 14 күн бұрын
I still want to see your Overlay code that implements a joystick for X/Z tilting objects.
@WarpedImagination
@WarpedImagination 14 күн бұрын
Ok I bumped it up the list
@AlirezaTabasi7
@AlirezaTabasi7 14 күн бұрын
Why do you think adding side components to extend its behavior is a bad idea?
@WarpedImagination
@WarpedImagination 14 күн бұрын
Good question, I should have stated its because for tools such as those shown in the video it's unnecessary. It makes things a little untidy to have editor only components for this sort of functionality and of course you don't want them in the build so you'll want a build processor to remove or play with the hide flags.
@gamheroes
@gamheroes 15 күн бұрын
Editor API is the big unknown as there are not many tutorials, and honestly, it is not very friendly I created utilities like creating materials from textures or customizing scriptable objects to expose their members in Inspector...A little work that can save hours in every project
@WarpedImagination
@WarpedImagination 14 күн бұрын
Absolutely spot on .. it's one of the reasons I do these videos .. showing people how to save effort
@mandisaw
@mandisaw 6 күн бұрын
Editor API used to get more love, back when they did developer livestreams & workshops more often. When I started in Unity, Mike Geig & Adam Buckner (later Matt?) were doing dev streams at least monthly, covering all kinds of deep-nerd stuff, incl hacking the editor.
@musap_
@musap_ 15 күн бұрын
I turned scene view's move, rotate, and scale tools into 2D versions of them on XZ plane for a plugin I've been working on. It's a shame they cannot be customized without using reflection.
@WarpedImagination
@WarpedImagination 15 күн бұрын
I have a dev friend and we vent whenever we go down a rabbit hole that ends with 'internal'.
@regys9521
@regys9521 15 күн бұрын
Would you please teach how to use DOTS for beginners, like how to spawn prefabs?
@WarpedImagination
@WarpedImagination 15 күн бұрын
Looking at the changes coming down the line I think I will have to have DOTS enter into some of the videos
@regys9521
@regys9521 15 күн бұрын
Simply hilarious
@WarpedImagination
@WarpedImagination 15 күн бұрын
I try
@MrOmega-cz9yo
@MrOmega-cz9yo 15 күн бұрын
"I never forced you to become a human light bulb!" 🤣
@WarpedImagination
@WarpedImagination 15 күн бұрын
Glad you liked it
@jameslafritz2867
@jameslafritz2867 15 күн бұрын
Does this work with public override VisualElement CreateInspectorGUI() method as well? root = _internalEditor.CreateInspectorGUI(). I guess I might have to try. I know that Unity version 6 defaults to using visual elements for the default inspector, I think 2022 does as well. If you do not set the Use IMGUI Default Inspector property in the Editor Setting then OnGUI may not work properly, Unity might say oh look there's a Visual Element script for this element so we are going to use that instead of your custom script. Ran into this issue in the past when creating custom inspectors for my components, I get a message in the Inspector saying something along the lines that this component does not have a visual element, I do not remember exactly what the message said. This would be a great usage to add custom attributes like a Button attribute that you can add to methods and then get the original inspector for it and then add the custom code for the buttons. I have had Issues with this using [CustomEditor(typeof(MonoBehaviour), true, isFallback = true)] The custom OnInspectorGUI was ignored unless I change the Editor Setting first. I also know that I have tried the var baseVE = base.CreateInspectorGUI(); which use to return a null element, so I had to brute force this and do it manually by getting the serialized property and looping through all of the properties, manually add that property to the root container. Then I add buttons for every method that has a Button Attribute. I am going to have to try using this method of doing it instead.
@raymk
@raymk 15 күн бұрын
Sometimes I can't find a good use case for some of your videos, but now, THIS IS WHAT I NEED. The box collider is not automatically aligning itself with the transform is driving me nuts
@WarpedImagination
@WarpedImagination 15 күн бұрын
Keeping things neat and tidy is a good thing! Glad you liked the video.
@TREXYT
@TREXYT 15 күн бұрын
Hey thats awesome, can we edit particle system and add multiple spawn points to 1 particle system ? Creating multiple particile system kill a lot of performances on mobile devices, thats why i ask
@WarpedImagination
@WarpedImagination 15 күн бұрын
Not really the intended for this functionality .. you might want to dive in deeper to the visual effect graph and see if you can customize enough to get the performance without killing the look
@Shennzo
@Shennzo 15 күн бұрын
Great video! This tip will definitely come in handy. One thing is that I wanted to add an easy access button to round the position values in the transform to ints. But I'm not sure if this technique will work on the transform component since it's the base block of any game object and maybe behaves differently to the other added components?
@WarpedImagination
@WarpedImagination 15 күн бұрын
In the case you mention I would go with contextual property menus. I describe how to do those in this video kzbin.info/www/bejne/nnPVfaavgayUeJY
@Shennzo
@Shennzo 15 күн бұрын
@@WarpedImagination thanks again for the referral! I've watched it and it's also a wonderful tip to keep in mind. I really appreciate all these Unity efficiency tips.
@WarpedImagination
@WarpedImagination 15 күн бұрын
@@Shennzo glad you're enjoying them
@DaydreamStudios_Official
@DaydreamStudios_Official 15 күн бұрын
I will definitley be making the SpriteRenderer component have an option for making drop shadows 😮
@WarpedImagination
@WarpedImagination 15 күн бұрын
Oh interesting, nice one!
@danielmolineromuller166
@danielmolineromuller166 15 күн бұрын
Good stuff! Would love to see some custom runtime-supporting editors using the UI toolkit, hardly ever seen content about it.
@WarpedImagination
@WarpedImagination 15 күн бұрын
Glad you liked it I have some UI Toolkit content lined up
@LurkingNinja
@LurkingNinja 15 күн бұрын
For custom inspectors (and similar extensions) instead of reflection I recommend to inject your own editor extension into the original assembly through asmref definition. It compiles into it so there are no runtime-shenanigans.
@WarpedImagination
@WarpedImagination 15 күн бұрын
I have been asked to do an assembly definitions video quite a few times, but needed an angle that hasn't really been touched on .. assembly references might be the twist to add
@mandisaw
@mandisaw 6 күн бұрын
How do you inject your new class or extension into their assembly? Without creating a new assembly?
@valhallagalex
@valhallagalex 15 күн бұрын
Hey. Have you looked at all into customizing the asset browser? I found that it's the window that's hardest to customize (requires a lot of reflection).
@WarpedImagination
@WarpedImagination 15 күн бұрын
I haven't .. yet!
@karole5646
@karole5646 15 күн бұрын
Thank you so much
@WarpedImagination
@WarpedImagination 15 күн бұрын
You're most welcome
@WarpedImagination
@WarpedImagination 15 күн бұрын
Protofactor's nightmare fuel is on sale for a limited time here assetstore.unity.com/packages/3d/characters/creatures/sci-fi-karciniactus-296777?aid=1101liVpX
@gMacGeorges
@gMacGeorges 19 күн бұрын
Sadly I am blocked quite early: 'ItemDirectory' is unknown.
@WarpedImagination
@WarpedImagination 18 күн бұрын
Blink and you'll miss it at 0:42
@gMacGeorges
@gMacGeorges 18 күн бұрын
​@WarpedImagination thank you for your answer. In the meantime, I have actually found a simpler solution for sub assets.
@hop3studio511
@hop3studio511 20 күн бұрын
Like first, and consume all the knowledge, thank you
@WarpedImagination
@WarpedImagination 20 күн бұрын
Glad you liked it
@natsuosoga2602
@natsuosoga2602 20 күн бұрын
This video is impressive ,but I am trying to use the namespace named Tobii.Gaming in Unity, but I am unable to do so. I already obtained a API from dev support. Did I forgot to do anything?
@WarpedImagination
@WarpedImagination 20 күн бұрын
From what I remember (and this was 2 years ago now) I downloaded the SDK from Tobii and brought that into Unity, this in turn had all the elements I needed and all the classes from the namespace. I would expect they have changed this by now to be better integrated with Unity's package manager
@natsuosoga2602
@natsuosoga2602 20 күн бұрын
@@WarpedImagination Ok, I think I’ll ask this in Tobii dev forum now.
@alexleonardkrea
@alexleonardkrea 23 күн бұрын
Very cool. I can see this getting very handy for level design.
@WarpedImagination
@WarpedImagination 22 күн бұрын
Absolutely .. Pickups, level design components like doors, signs etc .. label everything
@raymk
@raymk 23 күн бұрын
Imma watch the list you've provided
@WarpedImagination
@WarpedImagination 23 күн бұрын
Hopefully there is a gem in there for you!
@techdave99
@techdave99 23 күн бұрын
Thanks for the video and the bonus tips. wonder if there is a way to combine this with the new node system Unity released and git-amend did a video on.
@WarpedImagination
@WarpedImagination 23 күн бұрын
I haven't tried plugging the search into any of Unitys node editors (yet!).
@twistedliverstudio
@twistedliverstudio 23 күн бұрын
I have to say that final tip really help take it over the top, excellent job on this one.
@WarpedImagination
@WarpedImagination 23 күн бұрын
Glad you liked it
@Norman_jeBaits
@Norman_jeBaits 24 күн бұрын
You are a legend. Thank you!
@WarpedImagination
@WarpedImagination 24 күн бұрын
You're welcome!
@casteillet
@casteillet Ай бұрын
Should we add the HideFlags.HideAndDontSave in the bool isHidden too ? If yes, for the show hidden scripts part do I need to remove the HideInHierarchy and HideAndDontSave at the same time ? I've also added validate for every function, I saw it was triggered only once so I think it's not too expensive, it was a wrong idea ? Thanks for this really cool vid, I've just finished my marathon of watching all your videos. That's some awesome ressources.
@WarpedImagination
@WarpedImagination 24 күн бұрын
Anything with Dont Save should just disappear off Glad you're liking the content
@facelessanon
@facelessanon Ай бұрын
I've always wanted to use scene templates, as I will be making level-based games. Thank you for making this video. It made my game development process easier.
@WarpedImagination
@WarpedImagination Ай бұрын
Glad to hear it was helpful
@zentec010
@zentec010 Ай бұрын
I never realized how badly I was missing out.
@WarpedImagination
@WarpedImagination Ай бұрын
We never know until we know
@Devorkan
@Devorkan Ай бұрын
don't forget to wrap your start/stop asset editing in try…finally to make sure it won't be broken in the case your code between start and stop throws an exception
@WarpedImagination
@WarpedImagination Ай бұрын
sure
@Devorkan
@Devorkan Ай бұрын
yes please how to autofix?
@WarpedImagination
@WarpedImagination Ай бұрын
I will add the vote to that video
@Devorkan
@Devorkan Ай бұрын
Instructions unclear: still staring blankly at the screen
@WarpedImagination
@WarpedImagination Ай бұрын
Any particular question?
@Devorkan
@Devorkan Ай бұрын
@@WarpedImagination no that was just a joke comment related to you saying "stare blankly at the screen" ;)
@WarpedImagination
@WarpedImagination Ай бұрын
@@Devorkan oh lol .. I cannot even remember what I say in most of these videos
@Devorkan
@Devorkan Ай бұрын
your game looks great!
@WarpedImagination
@WarpedImagination Ай бұрын
Thanks
@All_About_Portfolio
@All_About_Portfolio Ай бұрын
wow i love your beginner -> intermediate -> advance level videos.. please create more content like this..... you are my weekend teacher❤
@WarpedImagination
@WarpedImagination Ай бұрын
Glad you liked it
@ПавлоК-з9н
@ПавлоК-з9н 2 ай бұрын
Great showcase. Thank You. But 😊 the issue with the custom dialog box is it's constantly appearing in the middle of nowhere (forcing You to drag n drop it each time) instead of being shower in the middle of the screen (as built in dialog does). I've got annoyed of that while watching the video. Imagine how annoyed a user could be. I'm wondering are there any smart ways of positioning except of naive Screen.width / 2 - wnd.width / 2 (which won't work properly in some cases)?
@WarpedImagination
@WarpedImagination Ай бұрын
I believe in another video I brought up this issue with a work around to save and load the last position the user moved the window to (using EditorPrefs). It did use Screen.currentResolution.width and height as a starting point.
@raymk
@raymk 2 ай бұрын
Ah... EditorPrefs, another black magic in my arsenal. Thank you, master
@WarpedImagination
@WarpedImagination 2 ай бұрын
Oh EditorPrefs are super useful
@ferdowsurasif
@ferdowsurasif 2 ай бұрын
The only thing that could make it better is if it had a button like the Undo history. Its amazing either way. Thanks for the tutorial.
@WarpedImagination
@WarpedImagination 2 ай бұрын
That would be a nice edition.
@GTZ-98
@GTZ-98 2 ай бұрын
You deserve a ton more subscribers! Great video, I learned a lot and I'm actually exited to create some Tools myself (if only I had some ideas yet :D). I've heard in the recent @Jason Weimann podcast you were participating in, that you have created a debugger script/tool to automate the process of validating changes instead of playing through the levels yourself. That sounded super interesting and when I heard it, I thought to myself "I need that, and I need it NOW!!!" :D That would help a ton in my current project, so any plans on showing us the magic on how you build that tool? And if not, how much do I have to pay you to show me? :P
@WarpedImagination
@WarpedImagination 2 ай бұрын
I am glad you liked the video and enjoyed watching the podcast. I believe I spoke about two concepts; validating and debugging your games. In regards to the first validating your game before playing and build there are several videos on this channel, here are a few Required Attribute kzbin.info/www/bejne/eH-Zf4uDfa9rrJI Scene Validation kzbin.info/www/bejne/nJ-wfayLoJaHoqM Validate Builds kzbin.info/www/bejne/nJ-wfayLoJaHoqM As for the all power Game Debugger that is more concept than solid piece of code, it resolves around writing your game in such a way that you expose actions you perform as the player (like pulling a switch) and then having a window in the editor that lists them all and enables you to use them from anywhere; also in regards certain game types the ability to teleport to locations. Pro tip add routines, like teleport and give me that key and then have that pop up in the debugger as an option, so you can teleport to the location of a door with a key you would pick up elsewhere in the level. The Game Debugger is planned on being one of the early dev logs in the upcoming series for my new game.
@GTZ-98
@GTZ-98 2 ай бұрын
@@WarpedImagination Ah yes you are right. I kind of twisted that a little regarding the debugger. Looking forward to see you implementing it, I will try to adapt this style of debugging into my next project as it seems suuuper helpful! Also thank you very much for that thorough reply! * You're Validate Builds link is wrong (it refers to the same video as Scene Validation). I think it should be this: kzbin.info/www/bejne/Znvdo4Jjjpt0lc0
@All_About_Portfolio
@All_About_Portfolio 2 ай бұрын
You are doing great!!! keep it up...! Thanks for the excellent explanation :)
@WarpedImagination
@WarpedImagination 2 ай бұрын
Thanks, glad you liked it.
@slowkit
@slowkit 2 ай бұрын
is there any way to detect when a file is dragged over the window? before the file is dropped
@WarpedImagination
@WarpedImagination 2 ай бұрын
Check out this video on drag and drop kzbin.info/www/bejne/fKGycpacirGgiqc
@slowkit
@slowkit 2 ай бұрын
@@WarpedImagination well that wasnt really what i was looking for. what i meant was related to this tutorial, this script has the funcionality to detect dropped files, but doesnt detect when files are being dragged over the application. i need it to work on runtime so thats kind of why drag and drop cant be used since its a editor script
@WarpedImagination
@WarpedImagination 2 ай бұрын
@@slowkit Sorry I have made so many of these I forgot it was runtime So the window wrapped only checks for the WM_DROPFILES parameter and there isn't a WM_DRAGFILES alternative to check for. You could run through the other parameters to see if one would suit your need and alter the Callback method
@slowkit
@slowkit 2 ай бұрын
@@WarpedImagination yeah i kind of tried to look for one but there wasnt anything that could be useful i think, anyways its okay
@dreamisover9813
@dreamisover9813 2 ай бұрын
Excellent!
@WarpedImagination
@WarpedImagination 2 ай бұрын
Glad you liked it!
@jTinVR.
@jTinVR. 2 ай бұрын
another great video, a small addition would be maybe adding if(SelectionHistoyToolSettings.SetSceneView) SceneView.lastActiveSceneView.FrameSelected(); in the SelectPrevious() and SelectNext()
@WarpedImagination
@WarpedImagination 2 ай бұрын
That would make a good preference option thanks for bringing it up
@herrmutig2656
@herrmutig2656 2 ай бұрын
Impressive of what you can actually do with the Unity Editor. I always feel lost when trying to create something for the Unity Editor. It became easier with UIToolkit though. Anyway, I love your content! There are very few KZbinrs who are actual experts in topics like Unity Editor / Advanced Scripting IMO!!
@WarpedImagination
@WarpedImagination 2 ай бұрын
Glad you are liking the content .. I really need to do more videos with UIToolkit
@ElDonitazz
@ElDonitazz 2 ай бұрын
WindyBeard?
@WarpedImagination
@WarpedImagination 2 ай бұрын
Ok you lost me whats the question?
@alsantour8835
@alsantour8835 2 ай бұрын
Because it's good, and my arms are too short to reach the "stop" button 😂 ... So what happens if you you hit back a few times and then select something that was not next in the history stack ? I'm assuming it removes everything after it in the stack ? It would be cool if there is a way to "insert" steps in between the history..
@WarpedImagination
@WarpedImagination 2 ай бұрын
Yep it clears the stack like with browsers. I thought about the insertion idea but it felt off to then make four or five selections press next and get something from 8 selections ago.. I agree though there might be a nice middle ground maybe after 2 selections it clears .. something to play with maybe