Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Learning C# by Developing Games with Unity 3D Beginner's Guide

You're reading from   Learning C# by Developing Games with Unity 3D Beginner's Guide The beauty of this book is that it assumes absolutely no knowledge of coding at all. Starting from very first principles it will end up giving you an excellent grounding in the writing of C# code and scripts.

Arrow left icon
Product type Paperback
Published in Sep 2013
Publisher Packt
ISBN-13 9781849696586
Length 292 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Terry Norton Terry Norton
Author Profile Icon Terry Norton
Terry Norton
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Preface 1. Discovering Your Hidden Scripting Skills FREE CHAPTER 2. Introducing the Building Blocks for Unity Scripts 3. Getting into the Details of Variables 4. Getting into the Details of Methods 5. Making Decisions in Code 6. Using Dot Syntax for Object Communication 7. Creating the Gameplay is Just a Part of the Game 8. Developing the State Machine 9. Start Building a Game and Get the Basic Structure Running 10. Moving Around, Collisions, and Keeping Score 11. Summarizing Your New Coding Skills A. Initial State Machine files B. Completed code files for Chapters 9 and 10 C. Pop Quiz Answers Index

Setting up the StateManager controller


Now, look at line 6 of the StateManager class in the following screenshot. We have a big problem right off the bat:

The activeState variable needs to be able to store all of the State types. Right now it can only store a reference to a BeginState type of object. This looks like a huge problem! What about the classes PlayState, WonState, and LostState? What if we had 50 different States that needed to be referenced in activeState?

The following diagram is our dilemma:

Studying an example of inheritance

Let's look at this issue using objects we all use all the time.

How about a Potato? Let's also imagine we have a Potato bag. Now to connect these real objects into the scripting world, the following is a simple declared variable:

public Potato bag;

So we have a variable named bag. The type of object it can store is a Potato. Saying this in another way: I have a Potato bag, and the only thing I can put in it is a potato.

The issue is shown in the following diagram...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime