18 Ideas for Unity

Dear Friends and Professionals working with Unity,
EDIT: I originally placed myself in a mine field here by letting this post have a rather immature and naive ‘Hey guys, should Unity not hire me to fix everything’ - approach.

That was probably stupid, in a forum like this, sorry. So I tried to delete the post and it was restored, ha, I’m stuck with my own actions!

OK, I had some points in my post - Even though I took on the wrong approach of communicating them, so here are my points for the next Googler etc:

1) Recent Scene / Open Scene

  • Number of times we open a new Project: 1
    Number of times we open a new Scene: 100

Which is in sharp contrast *) to:

  • User Interface to open a new Project: Nice
    User Interface to open a new Scene: … …!
  • ) - If you are making Games, and not Games Engine - which goes for all of the below as well:
    I speak for Us, the Users, Unity seen from the outside.

Goals:

  • Create a standard ‘Recent Scenes’ under File menu - like any other program have had since 1999
  • Make sure ‘Open Scene’ lists relevant Scenes for me
  • Also make a standard ‘Save project as’ to do quick local backups, forks etc.

2) Import FBX without Rotation issues

How many here have had to import an FBX from a leading 3D application, and found that there’s a build in issue with some x@270/zForward-different-standards?

Let’s get that fixed now: We are after all going to be importing more FBX’s in time to come!

Goals:

  • Preferences should have a general setting with check boxes under Import, like Up: Z
    No mysterious hacks of inserting with a non 0 rotation, but override/redo inside engine!
    A drop down should let you chose premade settings for major 3D software packages
    Size should also be set via this dropdown
  • Inspector / Model should let you override / Set individually for each / bulk select and change all to for example Z up.

In worst case: Do it behind the lines Unity, just as Quaternion is the actual rotation, but we see Vector3, do an internal wrapper that we will never need to know about.

3) Let us browse our already downloaded asset store packages without waiting for the browser to load

The title should be self explaining.

Goal: When entering the Asset store, all our already downloaded assets should appear as quickly as when we do any other standard file browsing. The browser can load in the background and update when ready.

4) Remove camera space Canvas from our Scenes, please.

First was Unity: A games engine that made everything easy, BUT doing the UI in your game (who needs UI in a game anyway?). That situation gave birth to nGUI - which was obviously a hack. A good hack, but a hack.

That hack became - in a new form - uGUI. But it’s still a hack. What on earth is going on with the UI in the middle of the game scene and something as specialized as UI to use the same tools as is made to do RigidBodies?

Goal: We need to provide a ‘Camera Space’ in the Editor: A closed and specialized window & interface to do UI - and do it nice. Like really nice, in a focused tool.

5) Let next generation Unity UI parse HTML on all levels

Unity’s variations of UI, across Editor and uGUI is done with such things as GUILayout.FlexibleSpace, GUILayout.BeginHorizontal, EditorGUILayout.BeginHorizontal and uGui… it’s a ton of mixed technologies with mixed levels of documentation, and basic things such as Unity’s interface that will not scale to larger screen sizes and the need to learn different layout systems is the result.

The interesting part here is that it all tries to do what HTML5 is already doing. So why not lay it in the roadmap: Get all things UI ported to be parsed HTML?

Unity’s interface will be able to scale with your screen resolution, and instead of training people to learn new tricks, you as a producer can get hold of skilled web artists to do your games UI. And you can port a simple website to UI instead of having to do it over.

There’s already multiple free HTML parsers ready to be used.

Goal: Get HTML parsing into the Unity long term roadmap.

6) Remove the Zoom function from default Game view.

  • Number of times I want to play my Scene without Zooming: 1,000
  • Number of times I want to Zoom into Game window to see Pixels: 0.01f
  • Number of times I’m accidentally Zooming: Way too many

That prominent screen real estate can be used for so many useful functions instead!
Goal: Let Game Zoom be some far away hidden feature that can not be triggered by accident.

7) Add simple 1-click shortcuts for common tasks such as rotate 90 and simple array

It’s nice to have an uncluttered interface, but frankly: How many steps is needed to rotate that prefab 180 degrees from the current 37.98 on the Y axis? It should be just 2 clicks, right?

RRR ← That much space is all it would take to have instant access to probably the most common rotate modifier: Rotate 90 on Either X, Y or Z. Shift click to rotate 90 the other way.

Do you think you would use those more than you use the Zoom-slider in Game view? It’s smaller!

MMM ← Click those and you get instant Arrays: Each click on Blue M adds one more on the Blue axis, because rather often we do not just want to place one object, but many. Shift to make less.

… etc

I’m not going to go deeper into what buttons could be there or advertise my own assets here, but I have systems like this going in my sandbox tool called Mess Manager in the Asset store, and it’s really effective. Unreal Engine has similar shortcut buttons to common functions by the way: It’s nice for people who make games.

Goal: Get a couple of the most used functions as shortcuts into the free space at the top of the Editor window.

8) Enable instantiation placement based on boundaries as well as collider

If your Scene is not filled with colliders, yet you have a plane ground and want to place a tree on it?
With Unity you Drag-drop it into… mid air … If there’s no collider on where you drag-drop to.

It’s really easy to enable snap to bounding box, again something in my own tools in the asset store. However it too should be native and not a hack one can download from the asset store.

Goal: Enable all types of Snap and Auto drop on 9 bounding box corners & mids.

9) Enable (box / Sphere / etc) collider import from model
Again something Unreal has:

Why not just use your 3D app to place boxes and let Unity import them as Colliders instead of all the trouble of trying to use Unity’s Inspector to make boxes fit?

Goal: Enable ‘Use transforms with certain naming conventions as Colliders on Import’

10) Enable FBX to prefab on the fly

So, your 3D artist made 200 FBX’s and you want to use them as ‘Prefabs’ *) ?
Don’t think it’s effective that you have to instantiate each, then drag back to make Prefabs out of them?

*) Yes, I know, technically an FBX in Unity is a type of Prefab, but I mean ‘real prefab’ here :wink:

Goal: Bulk-select & turn into Prefabs from FBX files in Project view

11) Add ‘Solo’ button to particle systems
When working on Particle systems with child emitters over multiple GameObjects, how often would you not like to click Solo to Only see only this one Shuriken system that you edit right now?

It’s a feature known in all Music software: Solo - it simple just let’s you listen to one track. Click again and all is on as before.

Goal: Add Solo button to Particle systems

12) Embed material in Prefabs
That might take most people out of their comfort zone, but think about it:

Why are Materials not an intigrated non-removeable part of Prefabs like for example transforms?

How often would you wish back to when you could share a material over multiple GameObjects – if by default a Material was as closely embedded as for example a Prefab’s RigidBody or transform? Would you actually need to share materials on different Prefabs / GameObjects?

We are not talking Shaders or Textures, but Materials.

Why would you in fact ever want to have shared materials over multiple GameObjects as it stands now where you cannot even inherit a Material Class and do local variations?

Do you actually need a hundred unused materials files floating around in auto generated folders for each time you import a model?

Do you want all the wasted ones you have right now?

Do you like to have shared materials with the imported models from the Asset store in your project?

How many times have a shared material given you problems? And what has it given you?

If Materials where an embedded part of GameObjects you could access a GameObjects material and copy-paste it - from Script as well. Like when you copy a transform now. (Imagine if Transforms where free floating files like Materials, that would suck, right? But what’s the difference?)

If they where embedded you would get a trillion files less in your project, and no more problems with shared materials making one thing blue because another needed it, which would also make import form Asset store a much cleaner ting.

If Materials where bound to a GameObject the way I consider it done as Classes, you could even have a common ‘ShinyMetal’, and do Red, Blue And Green class children on other GameObjects.

Goal: Do a serious consideration on possibly eradicating free floating Materials files

13) Make a hard-coded folder for all asset store downloads and add clean checkout-to-my-project options

The asset store is a great thing, but it makes a mess. Let’s take that serious, and set up a system so all Asset store downloads by default lands in a hardcoded folder. In there you can test, but itsø not a part of your project yet.

Then, let’s add import system to the protected area functionality, a process where all FBX files imported are placed in one folder with a hardcoded name, all cubemaps in one folder with another hardcoded name, all… instead of the random and invasive mess it is today.

Then you can delete the Asset from the Import folder and keep what you actually needed instead of now where it’s up to you to clean up and a mess is made already after a couple of imported assets.

Goal: Set future asset store up to import to a closed area, and make a checkout & import system that keeps all imports in nice folders, so you can delete the Asset import once you have only imported the parts you need.

14) Make instant prefab in scene- browser

I Know there’s a new prefab preview system on the way, but it appears overly complex compared to just being able to browse prefabs right in the Scene.

Goal: Set up a scroll-able simple and fast prefab browser that let you scroll or ‘swipe’ to the prefab you need, and have it already instantiated where you are.

15) Add right click drop down in scene view

Instantiate as child, replace prefab, revert to prefab, reset scale, rotation… s simple context sensitive right click drop down menu is not too much to ask for a modern tool to set up scenes in 3D, right?

Goal: Implement common tools context sensitive right click drop down menu in Scene view

16) Native export Scene as FBX
This is something I really miss in Unity from working with unreal: Native dump scene or selection as FBX.

I think it’s hard to realize until it’s tried how effective it is and how much we need it in Unity:

When you build scenes and need to add more models, it’s tremendously helpful to be able to import your entire scene into your 3D package with a few clicks, and then right in the copy of the scene do any modeling. Also of new characters etc, to have things in scale and perspective.

Mind you, you can even save your new 3D art with transform already embedded, so all you have to do is save, and insert, then your Scene has that exact thing you modeled to fit exactly, and already placed exactly where it should be!!

Goal: Enable Native Export Scene as FBX

17) Include hard coded Game classes option

Unity is for making Games, right? Individual games of course, but they tend to have some ‘soft’ non-technical things in common:

Such as the fact that there is a Player, there is often a Score, a level, pain caused, player control, game control…

As it is now with Unity, only Technical Classes exists, so everyone are doing their own thing when it comes to constructing the basics of game handling.

The wheel are invented over and again and sometimes it’s not exactly wheels that are invented.

Goal: Let Unity embed native support a series of very open, very well thought through common Game classes to help us all get started faster, let projects be easier to understand and game-supportive functionality can better be developed in the future

18) Link all documentation pages with a user wiki

It’s so simple: On Any page in the already auto generated Unity Documentation, specially on the Scripting API, just add a link:

User Wiki and discussions on [this topic]

In other words: Why on earth do we have to have information scattered all over the place and use Google to try and make sense when we are looking on how to use a function?

Let’s make it possible to easily share all the good use cases we come up with, I’m sure that would quickly lift the value of the documentation, and not as now contribute to an ever growing number of forums and scattered tutorials.

Thank you!

1 Like

I don’t agree with some of these…

2 Likes

Do it on the asset store. If it’s successful, you’ll get intergrated.

7 Likes

I don’t agree with many points here.

#5. Having GUI as html is backwards and a very poor idea. A better idea is using similar approach to Qt framework. However… current Begin/End approach, despite being unorthodox, allows highly dynamic GUI that changes based on script state. Doing this in any other way will be royal pain.

#6. I use zoom all the time

#7. The approach you chose for rotating is not good. Euler angles are best avoided. Are much better approach to keyboard rotation is used in blender 3d. That’s what I’d like to see.

#12. I definitely wouldn’t want materials to be embedded into prefabs. Sharing of materials is not too uncommon, and in general materials are best decoupled from their objects/ characters. Besides, it is fairly common for some object pack to have an uber-material that covers multiple objects. For performance reasons.

#13. No hard-coded folders.

#15. Right click in scene view is not terribly useful, actually. Functionality offered by right click - flythrough view - is much more useful. RIghtclick is already available in hierarchy view, by the way.

#16. FBX is a bad format tied to proprietary autodesk sdk. The best idea is to avoid it. If I remember correctly, there are multiple export solutions available on asset store, and they’re not too hard to write from scratch.

#17. I’d rather see no “Game” classes, especially hard-coded ones. This approach is used in Unreal Engine, and most of the time it seems to get in the way instead of doing something useful. You can already have “Game Classes” using MonoBehaviors.

#18. User wiki, at the moment, is best avoided, because all content on it is placed under CC-BY-SA license.This makes all content useless. Besides, after dealing with this little gem from the wiki: http://wiki.unity3d.com/index.php/SimpleJSON I’d say the best idea would be to stay away from it.


I strongly dislike your attempt to get community support in order to get unity job. If you’re any good, you should grab your portfolio and go through their hiring process.

Besides, nothing really stops you from implementing many of those fixes and releasing them to the public. For the greater good or something like that.

5 Likes

https://feedback.unity3d.com

If you have the experience, apply. Like any company of this scale, your prior experience is going to be a key in getting hired. Much of what you have said is known, or has been suggested, and in some cases not practical. Or, as said, is available via the asset store or wiki. (Mesh exporting, transform resets.)

4 Likes

Additionally,

  1. already exists: https://www.assetstore.unity3d.com/en/#!/content/17592
  2. just bake the rotation when exporting. Axis differences are inherent to the program being used. Changing it is unnecessary and would break older stuff.
  3. http://wiki.unity3d.com/index.php/TransformInspector
  4. https://docs.unity3d.com/ScriptReference/AssetPostprocessor.html
  5. http://wiki.unity3d.com/index.php?title=ObjExporter

If you are just looking for a job in general, I would suggest narrowing your focus some. It’s also worth looking specifically at how Unity is structured.

One would need to be hired at a relatively senior management position to make everything in the OP happen. Its a bunch of strategic desicions across a wide array of departments. One doesn’t get hired for such a role without demonstrated experience.

It’s also likely there is any one role that could make all of this happen. And there certainly isn’t one role that could do the implementation and the strategy across the board.

5 Likes

I read the deleted post :wink:

We do currently have UX people who are working to improve the experience.

Your suggestions span across several teams(Editor, UI, Core, Particles, Docs etc) so one person would be very unlikely to do all of them however its not impossible. We have a lot of freedom and autonomy so if we see something missing we can go ahead and do it but it will need the team that owns the area to approve of it.

Some of the suggestions have come up before and are not implemented for a reason and others already exist as pointed out by other users.
The docs wiki issue comes up a lot. It is a decision by the docs team to not include one. More here:
https://blogs.unity3d.com/2017/01/26/unity-documentation-in-2017/

The ParticleSystem solo button is an interesting idea though, I may have a go and prototype it although I think it may be possible by using highlight selected. I’ll have to check :smile:

You can send in unsolicited applications! Unity Careers - Find position
I did it myself and its my two year anniversary today :sunglasses:
You have nothing to lose by doing it!

3 Likes

The reason it’s not possible to delete topics is because this is a public forum and nobody “owns” topics; deleting one would mean deleting all the responses, and it’s unlikely everybody else would agree to that.

–Eric

5 Likes

What advantage was there to deleting the post? It isn’t like everyone said they disagreed with every point. Now we’re left with a bunch of responses and no context for them.

4 Likes

Post restored, please don’t ruin conversations by deleting context. Editing is for edits.

4 Likes

I read through your post and would point out a couple of things:

  1. Almost everything you suggest has been discussed here many times, discussions which can be found on dedicated threads for improving Unity. Did you even read those threads? Did you look at the Unity roadmap?

  2. I certainly do not agree with much of what you propose, so I would say you definitely do not represent my views. Based on the responses above, I would say quite a few folks feel the same way.

  3. Taking this sort of approach to trying to get a job with Unity is extremely odd. I get why you tried. Stand out. Take the road untraveled… But there is a clear method for applying for a unsolicited position as has been pointed out. Throwing that out the window is likely going to destroy not help your chances.

1 Like

Could you be more specific?

Thanks, I appreciate your feedback, I can understand that my attempt of being a little fresh air did not work out, and I appreciate you letting me know. Cheers.

Sorry - I wanted to hear if people inside this forum felt like I experience people talk on in the offices I work in, and clearly there’s a big difference. I realized that after reading the responses, and did not want to be the trouble maker, seeing what I read as a lot of negative response, I figured I did not contribute with anything good here, so I wanted to delete it and let focus be elsewhere.

Thanks. You are of course 100% right, and your points are spot on. I’m sorry that my post’s angle messed up my intention.

  1. I am aware, and I have made one myself as well. I do however think this should be native: I do not think it’s optimal to have to have editor what should be standard extensions inserted in your game project as outside hacks.

  2. I am aware one can bake rotation when exporting, and so most of my models are looking down instead of forward when I Export. However this baking could be done by the FXB import in Unity, so that not every day all these imports into Unity would have to be baked face down.

  3. Yes, I am aware that we can all do overrides of the Transform Inspector. However, what happens if you have 2 overrides? There is also a couple of Reset-dropdowns, but what I am talking about is something along the lines of what you see in the Top Right corner of the Editor window here:
    https://docs.unrealengine.com/latest/images/Engine/UI/LevelEditor/UE4Interface_5.jpg

  • Only i think they should be not placed inside the actual Editor window, but use the space where there’s currently a Zoom which is not needed by me or anyone I know.
  1. I am not able to understand why that link is a point in itself without a comment?

  2. Just like 1: I think it would be greatly beneficial if it was native and not a hack (and not OBJ, by the way)

Thanks for your feedback!

Thanks for your comments on all levels.
You write in the style of
#13 No hard-coded folders

  • which leads me to not respond to every input. I mean: Unity has already hard coded folders. And you write how Unreals core game Classes get’s in your way most of the time, I guess it’s all a matter of opinion, and I appreciate yours, it’s valuable to learn why things are as they are with Unity, because my opinions are not alone, thanks.

Oh, PS: I’m not a great programmer, and it’s not possible for me to get all I would like to see done happen in an asset and expect people to spend time reading and learning all my thoughts.

However, I did actually make an asset that addresses many of my ideas and brings solutions to many other topics. It’s completely drowning in the asset store, never get any views, and it’s not my intend to use this space to advertise it - Just saying that I actually have made fixes, as you suggest - first I released for free, not shown by the asset store, now it has a price tag because maybe that’d give it exposure, still no exposure, which I appreciate and am not complaining about, but it’s not that I have not made these tools, for the record.

Which is bad. And frequently requested to be gotten rid of. Anything hard-coded is bad…it may seem “easy” at first, but never actually works out for the best in reality.

–Eric

1 Like

I did, thanks.

The approach of ‘Let it happen in the asset store’ or ‘We can all override the inspectors’ is the problem that I try to address.

I think there are core UX issues that should be addressed, and much of these are that the /Asset folder needs to be filled up with a mess from the asset store.

When development goes ‘Hack it first, then implement it’, it all tends to be hacks with sugar - like uGui for instance. IMO it’s said pretty well with this old timer:

“If I had asked people what they wanted, they would have said faster horses” - Henry Ford.

The essence of my rambling was supposed to be that since so many are repeating what I repeated, so many implementations of fix exists, then maybe it’s not the best thing to have it happen though the Asset store in the Project folder, maybe it should be implemented, and I meant to suggest implementations made by visionary who took a direction, not to fight a war of ‘you write it yourself if you need id, stupid, don’t need your opinions here’ or ‘let’s see what hacks are popular and then implement them’.