Transcript from the "Unity Ecosystem & Package Manager" Lesson
>> So there's one more important window that you should know about. We shouldn't need it today, you should have all of the packages that we're going to need already installed, because they're installed with the starter project. Unity has what's called a package manifest file, so it already knows all the packages that you need to have installed and it will put them in there for you.
[00:00:24] And they actually should probably be in the repo. So you already have all the stuff, but the Unity package manager is really amazing. It allows you to install more functionality than just the default that is included with Unity. So just to give you a couple of examples, the non-default packages that are already installed in this project are the universal render pipeline.
[00:00:52] So that again is just a basic 3D rendering pipeline that's suitable for just about any application. We have the input system installed. So Unity is migrating to a new way of doing input. And there is the default input system, which is already included in every Unity project. But the new input system is being handled as a package.
[00:01:17] And it's just a much more modern approach to input handling. It's actually really cool, you can create actions and those actions can drive multiple types of inputs. So you could have a button for, say, firing a laser. And then you could tie that to a button on a keyboard, a button on a gamepad, a button on a VR device, etc.
[00:01:41] And then we also have another package called TextMesh Pro, and that's for UI. It's just a much better alternative to Unity's default rendering for UI text. So the big advantage of using Unity over other game engines in my opinion is the ecosystem. Unity comes with just this amazing community, an amazing set of documentation, there's all of the packages that I just mentioned.
[00:02:18] There's the Asset Store, there's Unity services, and we will dig into each one of these. So the first really great thing about Unity is how well it's documented. There is excellent documentation for Unity, and that comes in two forms. There is the Unity manual, and there is the scripting API.
[00:02:42] So the manual is a much more human readable set of documentation. So I'll click on that. And this is what it looks like. This is the Unity manual. And on the left side, there's lots of different categories about all of the different areas and features of Unity, such as input and graphics and audio.
[00:03:06] And on the right side is the page that you're currently viewing. And this can actually be read like a book, you can just click on these arrows here. And you can read this like a manual for using Unity. It is incredibly dense and there is so much to dig into here.
[00:03:28] But even after using Unity for years and years, sometimes I will just go to various pages for features. And let's say rendering pipelines and using the Universal Render Pipeline. And I'll just kind of leaf through this and read as much as I can, because there's a lot to learn.
[00:03:52] So let's see if I can find maybe a better example here. Let's see, this is materials. Yeah, so like using materials and applying them to your game objects and meshes. This tells you everything that you need to know about how to assign a material to a game object, which is something that we'll do later.
[00:04:19] So the Unity manual is just great, there's lots of great screenshots to help you along. And something else that you'll notice is that a lot of times, you'll come across a Unity manual page that will say Switch to Scripting. So if I click that, it will bring me over to the other set of Unity documentation that I mentioned, which is the scripting API.
[00:04:45] And you'll see at the top here, with the Unity documentation, it has both linked. So I was looking at materials. Now, in the scripting API, we have a very similar interface here. So I can scroll through all of the different namespaces. There's the Unity engine, the Unity editor, if you're actually writing custom editor scripts and you wanna make custom windows, the Unity namespace, and other.
[00:05:13] [LAUGH] So most of what you'll need is in the Unity engine namespace and then there's several additional namespaces within that. But I was on the material page to the manual, I clicked Switch to Scripting, and it brought me to the material class in the Unity engine namespace. And I can just scroll through here and look at all of the different properties that a material has, and all of its public methods, its constructors.
[00:05:50] And if I click on any one of these, it will drill down and tell me about that property. So every material has a color. And again, I'm just using materials as an example, but every material has a color, and its color is of type color, you can click on that.
[00:06:13] It's kinda like going down a Wikipedia rabbit hole. I mean, you can just kinda click on these and look at all of the different classes that are within Unity. So the API surface is huge in Unity. There is so much stuff to dig into and learn, but that's why I stressed the documentation so much, is that I'm in here all the time.
[00:06:40] I'm looking at the Unity documentation every day and it's not something that you're really going to memorize a whole lot of, unless you're using it every day. So this is a really valuable resource, the Unity manual and the scripting API. Now, as you get further into Unity, there's also the Asset Store.
[00:07:05] The Asset Store is really cool, and it looks like they're having a very big sale, they're super excited about [LAUGH] right now. But the Asset Store is a place where you can get additional assets for your game. A lot of them are paid, a lot of them are free, but this is everything you can think of for a game, such as scripts or materials, meshes, sound effects, things for animation, shaders, I mean, you name it.
[00:07:42] This is actually really a great one, Easy Save. I've used Easy Save for creating save game data. So that abstracts the whole problem of saving data across all the different devices that you could potentially deploy a game to. So if you're deploying to Playstation and iOS and PC, all of those save data in different ways to different locations, and it just abstracts that away.
[00:08:14] So the Asset Store alone is a great reason for using Unity, you can get a lot of leverage out of this and get pieces of your game in pretty big chunks. So there's also just the community. The Unity blog is really great. There's a question and answer style forum there, which is kinda like your stack overflow for Unity, I guess.
[00:08:46] And then there is also the forums. And that's, again, really great place to just learn about what's going on, dig into some of the problems that other people are having that maybe can help you solve some of your own problems. And I've been in some pretty difficult situations in the past and the forums have gotten me out of them.
[00:09:14] And the great thing about the forums is that they're also moderated by Unity employees. So Unity is actually in there answering questions and digging into potential issues about the engine, or they'll have you upload your project. It's really, really great. And then finally, there's Unity Services. So this is a thing that's provided by Unity.
[00:09:47] So it is paid in a lot of cases. There's still a lot of value you can get out of this for free, but this a whole other world of stuff, where you can add, say, analytics to your games. So if you are creating a game that is going on iOS and it's going to be free to play, they have tools for monetization and analyzing player behavior and adding multiplayer and netcode.
[00:10:20] I mean, it's really fantastic. I've used a lot of Unity services in the past. But again, we're building a simple game. It's kind of a whirlwind tour, but that is all of the really great stuff that I think makes Unity a great engine to use.