Learning C# 7 By Developing Games with Unity 2017(Third Edition)
上QQ阅读APP看书,第一时间看更新

Introducing the class

The class plays a major role in Unity. Most of your code will be written inside classes. Think of it like a container for variables and methods.

You just learned about variables and methods. These two items are the building blocks used in Unity scripts. The term "script" is used everywhere in discussions and documents. Look for it in the dictionary, and you will see that it can generally be described as written text. Sure enough, that's what we have. However, since we aren't just writing a screenplay or passing a note to someone, we need to learn the actual terms used in programming.

Unity calls the code it creates a C# script. However, people like me have to teach you some basic programming skills and tell you that a script is really a class.

In the previous section about methods, we created a class (script) called variableScript. It contained a couple of variables and a method. The main concept, or idea, of a class is that it's a container of data, stored in variables and methods that process that data in some fashion. Because I don't have to constantly write class (script), I will be using the word "script" most of the time. However, I will also be using "class" when getting more specific with C#. Just remember that a script is a class that is attached to a GameObject.

A script is like a blueprint or a written description. In other words, it's just a single file in a folder on our hard drive. We can see it right there in the Projects panel. It can't do anything by just sitting there. When we tell Unity to attach it to a GameObject, we aren't creating another copy of the file. All we're doing is telling Unity that we want the behaviors described in our script to be a component of the GameObject.

When we click the Play button, Unity loads the GameObject into the computer's memory. Since the script is attached to a GameObject, Unity also has to make a place in the computer's memory to store a component as part of the GameObject. The component has the capabilities specified in the script (blueprint) that we created.

It is worth knowing that not every class is a Unity component. In objectoriented programming, we use classes to organize the project. The last thing I want to do is get you confused at this stage, so it's a good idea here to write some code examples. Don't worry about writing it in your MonoDevelop. Just look at the examples and try to understand what classes might be used for.

  • Example 1Student:
using UnityEngine; 
using System.Collections; 
 
public class Person : MonoBehaviour { 
 
  public string firstName = "Greg"; 
  public string lastName = "Lukosek"; 
  public string emailAddress = "lukos86@gmail.com"; 
  public int age = 28; 
  public float heightInMeters = 1.75f; 
 
}
  • Example 2Car:
using UnityEngine; 
using System.Collections; 
 
public class Car : MonoBehaviour { 
 
  public string make = "Tesla" 
  public string model = "S"; 
  public int numberOfWheels = 4; 
  public int topSpeed = 250; 
 
}