Android Programjaim

Android fejlesztes, java, kotlin, web.. miegymas:)

Unity5 FREE emlekeztetok, gyorstalpalo

2015. augusztus 20. 16:59 - lacas82

Alabb kis leirast fogok kozzetenni a Unity5.0.x verziorol. Csak a legalapvetobb dolgok, hogy el tudd kezdeni a fejlesztest. Mivel unity-ben lehet fejleszteni androidra, ios-ra, oculusra, akarmire masra is, ezert fontos lehet. Fontos tudni, hogy bizonyos PRO funkciok nelkul bizonyos dolgok nem fognak mukodni. Pl. oculushoz is ez kell ugye. Ezert, ha azt akarod, hogy minden mukodjon es esetleg commercial cuccot irsz, vagy bevetelt varsz a dologert, akkor erdemes PRO-ra elofizetned. 75$ egy honapban, ha jol emlekszem. 

Menuk:

- File / Build settings - Platform beallitas (pl android)
  Build and Run-al compile-olhatunk illetve felrakja az usb-re bedugott device-ra apk formaban

- Player settings: itt gondolom minden egyertelmu, felbontast, app ikonokat, splash screen kepet (ha PRO verzio), a renderelest, az android app package nevet, verzioszamat, stb beallitasokat, es keystore-t tudjuk beallitani.

- Edit menu-ben a gyakorlatilag majdnem minden IDE-ben talalhato cuccok erhetoek el, mint copy, paste, etc..

- Assets menu: itt tudunk mindenfele scripteket (c#, js), prefabokat, materialokat, stb-ket elkesziteni. Importalni package-eket, illetve asset-eket. Ez a menu lenn az Assets folderben jobb klikkre is elehero. Lenn a menuben altalaban mindent azonos nev ala teszunk, pl a scripteket Scripts konyvtarba, mig Shaders konyvtarba a shader-eket, Textures a texturak.., etc. 

- GameObject menu: 3D, 2D objektumokat, hangokat, fenyeket, 2D UI cuccokat, particle systemet, kamerat tudunk a Hierarchyra/Scene-re rakni. Ezeket a Hierarchyba at is nevezhetjuk sajat egyedi nevekre.

Ha a hierarchy-ban raklikkelunk egy elemre, akkor a Scene-en kijelolodik az object es az Inspectorban latni fogjuk a tulajdonsagait.

Transform - Position Rotation Scale: az object helyzetet hatarozza meg a 3d terben, helyet, forgasat, scale-jet. Itt tudunk collider-eket hozzaadni az object-hez, pl egy box collidert miutan rigid body-va valt az object-unk.

A legtobb dolgot fogd es vidd-el el tudjuk erni Unityben. Azaz ha van egy texturank a Textures mappaban es ra akarjuk rakni egy 3D object-re, akkor fogd es vidd-el egyszeruen radobjuk.

Miutan az objektumot rigid body-va tettuk az Add Component-el (Add component, Phisics, Rigid body) be tudjuk allitani, hogy hasson e ra a gravitacio. Be tudunk kulonfele tulajdonsagokat is allitani ra. Pl. hogy pattogjon e mint egy labda vagy se. (ezt pl. egy custom BouncingMaterial-al)

Sajat shader-t is tudunk krealni es rarakni az objektumokra, illetve lehetoseg van FBO-zasra is. Tehat arra, hogy az egesz megjelenitendo kepen vegezzunk shade-et. (pl. Vignette effekt)

Sajat shader-t ertelemszeruen a Shaders mappaban hozunk letre, a neve pedig Something.shader lesz. A shaderek HLSL-ek, nem glsl. De konnyen utana lehet nezni neten.

Fejleszteni MonoDevelop-ban lehet, mint editor, vagy pl. Visual Studioban is.

Kis scripteles:

Mivel en C#-et hasznalok js helyett, ezekben fogom irni a dolgokat, nyilvan a js sem nehezebb nekem 10+ ev webes fejlesztokent, de en ezt szoktam meg.

Egy alap class igy nez ki Unityben:

using UnityEngine;
using System.Collections;

public class Class1 : MonoBehaviour {

    private GameObject wall1;

    void Start () {
        wall1 = GameObject.Find ("Wall1");
    }
    
    void Update () {

    }
}

 

A class1 helyett nyilvan majd egy ertelmes angol nevet adunk, ami a tartalmara utal. A Start metodus az inicializalaskor fut le egyszer, mig az Update a rendereleskor.
Jatek objektumot a GameObject.Find("Nev")-el talalunk meg. Ez az a nev, amit megadtunk a hierarchy-ban.

Valtozokat stb fuggvenyeket, etc ugyanugy irunk, mint egy C#-es appban.

Par kodreszlet:

Köd keszitese kodbol:

Start-ba:
        RenderSettings.fog = true;
        RenderSettings.fogDensity = 0.051f;
        RenderSettings.fogStartDistance = 0.5f;
        RenderSettings.fogEndDistance = 2.5f;
        RenderSettings.fogMode = FogMode.ExponentialSquared;

2D-s dolgokat kiirni a kepernyore a void OnGUI() { - bol tudunk.

peldaul:

    void OnGUI() {
        GUI.Label(FPSRect1, "<b>" + (string.Format("{0:0}", fps) + "</b> fps, <b>" + totalVertex + "</b> verts" )
                                     , style1);

    }

Kamera poziciojat athelyezni igy tudjuk:


    private void updateCamPos() {

        camPos.Set(Player.transform.position.x, Player.transform.position.y + 2.7f, Player.transform.position.z - 4.5f);

        Camera.main.transform.position = camPos;
        Camera.main.transform.LookAt(ball.transform);
    }

ahol camPos egy Vector3

android back gombbal kilepes az appbol:

if (Input.GetKeyDown(KeyCode.Escape)) Application.Quit();

rigidbody object sebesseget igy tudjuk novelni:

ball.GetComponent<Rigidbody>().velocity = ball.GetComponent<Rigidbody>().velocity * 1.0003f;

objektum transzformaciojat igy erhetjuk el:

ball.transform pl. ball.transform.position.x

directionLight.transform.Rotate (0, 0.1f, 0);

Ok, ennyi lett volna a Unity5 FREE gyorstalpalo, igazan nem nehez szerintem...

 

 

Címkék: unity5