Unity3D – Game Engine – Script Lifecycle Flowchart
My website: http://www.lucedigitale.com
Ref: http://docs.unity3d.com/Manual/ExecutionOrder.html
Unity 3D – CSharp – Event Functions – Inizialization – Update – GUI – Mouse – Physics
To create videogames Unity3D give us special functions to manage special operations as variable inizialization, updating, physic management.
using UnityEngine; using System.Collections; public class MyScript : MonoBehaviour { // Initialization Events // ****************************************** void Awake () { // first inizialization Debug.Log("Awake called."); } void Start () { // second inizialization Debug.Log("Start called."); } // Regular Update Events // ****************************************** void FixedUpdate () { // frame indipendent update // use this function to drive physic Debug.Log("FixedUpdate time :" + Time.deltaTime); } void Update () { // update at every frame Debug.Log("Update time :" + Time.deltaTime); } void LateUpdate () { // update at the end of the frame rendering Debug.Log("Late Update"); } // GUI Events // ****************************************** void OnGUI() { // draw here labels, buttons and other Graphic User Interface elements GUI.Label(labelRect, "Game Over"); } // Mouse Events // ****************************************** void OnMouseOver() { // do something if mouse is over } void OnMouseDown() { // do something if mouse is down } // Physics Events // ****************************************** void OnCollisionEnter(otherObj: Collision) { // do stuff if there is a collision } void OnTriggerEnter(Collider other) { // do stuff if there is an object that overlap the trigger } } // END MyScript
My website: http://www.lucedigitale.com
Ref: http://docs.unity3d.com/Manual/EventFunctions.html
Unity3D – C# – Basic Syntax
First you need call basic namespace and nest all the code inside a class with the name of your script, see the example below.
Project Window> RMB> Create> C#> name it ‘MyFirstScript’> double click to open ‘MonoDevelop’ editor
// call basic namespace of Unity3D using UnityEngine; using System.Collections; // MonoBehaviour is the base class every script derives from // class nameofmyscript : derived from MonoBehaviour public class MyFirstScript : MonoBehaviour { // Unity3D exclusive function - Use this for initialization void Start () { }// END Start() // Unity3D exclusive function - Update is called once per frame void Update () { }// END Update() }// END of class MyFirstScript
// call basic namespace of Unity3D using UnityEngine; using System.Collections; // MonoBehaviour is the base class every script derives from // scope class nameofmyscript : derived from MonoBehaviour public class MyFirstScript : MonoBehaviour { // declare variables // scope type nameofvariable = value public int myInt = 5; // you can setup it inside inspector private int myInt2 = 6; // you can't setup it inside inspector // Unity3D exclusive function - Use this for initialization - void because it has no type void Start () { myInt = MultiplyByTwo(myInt); Debug.Log (myInt); }// END Start() // Your custom fuction // scope type functionname (type variable) public int MultiplyByTwo (int number) { int ret; ret = number * 2; return ret; } // Unity3D exclusive function - Update is called once per frame - void because it has no type void Update () { }// END Update() }// END of class MyFirstScript
CSharp – Enum
Quando si definisce una variabile di tipo enumerativo, ad essa viene associato un insieme di costanti intere chiamato insieme dell’enumerazione. La variabile può contenere una qualsiasi delle costanti definite.
Syntax:
enum <enum_name> { enumeration list };
Example:
using System; namespace EnumApplication { class EnumProgram { enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat }; static void Main(string[] args) { int WeekdayStart = (int)Days.Mon; int WeekdayEnd = (int)Days.Fri; Console.WriteLine("Monday: {0}", WeekdayStart); Console.WriteLine("Friday: {0}", WeekdayEnd); Console.ReadKey(); } } }
The rEsult is
Monday: 1
Friday: 5
CSharp – Conversions
Type conversion is basically converting one type of data to another type.
Example:
using System; using System.Collections; namespace ConsoleApplication1 { class StringConversion { static void Main(string[] args) { int i = 75; float f = 53.005f; double d = 2345.7652; bool b = true; Console.WriteLine(i.ToString()); Console.WriteLine(f.ToString()); Console.WriteLine(d.ToString()); Console.WriteLine(b.ToString()); Console.ReadKey(); } } }
The result is:
75
53.005
2345.7652
True
ToBoolean()
Converts a type to a Boolean value, where possible.
ToByte()
Converts a type to a byte.
ToChar()
Converts a type to a single Unicode character, where possible.
ToDateTime()
Converts a type (integer or string type) to date-time structures.
ToDecimal()
Converts a floating point or integer type to a decimal type.
ToDouble()
Converts a type to a double type.
ToInt16()
Converts a type to a 16-bit integer.
ToInt32()
Converts a type to a 32-bit integer.
ToInt64()
Converts a type to a 64-bit integer.
ToSbyte()
Converts a type to a signed byte type.
ToSingle()
Converts a type to a small floating point number.
ToString()
Converts a type to a string.
ToType()
Converts a type to a specified type.
ToUInt16()
Converts a type to an unsigned int type.
ToUInt32()
Converts a type to an unsigned long type.
ToUInt64()
Converts a type to an unsigned big integer.
My Official Website: http://www.lucedigitale.com
Ref: http://www.tutorialspoint.com/csharp/csharp_type_conversion.htm