Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
unity_game_dev [2020/04/12 00:28]
paul [Audio]
unity_game_dev [2020/04/18 21:02] (current)
paul [Unity Engine]
Line 6: Line 6:
  
 Unity comes with a bunch of tools that you have to install from the package manager. This is confusing because they have both an asset store and a package manager. You can install Probuilder, which lets you design, prototype and play-test levels rapidly in the Unity Editor. Unity comes with a bunch of tools that you have to install from the package manager. This is confusing because they have both an asset store and a package manager. You can install Probuilder, which lets you design, prototype and play-test levels rapidly in the Unity Editor.
 +
 +==== Cameras ====
 +
 +To set a camera's view to be aligned with your scene view, select the camera and in the GameObject menu select "Align with Scene View".
 +
 +===== Reference Frames =====
 +
 +Unity uses left handed chirality.
 +
 +Forward in Unity is the +z axis. 
 +Right is +x, up is +y.
  
 ===== Prefabs ===== ===== Prefabs =====
Line 57: Line 68:
  
 // You usually create a rotation in euler and then convert to quaternion. // You usually create a rotation in euler and then convert to quaternion.
- +</code> 
-==== Convertions ====+=== Conversions ===
 <code c#> <code c#>
 // Convert from Quaternion to Euler: // Convert from Quaternion to Euler:
Line 154: Line 165:
  
 ===== Audio ===== ===== Audio =====
 +
 +Here's a method that will play random audio noises from a list.
  
 <code c#> <code c#>
Line 178: Line 191:
     }     }
 </code> </code>
 +
 +===== UI =====
 +
 +==== InputField ====
 +
 +Here's an input field for text set by a button. The script is attached to an empty game object in the scene.
 +<code c#>
 +using System.Collections;
 +using System.Collections.Generic;
 +using UnityEngine;
 +using UnityEngine.UI;
 +
 +public class NameTransfer : MonoBehaviour
 +{
 +    public string theName;
 +    public GameObject inputField;
 +    public GameObject textDisplay;
 +
 +
 +    public void StoreName()
 +    {
 +        theName = inputField.GetComponent<Text>().text;
 +        textDisplay.GetComponent<Text>().text = "Welcome " + theName + " to the game!";
 +    }
 +
 +}
 +</code>
 +
 +==== Rect Transform ====
 +
 +These friggen things. If you press shift and then alt, something happens. Will need to dive into this at one point.
 +
 +{{::toppanelanchorspreset.gif?400|}}
 +
 +===== Unity Engine =====
 +
 +Objects of classes always have an object of that type attached to them.
 +
 +<code c#>
 +namespace UnityEngine
 +{
 +    //
 +    // Summary:
 +    //     Base class for everything attached to GameObjects.
 +    [NativeClass("Unity::Component")]
 +    [NativeHeader("Runtime/Export/Component.bindings.h")]
 +    [RequiredByNativeCode]
 +    public class Component : Object
 +    {
 +        public Component();
 +
 +        //
 +        // Summary:
 +        //     The game object this component is attached to. A component is always attached
 +        //     to a game object.
 +        public GameObject gameObject { get; }
 +        //
 +        // Summary:
 +        //     The tag of this game object.
 +        public string tag { get; set; }
 +        //
 +        // Summary:
 +        //     The Rigidbody attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property rigidbody has been deprecated. Use GetComponent<Rigidbody>() instead. (UnityUpgradable)", true)]
 +        public Component rigidbody { get; }
 +        //
 +        // Summary:
 +        //     The Rigidbody2D that is attached to the Component's GameObject.
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property rigidbody2D has been deprecated. Use GetComponent<Rigidbody2D>() instead. (UnityUpgradable)", true)]
 +        public Component rigidbody2D { get; }
 +        //
 +        // Summary:
 +        //     The Camera attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property camera has been deprecated. Use GetComponent<Camera>() instead. (UnityUpgradable)", true)]
 +        public Component camera { get; }
 +        //
 +        // Summary:
 +        //     The Light attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property light has been deprecated. Use GetComponent<Light>() instead. (UnityUpgradable)", true)]
 +        public Component light { get; }
 +        //
 +        // Summary:
 +        //     The Animation attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property animation has been deprecated. Use GetComponent<Animation>() instead. (UnityUpgradable)", true)]
 +        public Component animation { get; }
 +        //
 +        // Summary:
 +        //     The Transform attached to this GameObject.
 +        public Transform transform { get; }
 +        //
 +        // Summary:
 +        //     The ConstantForce attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property constantForce has been deprecated. Use GetComponent<ConstantForce>() instead. (UnityUpgradable)", true)]
 +        public Component constantForce { get; }
 +        //
 +        // Summary:
 +        //     The AudioSource attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property audio has been deprecated. Use GetComponent<AudioSource>() instead. (UnityUpgradable)", true)]
 +        public Component audio { get; }
 +        //
 +        // Summary:
 +        //     The GUIText attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property guiText has been deprecated. Use GetComponent<GUIText>() instead. (UnityUpgradable)", true)]
 +        public Component guiText { get; }
 +        //
 +        // Summary:
 +        //     The NetworkView attached to this GameObject (Read Only). (null if there is none
 +        //     attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property networkView has been deprecated. Use GetComponent<NetworkView>() instead. (UnityUpgradable)", true)]
 +        public Component networkView { get; }
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property guiElement has been deprecated. Use GetComponent<GUIElement>() instead. (UnityUpgradable)", true)]
 +        public Component guiElement { get; }
 +        //
 +        // Summary:
 +        //     The GUITexture attached to this GameObject (Read Only). (null if there is none
 +        //     attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property guiTexture has been deprecated. Use GetComponent<GUITexture>() instead. (UnityUpgradable)", true)]
 +        public Component guiTexture { get; }
 +        //
 +        // Summary:
 +        //     The Collider attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property collider has been deprecated. Use GetComponent<Collider>() instead. (UnityUpgradable)", true)]
 +        public Component collider { get; }
 +        //
 +        // Summary:
 +        //     The Collider2D component attached to the object.
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property collider2D has been deprecated. Use GetComponent<Collider2D>() instead. (UnityUpgradable)", true)]
 +        public Component collider2D { get; }
 +        //
 +        // Summary:
 +        //     The Renderer attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property renderer has been deprecated. Use GetComponent<Renderer>() instead. (UnityUpgradable)", true)]
 +        public Component renderer { get; }
 +        //
 +        // Summary:
 +        //     The HingeJoint attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property hingeJoint has been deprecated. Use GetComponent<HingeJoint>() instead. (UnityUpgradable)", true)]
 +        public Component hingeJoint { get; }
 +        //
 +        // Summary:
 +        //     The ParticleSystem attached to this GameObject. (Null if there is none attached).
 +        [EditorBrowsable(EditorBrowsableState.Never)]
 +        [Obsolete("Property particleSystem has been deprecated. Use GetComponent<ParticleSystem>() instead. (UnityUpgradable)", true)]
 +        public Component particleSystem { get; }
 +</code>
 +
 +===== Debug =====
 +
 +You can format your debug colors!
 +
 +<code c#>
 +Debug.LogError("<Color=Red><a>Missing</a></Color> Beams Reference");
 +</code>
 +
 +
 +===== Multiplayer =====
 +
 +There multiple ways of doing multiplayer in Unity. Unity used to support a multiplayer system called UNet but it was deprecated in 2019 and removed from the codebase. They have yet to fully roll out their new version. Read about it [[https://support.unity3d.com/hc/en-us/articles/360001252086-UNet-Deprecation-FAQ|here]].
 +
 +Another option is to use Photon's PUN service. It is free for up to 20 concurrent users and handles matchmaking. There's an official [[https://doc.photonengine.com/en-us/pun/v2/demos-and-tutorials/pun-basics-tutorial/intro|written tutorial here]].
 +
 +==== Photon PUN ====
 +
 +=== PhotonView ===
 +A [[https://doc-api.photonengine.com/en/pun/v2/class_photon_1_1_pun_1_1_photon_view.html#details|PhotonView]] identifies an object across the network (viewID) and configures how the controlling client updates remote instances.
 +
  • unity_game_dev.1586651285.txt.gz
  • Last modified: 2020/04/12 00:28
  • by paul