It looks more like Adobe/Macromedia Flash as IDE, used to like that very much back in the days, till flash died due to plugin need / proprietary / security.
Would still prefer to ship an app in a single file, that progressively streams, just as SWF used to do. Now, in the web area, all is utter crap, one billion files to download, CDNs, fallbacks, signatures.... argh!
Heck, would choose VB or Delphi as IDE for building apps in no time against all this React / Angular / WebComponents tech salad with no substance and ephemeral lifespan.
I am still able to compile pascal code from 1997 in Lazarus / FPC.
Regarding the development environment, yes it's very integrated and isolated. For me this was a bit of a culture shock as I generally prefer working with text rather than IDEs, but I've gotten fairly well acclimatised to it now.
Yet it produces native apps as well as WebGL.
An infinity of tutorials exist in as many qualities so learning resources of every level are hyper abundant from gradual to accelerated. A passable 2D app is probably possible in a few days starting from zero knowledge. But a impressive 3D game will take mastery of quite a range of its abilities and probably require a team.
Since it is not dependent on a proprietary player, it probably has more staying power than Macromedia/Flash but it does have competition from Unreal which I imagine is a viable alternative.
Haven’t touched Unity since... even though I’d love to make games. I’m partly afraid of future maintainability of my projects, but there is a potential future where 3D engines converge on a standard... maybe never.
Several obvious conclusions can be drawn:
1) I am an idiot
2) I am using the wrong training material
3) Unity3D is just not for me.
I am hoping it is #2, so I ask what path did you use to learn Unity3D?
First thing to really wrap your head around is 'what is a GameObject'. A GameObject is just an entity that exists at runtime in the game world and has things called 'Components' attached to it. The simplest possible GameObject has only one component, called a Transform. This is simply a stateful record of the GameObject's position, rotation and scale. You can expect to write lots of code that involves manipulating Transforms.
There are components for everything. Want your GameObject to have a visual manifestation in the game world? Add a MeshRenderer component. Want to allow it to obey the laws of Newtonian physics? Add a Rigidbody component.
You can expect to spend a lot of your time implementing your own components. These custom components will often, ultimately just end up manipulating the transforms and other components of other GameObjects in the world.
Now you might wonder how GameObjects are created. One way is just to create an individual GameObject and attach components to it (analogous to an anonymous class), for the most part however, you will create things called 'prefabs' which are analogous to classes in OOP. Instances of these prefabs can then be easily instantiated (either manually via the editor or programmatically at runtime).
Once you have gotten your head around these core concepts, the rest starts to naturally follow. You can study topics like animation, custom shaders, net code, physics etc. and quickly understand how they relate to the core concepts.
My path to learning Unity (and I'm still learning!) was to follow the Unity official tutorials then start prototyping game mechanics - how to create a first person controller, how to allow player to interact with game world objects, how to animate characters etc. I'm now at I guess an 'advanced beginner' stage. I'm comfortable with the core API, have dabbled in most of the common topics you would need to be familiar with to make a game, and now I'm just doing projects to build up my productivity and skills.
Also, try to build this modular plugin in OpenBIM environment with IFC [1] support, then it will be more useful
If you need some help in this way let me know
[1] https://www.buildingsmart.org/about/what-is-openbim/ifc-intr...
I am currently awaiting approval to sell an editor plugin on the Unity store which I spent some free time working on as a side project. In game level design, most artists make use of 'modular' assets to some extent. These are small sections of a structure e.g. a corner wall section or a roof section, which can be combined together to make endless variations on a building style. The plugin I made allows you to specify 'sockets' on each modular asset, including a type and compatibility system, then it handles automatic snapping together of assets in the editor. This speeds up a assembly of modular assets significantly. The alternative, old fashioned way of doing this is 'vertex snapping' which is tedious and time consuming.
Video here: https://youtu.be/MvYTbIU1d-c