C# in Unity 101. Objects perform operations when receiving a request/message from a client

Size: px
Start display at page:

Download "C# in Unity 101. Objects perform operations when receiving a request/message from a client"

Transcription

1 C# in Unity 101 OOP What is OOP? Objects perform operations when receiving a request/message from a client Requests are the ONLY* way to get an object to execute an operation or change the object s internal data This means an object s internal state is encapsulated (invisible from outside the object) Stats playerstats = new Stats( 10, 10 ) playerstats.getpower() playerstats.gettoughness() (We don t always adhere to this rule for performance reasons ) 1

2 OOP Why use Object Oriented Programming? Encapsulate a variety of variables and methods into a single package Reuse existing functionality or override it! Variables have names, helping humans remember what they mean Restrictions can be imposed to stop inappropriate use Allows for programming that emulates reality OOP What Is Difficult About OOP? Decomposing a system into objects During decomposition we will think about: Encapsulation Granularity Dependency Flexibility Performance Evolution Reusability While there are design patterns to help us, many situations call for different strategies (and that is where it gets complex!) 2

3 OOP A class is a data type / object type A class is a template (blueprint) used to create objects Classes are abstract models for ideas or concepts Describes how to package data and procedures this.color this.maxspeed this.efficiency start() steer( angle) OOP An instance is an object generated from a class A class is just a definition To use a class, you need to create an instance! A class = blueprint, an instance = actual car 3

4 OOP Instance attributes are UNIQUE to the instance Each instance of a car has separate values (DEFAULT) this.color = null this.maxspeed = 0 this.efficiency = 0 this.color = Blue this.maxspeed = 65 this.efficiency = 48 this.color = Red this.maxspeed = 150 this.efficiency = 12 this.color = Black this.maxspeed = 80 this.efficiency = 24 this.color = Green this.maxspeed = 200 this.efficiency = 8 OOP When we write a class we are DEFINING a class We have not created an instance of the class We have instructed C# how to create the class We are telling C# what variables a car is composed of and what methods it has 4

5 OOP - Inheritance Inheritance allows for code reuse A class can be built off of an existing class to add additional functionality without rewriting all the previous methods and attributes A child class can also override previous functionality The following slides are an example for using inheritance: OOP - Inheritance Example Lets create a class to represent different NPC or player characters in a game: Lets start with the most general thing we can think of: An entity - something that exists in 3D space Entity will be a base class for classes needing a physical location A entity has attributes (member variables): string name Vector3 position Entity name position 5

6 OOP - Inheritance Example Entity is very simple If we want a new, more complex type of Entity we can reuse Entity When designing classes, we try to group common attributes together into base classes Entity name position This allows us to build upon previously developed code We do this through inheritance Something that is an Entity but more OOP - Inheritance Example A Human is an Entity It contains everything that an Entity is + more Human adds: hitpoints power toughness item int GetPower() int GetToughness() void SwapItem(item) bool IsAlive() Base Class Super Class Parent Class Entity Human Derived Class Sub Class Child Class Human Entity name position hitpoints power toughness item GetPower() GetToughness() SwapItem() IsAlive() 6

7 OOP Inheritence Entity Human Item Zombie The Bubble-Up Effect (Monolithic Classes) Too much inheritance can be a bad thing! Original Unreal Tournament had a monolithic class hierarchy The desire to share features across dissimilar classes causes features to bubble up the hierarchy Actor Brush Controller AIController PlayerController Info Light Inventory Ammunition Powerups Weapon Example: The desire to allow objects to float on water Eventually, flotation becomes a fundamental property of everything GameInfo HUD Pawn From: Game Engine Architecture Vehicle UnrealPawn 7

8 The Deadly Diamond Multiple Inheritance - inherit from more than one class C# does not allow you to do this because of what is called the DIAMOND OF DEATH, where multiple copies of vehicle could be initialized Vehicle LandVehicle WaterVehicle AmphibiousVehicle From: Game Engine Architecture C# Versions C# was first released in 2002 and has changed greatly over the years For Unity and in general, we ll be working with C# 3.0 / 3.5 This means all the latest features of the language might not be available, so be careful if you take C# tutorials 8

9 C# Monobehavior When working inside of Unity we write scripts, not programs Unity will handle compiling and building our project by assembling its code with our scripts We do not have a Main point of entry, the game engine handles all of that C# Monobehavior All scripts in Unity derive from MonoBehavior MonoBehavior s come with methods that provide you with important times in the game engine s cycle to perform actions: Awake() When the script instance is being loaded Start() Called when the script is enabled before any updates occur Update() Called every frame if enabled FixedUpdate() Fixed framerate frame update, good for physics LateUpdate() Called every frame after all updates occur OnDisable() Called when disabled OnEnable() Called when enabled OnTriggerEnter() OnTriggerExit() 9

10 C# Class Structure C# Variables All of your favorite variable types make an appearance in C#: All of these variable names are actually aliases for.net types stored as structures in namespace System byte System.Byte sbyte System.byteSByte int System.Int32 uint System.UInt32 short System.Int16 ushort System.UInt16 long System.Int64 ulong System.UInt64 float System.Single double System.Double char System.Char bool System.Boolean object System.Object string System.String decimal System.Decimal DateTime System. DateTime 10

11 C# Variables Arrays are handled using square brackets float[] myarray = {1.0f, 2.0f}; float[] mysecondarray = new float[2]; float[] mythirdarray = new float[2] {1.0f, 2.0f}; int[,] my2darray = new int[2,2]; C# Value vs. Reference Most standard types are pass by value (they hold their actual value in its own memory space) When passing a value through a method, copies are created and changes don t persist when the method ends A reference type holds a pointer to a memory location where the value is stored Class by references include String, arrays, classes, and delegates Changes inside a method to a reference type will persist after the method ends By default all reference values have the type of null, meaning they are not pointing to any memory address 11

12 C# Interfaces Interfaces are not to be confused with classes, they contain declarations of methods & properties but not the implementation Interfaces are usually prefaced with the letter I: Interfaces allow you to extend and work with existing code by enforcing a set of methods that are needed to make it work Two difference classes can implement the same interface and be stored in the same array of that type class TestClass : InterfaceOne, InterfaceTwo, InterfaceThree{} C# Abstract Class Allows you to write in functionality that can be implemented or overridden It is an incomplete class that must be finished before it can be used abstract class ShapesClass{ abstract public int Area(); } class Square : ShapesClass { int side = 0; public Square(int n) { side = n; } public override int Area() { return side * side; } } Can use One Abstract Class, but Many Interfaces 12

13 C# Virtual & Base Keyword The virtual keyword allows child classes to override a method or property It is used in tandem with the keyword override in the child class, indicating that it is replacing the method The keyword base allows us to call the parent classes methods / constructors if we have overridden it public class Person { protected string ssn = " "; protected string name = "John L. Malgraine"; public virtual void GetInfo() { Console.WriteLine("Name: {0}", name); Console.WriteLine("SSN: {0}", ssn);}} class Employee : Person { public string id = "ABC567EFG"; public override void GetInfo(){ base.getinfo(); Console.WriteLine("Employee ID: {0}", id); } } C# Conditionals if(boolean expression){} else if(boolean expression){} else {} Boolean Expression? First : Second switch(expression) { case value1: break; case value2: break; default: break; } 13

14 C# For Loops for(int i = 0; i < somesize; i++) { do work } public class IterateSpanExample { { Span<int> numbers = new int[] { 3, 14, 15, 92, 6 }; foreach (int number in numbers) { Debug.Log(number.ToString()); } } while(boolean expression) {} C# Try Catch try { }...do something that might throw an error catch(exception e) { } 14

15 C# Methods Methods include access level, return type and parameters You are allowed to overload methods (same name different number of parameters) Methods can be declared as static so that an instance of the class does not need to exist: public static int GetInt() {return myinteger;} C# Delegates & Events Think of a delegate as a function pointer They are created using the keyword delegate with the signature of the method afterwards A delegate is able to hold a method and can use it to be called later It is the first part in creating Events, which fire off at the correct time public delegate int DelegateName(int x, float y) 15

16 C# Delegates & Events Events work with delegates to fire off when something important happens An event will notify everyone who is subscribed public event delegatetype InputRecieved; protected void OnInputReceived(){ if(inputreceived!= null) InputReceived();} void Update() { if(controllerinput.getbuttondown) OnInputReceived(); } C# Delegates & Events We can add and subtract methods to the event using the += and -= operators When the times comes, OnInputReceived calls the Event and everyone who has subscribed gets their method called Player OnInputReceived Movement Recorder Menu System 16

17 IEnumerators We may wish to wait a set amount of time before performing an action, or fire off some action and have it progress at a desired rate We can use Coroutines and methods that return IEnumerator objects to control execution based on time StartCoroutine( WaitForTime ); IEnumerator WaitForTime() { yield return new WaitForSeconds(5.0f); } Play/Pause Scene Hierarchy Scene View Inspector Project View 17

18 Play/Pause Scene Hierarchy Scene View Inspector Project View We can move around our scene using the following: Arrow keys on a keyboard Pan Middle Mouse Button Rotate Camera Right Mouse Button Rotate About Focus Point Alt + Left Mouse Button Zoom In / Out Alt + Right Mouse Button F Key Focus on selected object 18

19 Our Hierarchy shows all the Game Objects in our scene We always start with a Main Camera and a Directional Light We can add additional Game Objects by Right Clicking in the window and selecting To move Game Objects around select one and a gizmo will appear This gizmo can be one of 3 types, for: Translate Rotate RGB = XYZ Scale 19

20 We can also create Game Objects by going under the GameObject menu at the top left of our Unity Window GameObjects aren t always created at the (0,0,0) position, but instead where the camera is looking We can use the inspector to see the position, rotation and scale of the object as well as reset it Objects selected in the Hierarchy panel will have their information displayed in the Inspector panel All Game Objects have a Transform component on top We can reset the transform component by typing manually or by pressing the gear and selecting reset 20

21 Two Game Objects differ from one another by having different components attached Select the Main Camera object from the hierarchy Notice that a Light has a Light component and a Camera has a Camera and an Audio Listener component ( to hear sounds with ) We do not need to rely on the GameObjects already supplied by Unity, we can build our own from a blank Game Object Right Click in the Hierarchy and create an Empty Game Object Note it has only a Transform Component and nothing else Click the Add Component button and type in Light in the search field Press enter and now your Game Object acts just like a Light 21

22 We can add lots of components to objects to give them various abilities Select a Game Object in the hierarchy and instead of using the Add Component button use the Component drop down menu at the upper right of the Unity window Try adding random components just to get used to working with them To add our own functionality to Unity, we need to create C# scripts, which are components we can attach to game objects Right Click on your project directory and create a new folder and name it Scripts Inside the folder right click and create a script called Pulse Double-click the script to open it in your chosen editor (usually Visual Studio) 22

23 Unity will automatically include 3 very useful namespaces into your script: System.Collections System.Collections.Generic UnityEngine All scripts that are components inherit from the class MonoBehavior It will also automatically add the Start method and the Update method, which get called by Unity at the appropriate time automatically We are going to make a Sphere Game Object scale up and down (Pulse) over time Create a Sphere Game Object in your hierarchy using one of the methods specified Select the sphere to see it in the inspector Select the Pulse script in your Project window and drag it over the empty portion of the inspector at the bottom to add it as a component of the sphere 23

24 Next we will alternate the colors of the sphere by manipulating the material of the object Create a new material by right clicking in your project and selecting new material, name it Sphere Drag the new material onto your Sphere in the scene view You should now notice your material in the inspector when you select the Sphere 24

25 A 3d object like the sphere we have is made using two components: MeshFilter MeshRenderer The Mesh Filter provides the point data The Mesh Renderer draws it to the screen We will need to grab the Mesh Renderer and the material from it to change the color of the object 25

26 The method GetComponent<Class> will grab a component from the Game Object if it exists If there is no Game Object it will return null, so make sure you check to see if it exists! We grab references to the Mesh Renderer and the Material in the Start method because we will continually be using them every Update By storing away references we don t have to perform costly searches for the components using GetComponent<>, which can slow things down if used too many times and too often Now that we have created a Game Object with some complexity, we might want to store it away for the future We can make our Game Object a Prefab, which is stored in our Project folder and reuse it over and over again To create a Prefab, grab the Sphere object and drag it into the Project Window Notice that the Sphere object s name in the Hierarchy is now blue 26

27 If we select the prefab in the project, it populates the inspector and any changes to it will spread to all other instances of the prefab in your scene If you select the prefab in the scene and make changes to it, you can push those changes to the global project prefab by pressing the Apply button at the top of the inspector You can also revert back to the project prefab if you made mistakes The Hierarchy panel also works as a Parent / Child Hierarchy display Create a new Cube Game Object and drag it onto the Sphere prefab Notice it is now nested within the Prefab Scale the Cube down and move it above the sphere so we can see it Try moving, rotating and scaling the prefab and you will see that it also impacts the child object 27

28 - Debug The Console window provides output from the program as it runs such as: Errors Warnings Logs We can output strings to the console using: Debug.Log( Hi, I am a string! ); - Debug Note that we can clear the console Collapse duplicate entries so they show only once Clear the next time we hit play Pause when errors occur Do not show log statements Do not show warnings Do not show errors Be careful with not showing errors, you might forget to turn it back on and wonder why nothing works 28

29 - Input Open up the Edit Menu at the upper right of the Unity Window Click on Project Settings and then Input The Inspector will now show the Input Manager with 18 predefined Inputs You can add more inputs by increasing the size of the array at the top - Input Many times the Action being performed is more important that what button is doing it We can name our Inputs and map them in multiple ways so that we can have several options available during gameplay The Type field allows us to switch from keyboard/mouse to mouse movement to joystick axes For now we only care about the names and what buttons we need to press, we ll cover this more deeply in the future 29

30 Input Methods 30

Google SketchUp/Unity Tutorial Basics

Google SketchUp/Unity Tutorial Basics Software used: Google SketchUp Unity Visual Studio Google SketchUp/Unity Tutorial Basics 1) In Google SketchUp, select and delete the man to create a blank scene. 2) Select the Lines tool and draw a square

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology Game Engine Architecture Fall 2018 What is a Game Engine? Run-time system Low-level architecture 3-D system Physics system GUI system Sound system Networking system High-level

More information

Adding a Trigger to a Unity Animation Method #2

Adding a Trigger to a Unity Animation Method #2 Adding a Trigger to a Unity Animation Method #2 Unity Version: 5.0 Adding the GameObjects In this example we will create two animation states for a single object in Unity with the Animation panel. Our

More information

Damaging, Attacking and Interaction

Damaging, Attacking and Interaction Damaging, Attacking and Interaction In this tutorial we ll go through some ways to add damage, health and interaction to our scene, as always this isn t the only way, but it s the way I will show you.

More information

Game Design Unity Workshop

Game Design Unity Workshop Game Design Unity Workshop Activity 2 Goals: - Creation of small world - Creation of character - Scripting of player movement and camera following Load up unity Build Object: Mini World and basic Chase

More information

Game Design From Concepts To Implementation

Game Design From Concepts To Implementation Game Design From Concepts To Implementation Giacomo Cappellini - g.cappellini@mixelweb.it Why Unity - Scheme Unity Editor + Scripting API (C#)! Unity API (C/C++)! Unity Core! Drivers / O.S. API! O.S.!

More information

Terrain. Unity s Terrain editor islands topographical landscapes Mountains And more

Terrain. Unity s Terrain editor islands topographical landscapes Mountains And more Terrain Unity s Terrain editor islands topographical landscapes Mountains And more 12. Create a new Scene terrain and save it 13. GameObject > 3D Object > Terrain Textures Textures should be in the following

More information

Terrain. Unity s Terrain editor islands topographical landscapes Mountains And more

Terrain. Unity s Terrain editor islands topographical landscapes Mountains And more Terrain Unity s Terrain editor islands topographical landscapes Mountains And more 12. Create a new Scene terrain and save it 13. GameObject > 3D Object > Terrain Textures Textures should be in the following

More information

IAT 445 Lab 10. Special Topics in Unity. Lanz Singbeil

IAT 445 Lab 10. Special Topics in Unity. Lanz Singbeil IAT 445 Lab 10 Special Topics in Unity Special Topics in Unity We ll be briefly going over the following concepts. They are covered in more detail in your Watkins textbook: Setting up Fog Effects and a

More information

Spell Casting Motion Pack 5/5/2017

Spell Casting Motion Pack 5/5/2017 The Spell Casting Motion pack requires the following: Motion Controller v2.49 or higher Mixamo s free Pro Magic Pack (using Y Bot) Importing and running without these assets will generate errors! Overview

More information

Game Design Unity Workshop

Game Design Unity Workshop Game Design Unity Workshop Activity 1 Unity Overview Unity is a game engine with the ability to create 3d and 2d environments. Unity s prime focus is to allow for the quick creation of a game from freelance

More information

Introduction to Unreal Engine Blueprints for Beginners. By Chaven R Yenketswamy

Introduction to Unreal Engine Blueprints for Beginners. By Chaven R Yenketswamy Introduction to Unreal Engine Blueprints for Beginners By Chaven R Yenketswamy Introduction My first two tutorials covered creating and painting 3D objects for inclusion in your Unreal Project. In this

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

if(input.getkey(keycode.rightarrow)) { this.transform.rotate(vector3.forward * 1);

if(input.getkey(keycode.rightarrow)) { this.transform.rotate(vector3.forward * 1); 1 Super Rubber Ball Step 1. Download and open the SuperRubberBall project from the website. Open the main scene. In it you will find a game track and a sphere as shown in Figure 1.1. The sphere has a Rigidbody

More information

Game Design Unity Workshop

Game Design Unity Workshop Game Design Unity Workshop Activity 4 Goals: - Creation of small world - Creation of character - Scripting of player movement and camera following Load up unity Build Object: Collisions in Unity Aim: Build

More information

Tutorial: Using the UUCS Crowd Simulation Plug-in for Unity

Tutorial: Using the UUCS Crowd Simulation Plug-in for Unity Tutorial: Using the UUCS Crowd Simulation Plug-in for Unity Introduction Version 1.1 - November 15, 2017 Authors: Dionysi Alexandridis, Simon Dirks, Wouter van Toll In this assignment, you will use the

More information

Table of contents. Introduction. Having finally realized your ambitious plans for a game, you might face big performance

Table of contents. Introduction. Having finally realized your ambitious plans for a game, you might face big performance Table of contents Introduction Introduction... 1 Optimizing Unity games... 2 Rendering performance...2 Script performance...3 Physics performance...3 What is this all about?...4 How does M2HCullingManual

More information

Setting up A Basic Scene in Unity

Setting up A Basic Scene in Unity Setting up A Basic Scene in Unity So begins the first of this series of tutorials aimed at helping you gain the basic understanding of skills needed in Unity to develop a 3D game. As this is a programming

More information

ANIMATOR TIMELINE EDITOR FOR UNITY

ANIMATOR TIMELINE EDITOR FOR UNITY ANIMATOR Thanks for purchasing! This document contains a how-to guide and general information to help you get the most out of this product. Look here first for answers and to get started. What s New? v1.53

More information

Unity Tutorial. Fall /15-666

Unity Tutorial. Fall /15-666 Unity Tutorial Fall 2014 15-466/15-666 Game World model, video, audio, interaction Often like Model-View-Controller Art, mechanics, levels, items, etc. Game Engine World model, video, audio, interaction

More information

User Manual. Contact the team: Contact support:

User Manual.     Contact the team: Contact support: User Manual http://dreamteck.io https://www.facebook.com/dreamteckstudio Contact the team: team@dreamteck.io Contact support: support@dreamteck.io Discord Server: https://discord.gg/bkydq8v 1 Contents

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Previously, on Lesson Night... From Intermediate Programming, Part 1

Previously, on Lesson Night... From Intermediate Programming, Part 1 Previously, on Lesson Night... From Intermediate Programming, Part 1 Struct A way to define a new variable type. Structs contains a list of member variables and functions, referenced by their name. public

More information

Introduction to Unity. What is Unity? Games Made with Unity /666 Computer Game Programming Fall 2013 Evan Shimizu

Introduction to Unity. What is Unity? Games Made with Unity /666 Computer Game Programming Fall 2013 Evan Shimizu Introduction to Unity 15-466/666 Computer Game Programming Fall 2013 Evan Shimizu What is Unity? Game Engine and Editor With nice extra features: physics engine, animation engine, custom shaders, etc.

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

UNITY WORKSHOP. Unity Editor. Programming(Unity Script)

UNITY WORKSHOP. Unity Editor. Programming(Unity Script) July, 2018 Hayashi UNITY WORKSHOP Unity Editor Project: Name your project. A folder is created with the same name of the project. Everything is in the folder. Four windows (Scene, Project, Hierarchy, Inspector),

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

Merging Physical and Virtual:

Merging Physical and Virtual: Merging Physical and Virtual: A Workshop about connecting Unity with Arduino v1.0 R. Yagiz Mungan yagiz@purdue.edu Purdue University - AD41700 Variable Topics in ETB: Computer Games Fall 2013 September

More information

Pacman. you want to see how the maze was created, open the file named unity_pacman_create_maze.

Pacman. you want to see how the maze was created, open the file named unity_pacman_create_maze. Pacman Note: I have started this exercise for you so you do not have to make all of the box colliders. If you want to see how the maze was created, open the file named unity_pacman_create_maze. Adding

More information

Introduction to.net, C#, and Visual Studio. Part I. Administrivia. Administrivia. Course Structure. Final Project. Part II. What is.net?

Introduction to.net, C#, and Visual Studio. Part I. Administrivia. Administrivia. Course Structure. Final Project. Part II. What is.net? Introduction to.net, C#, and Visual Studio C# Programming Part I Administrivia January 8 Administrivia Course Structure When: Wednesdays 10 11am (and a few Mondays as needed) Where: Moore 100B This lab

More information

Auto Texture Tiling Tool

Auto Texture Tiling Tool Table of Contents Auto Texture Tiling Tool Version 1.80 Read Me 1. Basic Functionality...2 1.1 Usage...2 1.1.1 Dynamic Texture Tiling...2 1.1.2 Basic Texture Tiling...3 1.1.3 GameObject menu item...3 1.2

More information

Transforms Transform

Transforms Transform Transforms The Transform is used to store a GameObject s position, rotation, scale and parenting state and is thus very important. A GameObject will always have a Transform component attached - it is not

More information

NOIDATUT E Leaning Platform

NOIDATUT E Leaning Platform NOIDATUT E Leaning Platform Dot Net Framework Lab Manual COMPUTER SCIENCE AND ENGINEERING Presented by: NOIDATUT Email : e-learn@noidatut.com www.noidatut.com C SHARP 1. Program to display Hello World

More information

Auto Texture Tiling Tool

Auto Texture Tiling Tool Table of Contents Auto Texture Tiling Tool Version 1.77 Read Me 1. Basic Functionality...2 1.1 Usage...2 1.2 Unwrap Method...3 1.3 Mesh Baking...4 1.4 Prefabs...5 2. Gizmos and Editor Window...6 1.1 Offset...6

More information

Pong in Unity a basic Intro

Pong in Unity a basic Intro This tutorial recreates the classic game Pong, for those unfamiliar with the game, shame on you what have you been doing, living under a rock?! Go google it. Go on. For those that now know the game, this

More information

Unity3D. Unity3D is a powerful cross-platform 3D engine and a user friendly development environment.

Unity3D. Unity3D is a powerful cross-platform 3D engine and a user friendly development environment. Unity3D Unity3D is a powerful cross-platform 3D engine and a user friendly development environment. If you didn t like OpenGL, hopefully you ll like this. Remember the Rotating Earth? Look how it s done

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Unity

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Unity i About the Tutorial Unity is a cross-platform game engine initially released by Unity Technologies, in 2005. The focus of Unity lies in the development of both 2D and 3D games and interactive content.

More information

Unity Scripting 4. CS 491 / DES 400 Crea.ve Coding. Computer Science

Unity Scripting 4. CS 491 / DES 400 Crea.ve Coding. Computer Science Unity Scripting 4 Unity Components overview Particle components Interaction Key and Button input Parenting CAVE2 Interaction Wand / Wanda VR Input Devices Project Organization Prefabs Instantiate Unity

More information

Unity introduction & Leap Motion Controller

Unity introduction & Leap Motion Controller Unity introduction & Leap Motion Controller Renato Mainetti Jacopo Essenziale renato.mainetti@unimi.it jacopo.essenziale@unimi.it Lab 04 Unity 3D Game Engine 2 Official Unity 3D Tutorials https://unity3d.com/learn/tutorials/

More information

.Net Technologies. Components of.net Framework

.Net Technologies. Components of.net Framework .Net Technologies Components of.net Framework There are many articles are available in the web on this topic; I just want to add one more article over the web by explaining Components of.net Framework.

More information

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class

More information

Game Architecture. 4/1/16: Gameplay Foundational Systems

Game Architecture. 4/1/16: Gameplay Foundational Systems Game Architecture 4/1/16: Gameplay Foundational Systems The Master Loop Initialize Loop: get input update world draw world Updating the Simulation Update game-driven (kinematic) rigid bodies Update phantoms

More information

CS248 Lecture 2 I NTRODUCTION TO U NITY. January 11 th, 2017

CS248 Lecture 2 I NTRODUCTION TO U NITY. January 11 th, 2017 CS248 Lecture 2 I NTRODUCTION TO U NITY January 11 th, 2017 Course Logistics Piazza Staff Email: cs248-win1617-staff@lists.stanford.edu SCPD Grading via Google Hangouts: cs248.winter2017@gmail.com Homework

More information

C#: framework overview and in-the-small features

C#: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer C#: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer

More information

Demo Scene Quick Start

Demo Scene Quick Start Demo Scene Quick Start 1. Import the Easy Input package into a new project. 2. Open the Sample scene. Assets\ootii\EasyInput\Demos\Scenes\Sample 3. Select the Input Source GameObject and press Reset Input

More information

Pick up a book! 2. Is a reader on screen right now?! 3. Embedding Images! 3. As a Text Mesh! 4. Code Interfaces! 6. Creating a Skin! 7. Sources!

Pick up a book! 2. Is a reader on screen right now?! 3. Embedding Images! 3. As a Text Mesh! 4. Code Interfaces! 6. Creating a Skin! 7. Sources! Noble Reader Guide Noble Reader version 1.1 Hi, Toby here from Noble Muffins. This here is a paginating text kit. You give it a text; it ll lay it out on a skin. You can also use it as a fancy text mesh

More information

Dialog XML Importer. Index. User s Guide

Dialog XML Importer. Index. User s Guide Dialog XML Importer User s Guide Index 1. What is the Dialog XML Importer? 2. Setup Instructions 3. Creating Your Own Dialogs Using articy:draft a. Conditions b. Effects c. Text Tokens 4. Importing Your

More information

Workshop BOND UNIVERSITY. Bachelor of Interactive Multimedia and Design. Asteroids

Workshop BOND UNIVERSITY. Bachelor of Interactive Multimedia and Design. Asteroids Workshop BOND UNIVERSITY Bachelor of Interactive Multimedia and Design Asteroids FACULTY OF SOCIETY AND DESIGN Building an Asteroid Dodging Game Penny de Byl Faculty of Society and Design Bond University

More information

NOTTORUS. Getting Started V1.00

NOTTORUS. Getting Started V1.00 NOTTORUS Getting Started V1.00 2016 1. Introduction Nottorus Script Editor is a visual plugin for generating and debugging C# Unity scripts. This plugin allows designers, artists or programmers without

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake

Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake Change in version 1.1 of this document: only 2 changes to this document (the unity asset store item has not changed)

More information

Basic Waypoints Movement v1.0

Basic Waypoints Movement v1.0 Basic Waypoints Movement v1.0 1. Create New Unity project (or use some existing project) 2. Import RAIN{indie} AI package from Asset store or download from: http://rivaltheory.com/rainindie 3. 4. Your

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 1. What is object-oriented programming (OOP)? OOP is a technique to develop logical modules, such as classes that contain properties, methods, fields, and events. An object

More information

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java

More information

Introduction to C# Applications

Introduction to C# Applications 1 2 3 Introduction to C# Applications OBJECTIVES To write simple C# applications To write statements that input and output data to the screen. To declare and use data of various types. To write decision-making

More information

Easy Decal Version Easy Decal. Operation Manual. &u - Assets

Easy Decal Version Easy Decal. Operation Manual. &u - Assets Easy Decal Operation Manual 1 All information provided in this document is subject to change without notice and does not represent a commitment on the part of &U ASSETS. The software described by this

More information

Java Object Oriented Design. CSC207 Fall 2014

Java Object Oriented Design. CSC207 Fall 2014 Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code

More information

Massive Documentation

Massive Documentation Massive Documentation Release 0.2 Inhumane Software August 07, 2014 Contents 1 Introduction 3 1.1 Features.................................................. 3 1.2 Getting Started..............................................

More information

SE 350 Programming Games

SE 350 Programming Games SE 350 Programming Games Lecture 4: Programming with Unity Lecturer: Gazihan Alankuş Please look at the last slide for assignments (marked with TODO) 2/10/2012 1 Outline No quiz today! (next week) One

More information

Dice Making in Unity

Dice Making in Unity Dice Making in Unity Part 2: A Beginner's Tutorial Continued Overview This is part 2 of a tutorial to create a six sided die that rolls across a surface in Unity. If you haven't looked at part 1, you should

More information

Reference Image. Source:

Reference Image. Source: Mesh Modeling By Immer Baldos This document is a tutorial on mesh modeling using Blender version 2.49b. The goal is to create a model of an elevator. This tutorial will tackle creating the elevator cart,

More information

Creating the Tilt Game with Blender 2.49b

Creating the Tilt Game with Blender 2.49b Creating the Tilt Game with Blender 2.49b Create a tilting platform. Start a new blend. Delete the default cube right click to select then press X and choose Erase Selected Object. Switch to Top view (NUM

More information

User Manual v 1.0. Copyright 2018 Ghere Games

User Manual v 1.0. Copyright 2018 Ghere Games + User Manual v 1.0 Copyright 2018 Ghere Games HUD Status Bars+ for Realistic FPS Prefab Copyright Ghere Games. All rights reserved Realistic FPS Prefab Azuline Studios. Thank you for using HUD Status

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:

More information

Massive Documentation

Massive Documentation Massive Documentation Release 0.1 Inhumane Software August 07, 2014 Contents 1 Introduction 3 1.1 Features.................................................. 3 1.2 Getting Started..............................................

More information

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I BASIC COMPUTATION x public static void main(string [] args) Fundamentals of Computer Science I Outline Using Eclipse Data Types Variables Primitive and Class Data Types Expressions Declaration Assignment

More information

UFO. Prof Alexiei Dingli

UFO. Prof Alexiei Dingli UFO Prof Alexiei Dingli Setting the background Import all the Assets Drag and Drop the background Center it from the Inspector Change size of Main Camera to 1.6 Position the Ship Place the Barn Add a

More information

Customizing DAZ Studio

Customizing DAZ Studio Customizing DAZ Studio This tutorial covers from the beginning customization options such as setting tabs to the more advanced options such as setting hot keys and altering the menu layout. Introduction:

More information

Working with the Dope Sheet Editor to speed up animation and reverse time.

Working with the Dope Sheet Editor to speed up animation and reverse time. Bouncing a Ball Page 1 of 2 Tutorial Bouncing a Ball A bouncing ball is a common first project for new animators. This classic example is an excellent tool for explaining basic animation processes in 3ds

More information

Tutorial Physics: Unity Car

Tutorial Physics: Unity Car Tutorial Physics: Unity Car This activity will show you how to create a free-driving car game using Unity from scratch. You will learn how to import models using FBX file and set texture. You will learn

More information

Distributed Programming

Distributed Programming Distributed Programming Lecture 04 - Introduction to Unreal Engine and C++ Programming Edirlei Soares de Lima Editor Unity vs. Unreal Recommended reading: Unreal

More information

Fundamentals. 5.1 What Will Be Covered in This Chapter. 5.2 Review

Fundamentals. 5.1 What Will Be Covered in This Chapter. 5.2 Review 5 Fundamentals Now that we ve covered most of the basic concepts and terms that are commonly taught to new programmers, it s time to learn some of the fundamental concepts that are required to write functioning

More information

Massive Documentation

Massive Documentation Massive Documentation Release 0.2 Inhumane Software June 15, 2016 Contents 1 Introduction 3 1.1 Features.................................................. 3 1.2 Getting Started..............................................

More information

Introduce C# as Object Oriented programming language. Explain, tokens,

Introduce C# as Object Oriented programming language. Explain, tokens, Module 2 98 Assignment 1 Introduce C# as Object Oriented programming language. Explain, tokens, lexicals and control flow constructs. 99 The C# Family Tree C Platform Independence C++ Object Orientation

More information

Programming in C# Inheritance and Polymorphism

Programming in C# Inheritance and Polymorphism Programming in C# Inheritance and Polymorphism C# Classes Classes are used to accomplish: Modularity: Scope for global (static) methods Blueprints for generating objects or instances: Per instance data

More information

Hardware and Software minimum specifications

Hardware and Software minimum specifications Introduction Unreal Engine 4 is the latest version of the Unreal games development software produced by Epic Games. This software is responsible for titles such as Unreal Tournament, Gears of War and Deus

More information

C++ gameplay programming in Unreal Engine 4

C++ gameplay programming in Unreal Engine 4 C++ gameplay programming in Unreal Engine 4 Samuel Schimmel samuel.schimmel@digipen.edu samuelschimmel.com Office hours: Tuesdays 6-7, Thursdays 12-3 in Tesla row O Official YouTube tutorials Live training

More information

Intel RealSense SDK Gesture Sequences Implemented in Unity* 3D

Intel RealSense SDK Gesture Sequences Implemented in Unity* 3D Intel RealSense SDK Gesture Sequences Implemented in Unity* 3D By Lynn Thompson When configuring gestures to control assets in a scene, it s important to minimize the complexity of the gestures and the

More information

Section 28: 2D Gaming: Continuing with Unity 2D

Section 28: 2D Gaming: Continuing with Unity 2D Section 28: 2D Gaming: Continuing with Unity 2D 1. Open > Assets > Scenes > Game 2. Configuring the Layer Collision Matrix 1. Edit > Project Settings > Tags and Layers 2. Create two new layers: 1. User

More information

3. Basic Concepts. 3.1 Application Startup

3. Basic Concepts. 3.1 Application Startup 3.1 Application Startup An assembly that has an entry point is called an application. When an application runs, a new application domain is created. Several different instantiations of an application may

More information

Premiere Pro Desktop Layout (NeaseTV 2015 Layout)

Premiere Pro Desktop Layout (NeaseTV 2015 Layout) Premiere Pro 2015 1. Contextually Sensitive Windows - Must be on the correct window in order to do some tasks 2. Contextually Sensitive Menus 3. 1 zillion ways to do something. No 2 people will do everything

More information

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) UI Elements 1 2D Sprites If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) Change Sprite Mode based on how many images are contained in your texture If you are

More information

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space.

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. 3D Modeling with Blender: 01. Blender Basics Overview This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space. Concepts Covered Blender s

More information

IAP Manager. Easy IAP Workflow. Copyright all rights reserved. Digicrafts 2018 Document version Support

IAP Manager. Easy IAP Workflow. Copyright all rights reserved. Digicrafts 2018 Document version Support IAP Manager Easy IAP Workflow Copyright all rights reserved. Digicrafts 2018 Document version 1.7.0 Support email: support@digicrafts.com.hk A. Before Start In order to use the IAPManager, the following

More information

Tutorial: Understanding the Lumberyard Interface

Tutorial: Understanding the Lumberyard Interface Tutorial: Understanding the Lumberyard Interface This tutorial walks you through a basic overview of the Interface. Along the way we will create our first level, generate terrain, navigate within the editor,

More information

Week 1 The Blender Interface and Basic Shapes

Week 1 The Blender Interface and Basic Shapes Week 1 The Blender Interface and Basic Shapes Blender Blender is an open-source 3d software that we will use for this class to create our 3d game. Blender is as powerful as 3d Studio Max and Maya and has

More information

C# Fundamentals. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh

C# Fundamentals. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh C# Fundamentals Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2018/19 H-W. Loidl (Heriot-Watt Univ) F20SC/F21SC 2018/19

More information

CE318/CE818: High-level Games Development

CE318/CE818: High-level Games Development CE318/CE818: High-level Games Development Lecture 1: Introduction. C# & Unity3D Basics Diego Perez Liebana dperez@essex.ac.uk Office 3A.527 2017/18 Outline 1 Course Overview 2 Introduction to C# 3 Scripting

More information

User Manual. Version 2.0

User Manual. Version 2.0 User Manual Version 2.0 Table of Contents Introduction Quick Start Inspector Explained FAQ Documentation Introduction Map ity allows you to use any real world locations by providing access to OpenStreetMap

More information

Tutorial: Getting Started - Flow Graph scripting

Tutorial: Getting Started - Flow Graph scripting Tutorial: Getting Started - Flow Graph scripting Overview This tutorial introduces the concept of game play scripting using the Flow Graph editor. You will set up Flow Graph scripts that do five things:

More information

Runtime Worlds and Active Grids. By Kyle Gillen (Last Updated 11/4/15)

Runtime Worlds and Active Grids. By Kyle Gillen (Last Updated 11/4/15) Runtime Worlds and Active Grids By Kyle Gillen (Last Updated 11/4/15) Runtime vs Inspector Components Inspector Worlds and Active Grids are fully realized as components on active game objects in your scene,

More information

Chapter 1: Object-Oriented Programming Using C++

Chapter 1: Object-Oriented Programming Using C++ Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms

More information

IMPETUS-VR Documentation

IMPETUS-VR Documentation 2017 IMPETUS-VR Documentation CELLULAR MECANICS LABORATORY UNIVERSITY OF CONNECTICUT Table of Contents Introduction... 2 Controls... 2 Toggle Menu... 2 Move, Rotate, and Scale Simulate... 2 Menu Select

More information

Basic Principles of OO. Example: Ice/Water Dispenser. Systems Thinking. Interfaces: Describing Behavior. People's Roles wrt Systems

Basic Principles of OO. Example: Ice/Water Dispenser. Systems Thinking. Interfaces: Describing Behavior. People's Roles wrt Systems Basics of OO Programming with Java/C# Basic Principles of OO Abstraction Encapsulation Modularity Breaking up something into smaller, more manageable pieces Hierarchy Refining through levels of abstraction

More information

HOW TO USE THE INSTANCING LAB IN BRYCE 7.1 PRO/ A complete tutorial

HOW TO USE THE INSTANCING LAB IN BRYCE 7.1 PRO/ A complete tutorial http://www.daz3d.com/forums/viewthread/3381/ Rashad Carter, Posted: 03 July 2012 01:43 PM HOW TO USE THE INSTANCING LAB IN BRYCE 7.1 PRO/ A complete tutorial The Instancing Lab in Bryce 7.1 Pro is a mysterious

More information

Coin Pusher Pro Asset - README

Coin Pusher Pro Asset - README Coin Pusher Pro Asset - README Created by DreamTapp Studios LLC This README document includes helpful hints, tutorials, and a description of how the scripts work together. If you have any questions or

More information

Visual Novel Engine for Unity By Michael Long (Foolish Mortals),

Visual Novel Engine for Unity By Michael Long (Foolish Mortals), Visual Novel Engine for Unity By Michael Long (Foolish Mortals), michael@foolish-mortals.net http://u3d.as/nld Summary A light weight code base suitable for visual novels and simple cut scenes. Useful

More information

Actions and Graphs in Blender - Week 8

Actions and Graphs in Blender - Week 8 Actions and Graphs in Blender - Week 8 Sculpt Tool Sculpting tools in Blender are very easy to use and they will help you create interesting effects and model characters when working with animation and

More information

OOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.

OOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity. OOPS Viva Questions 1. What is OOPS? OOPS is abbreviated as Object Oriented Programming system in which programs are considered as a collection of objects. Each object is nothing but an instance of a class.

More information

Progress Bar Pack. Manual

Progress Bar Pack. Manual Progress Bar Pack Manual 1 Overview The Progress Bar Pack contains a selection of textures, shaders and scripts for creating different ways to visualize linear data, such as health, level load progress,

More information