Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Having trouble learning the interface. Searching for basic tutorials.

Discussion in 'Getting Started' started by Deleted User, Jun 7, 2019.

  1. Deleted User

    Deleted User

    Guest

    What I'm looking for is something that explains what to do once I open Unity, and assumes I know nothing about it. Most of the "beginner" tutorials I have found seem to assume a good bit of knowledge about the interface, have you to add other features, etc. To add emphasis to what I mean, I have installed and later uninstalled Unity over the past years, never being able to figure out even what to do or how to start. I keep hearing people say how easy it is to use Unity, and that even kids are making games with it, but I seem to require some extra help.

    Maybe it might also be relevant for me to pose the question: are their any special skills you need to use Unity? In other words, do you need to have a firm understanding of 3D modeling and have solid artistic skills? Do you need to have years of professional programming experience in C# or the like? I ask, because perhaps Unity is a tool meant for people who already have a solid knowledge base or raw talent. I'm no artist, but I have done some basic programming in Java, C++, C#, and the like, even creating a few simple games. Is Unity something for me, or should I move on for now?
     
  2. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Have you tried this course? It looks to me like it starts from square 1, how to navigate the Unity UI.

    And no, you don't need any of that specialized knowledge you mention above.
     
    Ryiah likes this.
  3. Deleted User

    Deleted User

    Guest

    Thank you for your quick reply and link. No, I have not tried that yet. I'll take a look at a few of the videos and see if they make more sense to me.

    I'm glad to hear that I don't need special skills, because the thought of having to be a 3D graphics expert or elite programmer to make anything was a bit intimidating. I'd be happy if I could just make a crude version of a 70's-80's game.
     
  4. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    The hardest part of Unity when first opening is the structure of scenes, GameObjects, components, and the game loop. Once you get that down, most everything else falls into place.

    Scenes
    A scene is just a container for GameObjects. Generally you will have one or more GameObjects as part of the scene itself, and at runtime can add or remove GameObjects. A scene can represent whatever you want in your game, but are often used for separating different parts of the game from each other.

    Example:
    1) Custom splash screen scene
    2) Loading scene
    3) Main menu scene
    4) Main game world scene

    You can run scenes individually, or run multiple scenes at the same time. For example, I often have a main game play scene which contains the UI and main game mechanics, but everything specific to different levels or different areas of the map are in their own separate scenes. So when a player gets into the game I load the main game world scene and additive load the scene specific to that level. (additive loading scenes is a more advanced topic, but just wanted to mention it)

    GameObjects
    A GameObject is a customizable container to represent virtually anything you want in your game. They are most commonly used for representing individual characters, such as a monster or the player, but also represent buildings and the terrain. They even are used as containers for more abstract parts of your game, like a network manager or a a load/save system. Most anything you want running in your game will take the form of a GameObject.

    Core to the functionality of a GameObject is the Transform component. The Transform stores the position and rotation of the GameObject in the game world. This allows you to position GameObjects relative to each other so they can be properly visualized with a camera to be displayed to the player.

    GameObjects can be nested, where a parent GameObject can have any number of child GameObjects. You use this for attaching distinctly separate things together, so they move as one in the game world, or for representing sub parts of what is really a single thing in your game. For example, a player's gun could be a child object of the parent object representing the character. A child can also move relative to the parent, like the turret of a tank, while moving with the tank as the tank drives.

    GameObjects can be made as part of a scene, or "instantiated" at runtime from "prefabs". A prefab is just a GameObject which is saved to your assets but is not necessarily a part of the scene itself. Prefabs are very useful when you need a variable number of copies of a GameObject, or it is an object that will need to be created, destroyed, then created again. NPC monsters for example, instead of creating separate objects for each one in your scene statically, you can instantiate at runtime any number of monsters from a single prefab and position them randomly in the scene so no two play throughs are identical. The monsters can be killed (destroying the GameObject), and can be respawned (instantiated again) however you want your game to go.

    Components
    GameObjects are just fairly useless containers though without their components. A component is what determines the behavior of the GameObject. A component can take the form of a 3D mesh, a 2D sprite, a sound effect, a UI window, and most importantly a custom C# script you write.

    You can attach any number of components to your GameObjects which will dictate its behavior. This is where the majority of your code you write lives. Components interact with other components through references. These references can be with any other component active in the game on any other GameObject. You get these references through a variety of means, such as establishing them in the editor's inspector window, at runtime through methods like GetComponent, through physics interactions like OnCollisionEnter, or returned from Instantiate when you create a GameObject from a prefab.

    Game Loop
    So in the old school way of writing games, there would be one central game loop which runs over and over until the game ends. The purpose is obviously so the game can advance over time. Instead of you writing the game loop yourself and calling code from it though, Unity runs the game loop and lets you hook into it in your own C# scripts you attach as components.

    The primary game loop is accessed through the Update() method. Any code you add to Update in any of your C# components will be called once per frame. This lets you manage the behavior of your components, and their associated GameObjects, over time. You can use Update to move a GameObject over time to a destination, to check for enemies within some range so you can react to them, to fire missiles at some interval, to produce some cool particle effect , pretty much anything you want to occur during game play.
     
    Vryken, Deleted User, Ryiah and 2 others like this.
  5. Deleted User

    Deleted User

    Guest

    Thanks Joe-Censored for that very long and detailed description of the various part of the game making process. Advice like this helps me understand the process a lot better. Hopefully between this post and some of the tutorials, I'll be able to make a few simple things.
     
    Joe-Censored and JoeStrout like this.