Merging Physical and Virtual:

Size: px
Start display at page:

Download "Merging Physical and Virtual:"

Transcription

1 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 30 Merging Physical and Virtual - 1

2 Contents 1. Introduction Unity Server Object to Rotate Trigger Zone Integrating the Scene Processing Arduino Interface (via Serial Port): Unity Interface (via TCP/IP): Arduino Software Hardware Integration Conclusions Merging Physical and Virtual - 2

3 1. Introduction This workshop is about creating mixed-reality interactive objects (games, art installations, gadgets, unique interfaces) by combining 3D gaming (Unity) and physical computing (Arduino). This workshop assumes basic understanding of Unity (interface and scripting), Processing, Arduino and programming or scripting in general. However, some basic instructions will be provided about the platforms. The workshop has been created and tested with the following versions of the software: Unity version o Unity can be downloaded from o C# will be used for scripting. Processing version and o Arduino library for Processing is also required. It can be downloaded from note that v2.x and v1.5.1 have different packages. Arduino version 1.0 o Software: o Hardware: o Arduino UNO is used. Unity and Arduino will be connected via Processing. Unity and Processing will talk to each other via TCP/IP and Processing and Arduino will talk to each other via firmata. TCP/IP Firmata Figure 1: Connections from Unity to Arduino Since we are using TCP/IP, Processing and Unity do not need to be in the same computer. They talk through internet. We will create a simple example with simple scripts, which means the system we will create will work. However, it will not be the most efficient or robust system. The system will work such that, we will use a potentiometer to rotate an object Unity and we will use a trigger in Unity to switch on and off the built in LED in Arduino UNO. The codes provided with this document will have multiple lines of debug code (println() in Processing and Debug.Log() in Unity) that can be enabled to debug and understand the signals that is being transmitted. Merging Physical and Virtual - 3

4 2. Unity On the Unity side, for this example, we will create the following items: A server! An object to rotate. A way to create a trigger in the game. The server will be a script that will be attached to an object. Make sure that the object is passed through all the scenes. The Main Camera or the character controller can be used. For the rotation, any object is sufficient. However, for this workshop, I will use a light source with a cookie (world map) attached to a textured (world map) sphere. For the trigger, I will use OnTriggerEnter and OnTriggerExit functions with a Box Collider. Before starting to write scripts, we need to create our project and a scene. Go to File -> New Project On the Project Wizard window, choose the location of the project and from the packages click on Character Controller.unityPackage. Once the project is ready, press CTRL+S or APPLE+S to save your scene 1. Figure 2: Creating a new project in Unity 1 A consistent folder structure is always recommended. For example: create a folder named Scenes and save the scene inside that folder. Merging Physical and Virtual - 4

5 Create at least a plane to have something where our character will stand. If you are not familiar with Unity, you should know that you can create primitive geometric objects inside Unity. To create a plane: GameObject -> Create Other -> Plane Figure 3: Creating an object in Unity The plane will be our extremely simple level. Now, we will create a First Person controller by using a prefab 2. Drag and drop First Person Controller from Project Window to Hierarchy window. Put it somewhere on the plane. On the top of the Inspector Window, change the tag of the object to Player. 2 Prefabs are template objects that are packaged and ready to use. Merging Physical and Virtual - 5

6 Figure 4: Unity Project Window When you have time, feel free to improve your scene in any way you like. Below image shows the scene from the First Person view. Figure 5: A fancy object to rotate Merging Physical and Virtual - 6

7 2.1. Server The server will be the recipient entity of the TCP/IP connection. For the server, we will use a C# 3 script and we will not go into the details of the script for this workshop. However, we will look at how it works in order to expand it to support more features. Create a C# script labeled TCPHost 4. External Libraries We need libraries additional to UnityEngine for the server. using UnityEngine; using System.Collections; using System; using System.Text; using System.Net; using System.Net.Sockets; using System.IO; Variables The first set of variables is required for the server and the second set is required for the game mechanics. The incoming_client object of class TcpClient will be the Processing that connects to the server, the netstream object of class NetworkStream will be the stream or the connection between the server and the server object of class TcpListener will be the server. As for the game, we need a game object, which we will rotate. This object is referenced as targetobjcet. We need a Boolean variable to control the LED at pin 13 on Arduino. And we need another Boolean for a simple improvement of the system, so that we only send data when the LED13 value changes. //be sure that the port is open and available public int portno = 8090; private TcpClient incoming_client; private NetworkStream netstream; private TcpListener server; private bool waiting; // Add variables as required // I will use a gameobject to rotate with the potentiometer public GameObject targetobjcet; // variable for LED13 in Arduino public bool LED13 = false; public bool IsLED13Changed = false; 3 In the case, where your C# script needs to reach a variable from a JavaScript/UnityScript script and vice versa, check Unity s documentation about the order in which codes are compiled: 4 C# scripts name must have the same name as the class name. Merging Physical and Virtual - 7

8 Start Function In the Start(), we initialize and start the server. For more details of the TcpListener object see the reference: // Use this for initialization void Start () waiting = false; server = new TcpListener(IPAddress.Any, portno); server.start(); Parse (string Parse) Function The Parse Function, processes the String received from client (Processing) and does the necessary actions. Here I have used a simple handshaking signal: Blank space is defined as the end of a message. Thus, the received data package is split from the blank spaces. The server uses the first part and disregards the rest. void Parse2(string toparse) //Debug.Log(toParse); //you can use multiple commands and use string.split() to split them //Using and an end signal is always good, here we are using blank space (" ") string[] values = toparse.split(' '); //Debug.Log("first is " + values[0]); //access the script attached to target object targetobjcet.getcomponent<rotator>().rotationangle = float.parse(values[0]); Update Function The Update is the heart of the server: It checks whether the server is busy or not. If it is not, the code looks for the next client and reads the data if it is available. After a successful read attempt, LED13 activation data is sent to the Processing patch. It is important to note that the server employs error caching in order to sustain functioning after any corrupted data or connection problems. The data s first suffixed with the end signal (single blank space) and then the new String is converted into an array of bytes. The array sent to the Processing patch through the netstream object. Merging Physical and Virtual - 8

9 void Update () string s; string[] values; if (server.pending()) incoming_client = server.accepttcpclient(); netstream = incoming_client.getstream(); waiting = true; while (waiting && netstream.dataavailable) try int numread = 0; byte[] tmpbuf = new byte[1024]; numread = netstream.read(tmpbuf, 0, tmpbuf.length); s = Encoding.ASCII.GetString(tmpbuf, 0, numread); s = s.replace("\n",""); values = s.split(';'); //print ("values"+values.tostring()); //for debugging if (values.length > 1) for (int i = 0; i < (values.length-1); i++) Parse2(values[i]); else Parse2(values[0]); //sending data //Test //Byte[] data = System.Text.Encoding.ASCII.GetBytes("HelloThere"); //netstream.write(data, 0, data.length); //Send only and only if the state of LED13 has changed if(led13!= IsLED13Changed) //send //again using space as end character! string TempSend = LED13.ToString(); TempSend += " "; //Debug.Log(TempSend); Byte[] data = System.Text.Encoding.ASCII.GetBytes(TempSend); netstream.write(data, 0, data.length); IsLED13Changed = LED13; //Called when netstream fails to read from the stream. catch (IOException e) waiting = false; netstream.close(); incoming_client.close(); //Called when netstream has been closed already. catch (ObjectDisposedException e) waiting = false; incoming_client.close(); Merging Physical and Virtual - 9

10 2.2. Object to Rotate Here we need an object. We will create a cube similar to creating a plane. To create a Cube go to: GameObject -> Create Other -> Cube Rename the Cube to something more specific and recognizable. Place the object somewhere. We need to attach a script to the object. The script will be used to link the data that the server received to the object. Let us create C# script and call the script Rotator : using UnityEngine; using System.Collections; public class Rotator : MonoBehaviour public float RotationAngle = 0; private Vector3 V3 = Vector3.zero; private float Conversion; public float ArduinoInputMax = 1023; //Arduino uses 10bits // Use this for initialization void Start () Conversion = 360/ArduinoInputMax; //scale the data read from Arduino to degrees // Update is called once per frame void Update () //rotate the object around Y-axis //with unit time (degree/second) V3.y = RotationAngle*Time.deltaTime*Conversion; //Debug.Log("v3y = "+V3.y.ToString()); transform.rotate(v3); The main idea of the script is to map the Arduino input to the rotation of the object. In Unity, the rotation of an object can be accessed from transform.rotate 5. The rotation is a vector with three elements that maps to the X, Y and Z-Axes. We will only rotate the Y-Axis. The data that is received from Arduino ranges from 0 to 1023 since the analog-to-digital converters have 10-bits. We need to convert this range to degrees before applying. In the Start function this conversion is done. In the Update, the script does not only scale the value with the degree-conversion rate but it also scales the value with Time.deltaTime. Scaling with the unit time-change allows us to have numerically correct change that is related with the real time rather than the number of frames. Thus, once scaled with Time.deltaTime, our object rotates X degrees per second rather than X degree per frame. 5 Merging Physical and Virtual - 10

11 2.3. Trigger Zone Creating a trigger zone in Unity can be simple. The easiest way to do is to create a Cube following: GameObject -> Create Other -> Cube Rename the object to something definitive. Scale the object so that it is easy to trigger. In the Inspector Window, find Box Collider and click on Is Trigger. This turns the object to a trigger zone such that objects that collide with the trigger zone can go through without reflection; however, the game engine sends a signal when the collision happens. Figure 6: Box Collider window in the Inspector Now create a script and label it TriggerActivation. When another game object enters or exits the trigger zone. Our script will look at that object s tag. If it is Player, it will make the Boolean variable, IsInside true when the player enters and false when the players exits. The Boolean will be sent to the TCPHost script via the variable TCPSendReference. Merging Physical and Virtual - 11

12 using UnityEngine; using System.Collections; public class TriggerActivation : MonoBehaviour public GameObject TCPSendReference; private bool IsInside = false; void OnTriggerEnter(Collider other) if(other.comparetag("player")) //Debug.Log("enter"); IsInside = true; TCPSendReference.GetComponent<TCPHost>().LED13 = IsInside; void OnTriggerExit(Collider other) if(other.comparetag("player")) //Debug.Log("exit"); IsInside = false; TCPSendReference.GetComponent<TCPHost>().LED13 = IsInside; Merging Physical and Virtual - 12

13 2.4. Integrating the Scene Before hitting Play, we need to attach the scripts and link the game objects to the reference variables. 1. Server First, attach the TCPHost script to the First Person Controller object by dragging and dropping it from Project View on to the object in Hierarchy View. In the Inspector View, set variable as follows: Figure 7: Setting up TCPHost script Here, the name of the object in my scene that I will rotate is World. Thus for the Target Object, choose the object that you created. 2. Rotating Object Attach the script, Rotator, to the object you have created. You do not need to change any of the variables. 3. Trigger Zone Attach the script, ActivationTrigger, to the trigger zone object that you have created. For the TCPSendReference variable drag and drop First Person Controller from Hierarchy View. Now, our scene should be ready and we will move on to Processing. Do not forget to save your scene! Merging Physical and Virtual - 13

14 3. Processing The Processing sketch is relatively simple it has two important parts: Arduino interface and Unity interface. We will read from the Analog 0 pin of the board, while writing to the Digital 13 pin of the board. On the Unity side, we will connect to a defined IP address through a defined port. Through this connection, we will send the data that is read from Analog 0 pin and the received data will carry the value that will control LED13 on Arduino UNO. Here is some reference information: Arduino Library 6 for Processing: Client object from Net Library for Processing: Here is some select information from the references: Arduino Library Arduino.list(): returns a list of the available serial devices. If your Arduino board is connected to the computer when you call this function, its device will be in the list. Arduino(parent, name, rate): create an Arduino object. Parent should be "this" (without the quotes); name is the name of the serial device (i.e. one of the names returned by Arduino.list()); rate is the speed of the connection ( for the v2 version of the firmware, for v1). Note that in the v2 library, the rate parameter is optional. pinmode(pin, mode): set a digital pin to input or output mode (Arduino.INPUT or Arduino.OUTPUT). digitalwrite(pin, value): writes Arduino.LOW or Arduino.HIGH to a digital pin. analogread(pin): returns the value of an analog input (from 0 to 1023). Client Object Methods available() : Returns the number of bytes in the buffer waiting to be read readstring(): Returns the buffer as a String write(): Writes bytes, chars, ints, bytes[], Strings 6 To install a library copy the extracted ZIP package, "arduino" folder, into the "libraries" sub-folder of your Processing Sketchbook. (You can find the location of your Sketchbook by opening the Processing Preferences. If you haven't made a "libraries" sub-folder, create one.) Merging Physical and Virtual - 14

15 3.1. Arduino Interface (via Serial Port): For the Arduino interface, we need to import the Arduino library and create an object of class Arduino. In the setup part, we need to configure the USB port and set the digital pin 13 accordingly. In the draw part, we will read the analog pin to variable dataout and set pin 13 according to the variable datain. //Libraries import cc.arduino.*; //this imports arduino as a class in processing import processing.serial.*; //processing will talk to arduino through serial port //Custom classes Arduino arduino; //let's have an object named arduino from the class, Arduino //Default classes int dataout; //from Arduino to Unity String datain = "False"; //from Unity to Arduino, initialized to False void setup() // Setup Arduino connection println(arduino.list()); //list the Arduinos connected to the computer arduino = new Arduino(this, Arduino.list()[0], 57600); //choose the first for Arduino arduino.pinmode(13, Arduino.OUTPUT); //set Arduino pin 13 as ouput void draw() if(datain.equals("true")) arduino.digitalwrite(13, Arduino.HIGH); if(datain.equals("false")) arduino.digitalwrite(13, Arduino.LOW); dataout = arduino.analogread(0); //read sensor, potentiometer data from analogpin 0 Merging Physical and Virtual - 15

16 3.2. Unity Interface (via TCP/IP): The Unity interface will use the processing.net library for the necessary objects. Unity will be the server and Processing will act as a client to the server. Thus, before running Processing, we need to run Unity first. We need to create an object of Client class. In the setup, we will map this client to a server with IP 7 and port 8 number. The connection is followed by a test message that can be tracked from the other hand. In draw, we read the data from the buffer, process it and pass it to the variable datain and we pass the data that we got from Arduino to Unity via the variable dataout. //Libraries import processing.net.*; //TCP/IP libraries //Custom object types Client myclient; //and an object named myclient //Default object types int dataout; //from Arduino to Unity String datain = "False"; //from Unity to Arduino, initialized to False String tempdatain; //temporary variable to parse received data void setup() // Setup Unity connection // Local host at port // Change IP if Unity is on a remote machine myclient = new Client(this, " ", 8090); myclient.write("connected to Unity!"); void draw() //See if there is something on the buffer if (myclient.available() > 0) //read it //println(myclient.readstring()); tempdatain = myclient.readstring(); //LED13 on/off String[] list = split(tempdatain, ' '); datain = list[0]; myclient.write(str(dataout)+" "); //send it to Unity is the local host (same computer), if you need to reach another computer use that computer s IP. 8 Make sure that the port is open. Merging Physical and Virtual - 16

17 3.3. Combined patch //Libraries import processing.net.*; //TCP/IP libraries import processing.serial.*; //processing will talk to arduino through serial port import cc.arduino.*; //this imports arduino as a class in processing //Custom object types Arduino arduino; //let's have an object named arduino from the class, Arduino Client myclient; //and an object named myclient //Default object types int dataout; //from Arduino to Unity String datain = "False"; //from Unity to Arduino, initialized to False String tempdatain; //temporary variable to parse received data void setup() // Setup Unity connection // Local host at port // Change IP if Unity is on a remote machine myclient = new Client(this, " ", 8090); myclient.write("connected to Unity!"); // Setup Arduino connection println(arduino.list()); //list the Arduinos connected to the computer arduino = new Arduino(this, Arduino.list()[0], 57600); //choose the first Arduino arduino.pinmode(13, Arduino.OUTPUT); //set Arduino pin 13 as ouput void draw() //See if there is something on the buffer if (myclient.available() > 0) //read it //println(myclient.readstring()); tempdatain = myclient.readstring(); //LED13 on/off String[] list = split(tempdatain, ' '); datain = list[0]; //If it is 1 turn on LED13 //println(datain+"lalal"); if(datain.equals("true")) //println("true here"); arduino.digitalwrite(13, Arduino.HIGH); if(datain.equals("false")) //println("false here"); arduino.digitalwrite(13, Arduino.LOW); dataout = arduino.analogread(0); //read sensor, potentiometer data from analogpin 0 //println(dataout); Merging Physical and Virtual - 17 myclient.write(str(dataout)+" "); //send it to Unity

18 4. Arduino The Arduino part is relatively easy: 4.1. Software We will only load Standard Firmata. Firmata allows us to talk to the Processing in real time through the serial port. See the image below to load Firmata. File -> Examples -> Firmata -> Standard Firmata Figure 8: Loading Standard Firmata Once StandarFirmata patch is loaded. Click on to upload the programming. Merging Physical and Virtual - 18

19 4.2. Hardware We will connect a potentiometer 9 to the board in order to create a variable input. Regular potentiometers have the three nodes: 1. Power reference: Connect this to 3V or 5V output of the board. 2. Ground reference: Connect this to the GDD output of the board. 3. Output reference: Connect this to the analog input (A0) of the board. Figure 9: Connecting the potentiometer 9 Potentiometer is a variable resistor. For this workshop any element that provides an analog input to Arduino can be used. Merging Physical and Virtual - 19

20 4. Integration Upload the StandardFirmata to Arduino Start the Unity scene Run the Processing patch Once the patch is up and running, return to Unity window. Unity Game Window works only when it is in focus. If another software (Arduino or Processing) is on the foreground, the game (thus the server) is paused. If the Processing patch is started before Unity, it will give errors; however, this can be improved. For troubleshooting, follow these steps (in any order): Make sure there is no mistake between the manual and your implementation. Make sure the port is open and the local host is accessible. Make sure that correct port is chosen for Arduino. Use the debug lines to see if the signals are correct and are received correctly. Merging Physical and Virtual - 20

21 5. Conclusions The documentation and the final Unity project and Processing can be found from the following link: Use this tool to create unique experiences. Merging Physical and Virtual - 21

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

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

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

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

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

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

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

Lecture 7. Processing Development Environment (or PDE)

Lecture 7. Processing Development Environment (or PDE) Lecture 7 Processing Development Environment (or PDE) Processing Class Overview What is Processing? Installation and Intro. Serial Comm. from Arduino to Processing Drawing a dot & controlling position

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

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 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

Mechanic Animations. Mecanim is Unity's animation state machine system.

Mechanic Animations. Mecanim is Unity's animation state machine system. Mechanic Animations Mecanim is Unity's animation state machine system. It essentially allows you to create 'states' that play animations and define transition logic. Create new project Animation demo.

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

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

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

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

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

Physical Programming with Arduino

Physical Programming with Arduino CTA - 2014 Physical Programming with Arduino Some sample projects Arduino Uno - Arduino Leonardo look-alike The Board Arduino Uno and its cheap cousin from Borderless Electronics Mini - Breadboard typical

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

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

SERIAL COMMUNICATION. _creates a data stream by sending one bit at a me _occurs sequen ally H...E...L...L...O

SERIAL COMMUNICATION. _creates a data stream by sending one bit at a me _occurs sequen ally H...E...L...L...O SERIAL COMMUNICATION Bits, Bytes, Data Rates and Protocols ASCI interpreta on Using terminal to view serial Data Serial Out from Arduino Serial In to Processing SERIAL COMMUNICATION _creates a data stream

More information

PROTOTYPE 1: APPLE PICKER FOR UNITY 5.X

PROTOTYPE 1: APPLE PICKER FOR UNITY 5.X CHAPTER 28 PROTOTYPE 1: APPLE PICKER FOR UNITY 5.X In the pages below, I've replaced the sections of Chapter 28 that used GUIText with new pages that take advantage of the UGUI (Unity Graphical User Interface)

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

Creating and Triggering Animations

Creating and Triggering Animations Creating and Triggering Animations 1. Download the zip file containing BraidGraphics and unzip. 2. Create a new Unity project names TestAnimation and set the 2D option. 3. Create the following folders

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

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

Workshop BOND UNIVERSITY Bachelor of Interactive Multimedia and Design Beginner Game Dev Character Control Building a character animation controller.

Workshop BOND UNIVERSITY Bachelor of Interactive Multimedia and Design Beginner Game Dev Character Control Building a character animation controller. Workshop BOND UNIVERSITY Bachelor of Interactive Multimedia and Design Beginner Game Dev Character Control Building a character animation controller. FACULTY OF SOCIETY AND DESIGN Building a character

More information

Cláudia Ribeiro PHYSICS

Cláudia Ribeiro PHYSICS Cláudia Ribeiro PHYSICS Cláudia Ribeiro Goals: - Colliders - Rigidbodies - AddForce and AddTorque Cláudia Ribeiro AVT 2012 Colliders Colliders components define the shape of an object for the purpose of

More information

Contents Interior Mapping & Transistions... 1

Contents Interior Mapping & Transistions... 1 Nightmare Island Going Inside Interior Mapping & Transitions Contents Interior Mapping & Transistions... 1 New Scene Setup Editor... 3 Snap Settings... 6 Empty Grouping Objects... 6 Corridors Laying out

More information

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

C# in Unity 101. Objects perform operations when receiving a request/message from a client 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

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

COMS W4172 : 3D User Interfaces Spring 2017 Prof. Steven Feiner Date out: January 26, 2017 Date due: January 31, 2017

COMS W4172 : 3D User Interfaces Spring 2017 Prof. Steven Feiner Date out: January 26, 2017 Date due: January 31, 2017 COMS W4172 : 3D User Interfaces Spring 2017 Prof. Steven Feiner Date out: January 26, 2017 Date due: January 31, 2017 Assignment 0.5: Installing and Testing Your Android or ios Development Environment

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

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

Bonus Chapter 10: Working with External Resource Files and Devices

Bonus Chapter 10: Working with External Resource Files and Devices 1 Bonus Chapter 10: Working with External Resource Files and Devices In this chapter, we will cover the following topics: Loading external resource files using Unity default resources Loading external

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

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

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

C# for UNITY3d: Sem 1 a.k.a. The Gospel of Mark Part 1

C# for UNITY3d: Sem 1 a.k.a. The Gospel of Mark Part 1 C# for UNITY3d: Sem 1 a.k.a. The Gospel of Mark Part 1 Special Thanks to Mark Hoey, whose lectures this booklet is based on Move and Rotate an Object (using Transform.Translate & Transform.Rotate)...1

More information

IME-100 Interdisciplinary Design and Manufacturing

IME-100 Interdisciplinary Design and Manufacturing IME-100 Interdisciplinary Design and Manufacturing Introduction Arduino and Programming Topics: 1. Introduction to Microprocessors/Microcontrollers 2. Introduction to Arduino 3. Arduino Programming Basics

More information

TUTORIAL: MoveYourRobot with Unity3D You created your own robot with servo- motors and you are wondering how to control it.

TUTORIAL: MoveYourRobot with Unity3D You created your own robot with servo- motors and you are wondering how to control it. TUTORIAL: MoveYourRobot with Unity3D You created your own robot with servo- motors and you are wondering how to control it. This package provide environment and scripts to be easily able to control your

More information

Lesson 5: LDR Control

Lesson 5: LDR Control Lesson 5: LDR Control Introduction: Now you re familiar with the DIY Gamer and editing in an Arduino sketch. its time to write one from scratch. In this session you will write that talks to the Light Dependent

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

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

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

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

Arduino 07 ARDUINO WORKSHOP 2007

Arduino 07 ARDUINO WORKSHOP 2007 ARDUINO WORKSHOP 2007 PRESENTATION WHO ARE WE? Markus Appelbäck Interaction Design program at Malmö University Mobile networks and services Mecatronics lab at K3, Malmö University Developer, Arduino community

More information

Unity Game Development

Unity Game Development Unity Game Development 1. Introduction to Unity Getting to Know the Unity Editor The Project Dialog The Unity Interface The Project View The Hierarchy View The Inspector View The Scene View The Game View

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

OculusUnityMatlab Documentation

OculusUnityMatlab Documentation OculusUnityMatlab Documentation Release 0.0.1 Luca Donini December 31, 2016 Contents 1 Another Simple Header 1 1.1 Table of contents:............................................. 1 1.1.1 Installation...........................................

More information

4Serial SIK BINDER //77

4Serial SIK BINDER //77 4Serial SIK BINDER //77 SIK BINDER //78 Serial Communication Serial is used to communicate between your computer and the RedBoard as well as between RedBoard boards and other devices. Serial uses a serial

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

Objectives: Learn how to input and output analogue values Be able to see what the Arduino is thinking by sending numbers to the screen

Objectives: Learn how to input and output analogue values Be able to see what the Arduino is thinking by sending numbers to the screen Objectives: Learn how to input and output analogue values Be able to see what the Arduino is thinking by sending numbers to the screen By the end of this session: You will know how to write a program to

More information

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens) MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens) 1. INTRODUCTION TO Mixed Reality (AR & VR) What is Virtual Reality (VR) What is Augmented reality(ar) What is Mixed Reality Modern VR/AR experiences

More information

CS206: Evolutionary Robotics

CS206: Evolutionary Robotics CS206: Evolutionary Robotics Programming Assignment 8 of 10 Description: In this week s assignment you will add sensors to your robot. You will add one binary touch sensor in each of the four lower legs:

More information

Chart And Graph. Features. Features. Quick Start Folders of interest Bar Chart Pie Chart Graph Chart Legend

Chart And Graph. Features. Features. Quick Start Folders of interest Bar Chart Pie Chart Graph Chart Legend Chart And Graph Features Quick Start Folders of interest Bar Chart Pie Chart Graph Chart Legend Overview Bar Chart Canvas World Space Category settings Pie Chart canvas World Space Pie Category Graph Chart

More information

How to add new 3D Models to Machines Simulator 3 & Machines Simulator VR

How to add new 3D Models to Machines Simulator 3 & Machines Simulator VR How to add new 3D Models to Machines Simulator 3 & Machines Simulator VR In order to add you own 3D models to Machines Simulator 3 and MS VR software, you must follow the following steps: Download the

More information

ScaleForm/Unity A Simpler Tutorial by Carl Looper. July 2014

ScaleForm/Unity A Simpler Tutorial by Carl Looper. July 2014 ScaleForm/Unity A Simpler Tutorial by Carl Looper July 2014 Introduction The demo that ships with ScaleForm is way too complicated. While it certainly shows off some of the cool things that ScaleForm can

More information

Planet Saturn and its Moons Asset V0.2. Documentation

Planet Saturn and its Moons Asset V0.2. Documentation Planet Saturn and its Moons Asset V0.2 Documentation Charles Pérois - 2015 Introduction 2 Table des matières 1. Introduction...3 2. Release Notes...4 3. How to Use...5 1. Set the scene...5 1. Set a scene

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

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

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

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

Introduction This TP requires Windows and UNITY 5.

Introduction This TP requires Windows and UNITY 5. TP - Desktop VR: Head tracking and asymmetric frustum with OpenCVSharp and Unity This tutorial has been printed from http://henriquedebarba.com/index.php/0/0/0//, use that website if possible as copy-pasting

More information

Connecting Arduino to Processing a

Connecting Arduino to Processing a Connecting Arduino to Processing a learn.sparkfun.com tutorial Available online at: http://sfe.io/t69 Contents Introduction From Arduino......to Processing From Processing......to Arduino Shaking Hands

More information

THE LAUNCHER. Patcher, updater, launcher for Unity. Documentation file. - assetstore.unity.com/publishers/19358

THE LAUNCHER. Patcher, updater, launcher for Unity. Documentation file. - assetstore.unity.com/publishers/19358 THE LAUNCHER Patcher, updater, launcher for Unity. Documentation file Index: 1.What does the Launcher do? 2.Workflow 3.How to upload a build? 4.How to configure the launcher client? 1.What does the Launcher

More information

STEP 1: Download Unity

STEP 1: Download Unity STEP 1: Download Unity In order to download the Unity Editor, you need to create an account. There are three levels of Unity membership. For hobbyists, artists, and educators, The free version is satisfactory.

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

CSC Java Programming, Fall Java Data Types and Control Constructs

CSC Java Programming, Fall Java Data Types and Control Constructs CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference

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

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

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens) MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens) 1. INTRODUCTION TO Mixed Reality (AR & VR) What is Virtual Reality (VR) What is Augmented reality(ar) What is Mixed Reality Modern VR/AR experiences

More information

MaxstAR SDK 2.0 for Unity3D Manual. Ver 1.2

MaxstAR SDK 2.0 for Unity3D Manual. Ver 1.2 MaxstAR SDK 2.0 for Unity3D Manual Ver 1.2 Written as of 14 May 2015 Contents 1. Requirement and Restriction 1 2. Creating Trackable Data 2 (1) Connecting Website and Registering An Account 2 (2) Creating,

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

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

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module Rover Wifi Module 1 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and documentation. There is a 90 day warranty for the Sten-Bot kit against component

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

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

This allows you to choose convex or mesh colliders for you assets. Convex Collider true = Convex Collider. Convex Collider False = Mesh Collider.

This allows you to choose convex or mesh colliders for you assets. Convex Collider true = Convex Collider. Convex Collider False = Mesh Collider. AGF Asset Packager v. 0.4 (c) Axis Game Factory LLC Last Updated: 6/04/2014, By Matt McDonald. Compiled with: Unity 4.3.4. Download This tool may not work with Unity 4.5.0f6 ADDED: Convex Collider Toggle:

More information

Lesson 4: Animation. Goals

Lesson 4: Animation. Goals Introduction: In this session you are going to use custom built tools in Arduino to help you turn images or animation into code that automatically uploads to your DIY Gamer. It is a fun and easy way to

More information

Vuforia quick install guide. Android devices and Unity 3D models edition

Vuforia quick install guide. Android devices and Unity 3D models edition Vuforia quick install guide Android devices and Unity 3D models edition Welcome to the new age of product design and customer experience!! Using augmented reality you can create a whole new experience.

More information

Creating a 3D Characters Movement

Creating a 3D Characters Movement Creating a 3D Characters Movement Getting Characters and Animations Introduction to Mixamo Before we can start to work with a 3D characters we have to get them first. A great place to get 3D characters

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

LECTURE 4. Announcements

LECTURE 4. Announcements LECTURE 4 Announcements Retries Email your grader email your grader email your grader email your grader email your grader email your grader email your grader email your grader email your grader email your

More information

Chart And Graph. Supported Platforms:

Chart And Graph. Supported Platforms: Chart And Graph Supported Platforms: Quick Start Folders of interest Running the Demo scene: Notes for oculus Bar Chart Stack Bar Chart Pie Chart Graph Chart Streaming Graph Chart Graph Chart Curves: Bubble

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

This is the Arduino Uno: This is the Arduino motor shield: Digital pins (0-13) Ground Rail

This is the Arduino Uno: This is the Arduino motor shield: Digital pins (0-13) Ground Rail Reacting to Sensors In this tutorial we will be going over how to program the Arduino to react to sensors. By the end of this workshop you will have an understanding of how to use sensors with the Arduino

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

FUNCTIONS USED IN CODING pinmode()

FUNCTIONS USED IN CODING pinmode() FUNCTIONS USED IN CODING pinmode() Configures the specified pin to behave either as an input or an output. See the description of digital pins for details on the functionality of the pins. As of Arduino

More information

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module Rover Wifi Module 1 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and documentation. There is a 90 day warranty for the Sten-Bot kit against component

More information

INTRODUCTION // MODELING PROCESS COMPARISON

INTRODUCTION // MODELING PROCESS COMPARISON INTRODUCTION // MODELING PROCESS COMPARISON INTRODUCTION // MODELING PROCESS IN RHINO ROTATION AXIS PROFILE CRV - TYPE REVOLVE - HIT - PICK PROFILE CRV - HIT - PICK ROTATION AXIS - HIT - TYPE 0 AS START

More information

Unity and MySQL. Versions: Unity 3.0.0f5; MySQL Author: Jonathan Wood. Alias: Zumwalt. Date: 10/8/2010. Updated: 10/12/2010 to include JS code

Unity and MySQL. Versions: Unity 3.0.0f5; MySQL Author: Jonathan Wood. Alias: Zumwalt. Date: 10/8/2010. Updated: 10/12/2010 to include JS code Versions: Unity 3.0.0f5; MySQL 5.2.28 Author: Jonathan Wood Alias: Zumwalt Date: 10/8/2010 Updated: 10/12/2010 to include JS code Document Version 1.0.1 Unity and MySQL Table of Contents Unity and MySQL...

More information

Fall Harris & Harris

Fall Harris & Harris E11: Autonomous Vehicles Fall 2011 Harris & Harris PS 1: Welcome to Arduino This is the first of five programming problem sets. In this assignment you will learn to program the Arduino board that you recently

More information

Class Unity scripts. CS / DES Creative Coding. Computer Science

Class Unity scripts. CS / DES Creative Coding. Computer Science Class Unity scripts Rotate cube script Counter + collision script Sound script Materials script / mouse button input Add Force script Key and Button input script Particle script / button input Instantiate

More information

CMSC 425 Programming Assignment 1, Part 2 Implementation Notes

CMSC 425 Programming Assignment 1, Part 2 Implementation Notes CMSC 425 Programming Assignment 1, Part 2 Implementation Notes Disclaimer We provide these notes to help in the design of your project. There is no requirement that you use our settings, and in fact your

More information

Connecting Arduino to Processing

Connecting Arduino to Processing Connecting Arduino to Processing Introduction to Processing So, you ve blinked some LEDs with Arduino, and maybe you ve even drawn some pretty pictures with Processing - what s next? At this point you

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

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

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

Better UI Makes ugui Better!

Better UI Makes ugui Better! Better UI Makes ugui Better! 2016 Thera Bytes UG Developed by Salomon Zwecker TABLE OF CONTENTS Better UI... 1 Better UI Elements... 4 1 Workflow: Make Better... 4 2 UI and Layout Elements Overview...

More information