Developedia
Developedia
Unity Puska 1 - Típusok & műveleteik

Unity Puska 1 - Típusok & műveleteik

Fontosabb típusok

Matematikai műveletek

Vektorok és műveleteik

Logo

Főoldal

Blog

Elmélet

3D Studio

Adatvédelmi nyilatkozat

GY.I.K.

Házirend

Szerző: Marosi Csaba / marosi.csaba@3d-studio.hu

DiscordGitHubLinkedIn
// Minden alábbi típus műkodik, mint [SerializeFiled] beállítás.

// Primitvek:
int integerNumber = 1;         // Egész szám
float floatingPointNum = 1f;   // Tizedes tört (Lebegőpontos) szám
bool boolean = true;           // Logikai érték
string text = "Hello World!";  // Szöveg

// Érték típusok:
Vector2 vector2;               // 2D vektor
Vector3 vector3;               // 3D vektor
Quaternion quaternion;         // Quaternion (3D fordulást ír le)
Color color;                   // RGBA szín
Rect rect;                     // 2D téglalap
Bounds bounds;                 // 3D téglalap

// Enumok:
KeyCode keyCode;               // Billentyűkód
Space space;                   // Saját / Világ koordinátarendszer

// Reference Types:
Gradient gradient;             // Színátmenet
AnimationCurve curve;          // Szabadon álltható görbe

// Unity Object-ek:
GameObject gameObj;            // GameObject

// Komponensek:
Transform someTransform;       // Transform komponens
Camera someCamera;             // Kamera komponens
Light someLight;               // Világítás komponens
AudioSource someAudioSource;   // Hang lejátszásért felelős komponens
Animator someAnimator;         // Animáció lejátszásért felelős komponens
ParticleSystem someParticleS;  // Részecskerendszer effekt 
MeshFilter someMeshFilter;     // Mesh-t tartelmazó komponens
                               //    (Használja: MeshRenderer, MeshCollider)

Renderer someRenderer;         // Megjelenítésért feleős komponens
LineRenderer someLineR;        // Vonalat megjelenítő komponens
SpriteRenderer someSpriteR;    // Sprite-t megjelenítő komponens
MeshRenderer someMeshR;        // Mesh-t megjelenítő komponens

Rigidbody someRigidbody;       // 3D Merev test - Fizikai szimuláció része
Rigidbody2D someRigidbody2D;   // 2D Merev test - Fizikai szimuláció része

Collider someCollider;         // Collider komponens - 3D Alakot ad a GameObject-nek
BoxCollider boxCol;            // Tégletest alakor ad a GameObject-nek
SphereCollider sphereCol;      // Görbület alakot ad a GameObject-nek
CapsuleCollider capsuleCol;    // Kapszula alakot ad a GameObject-nek
MeshCollider meshCol;          // MeshFilter alakját adja a GameObject-nek 

Collider2D someCollider2D;     // 2D Collider komponens - Alakot ad a 2D testnek
BoxCollider2D boxCol2D;        // 2D Tégletest alakor ad a GameObject-nek
CircleCollider2D circleCol2D;  // 2D Kör alakot ad a GameObject-nek
EdgeCollider2D edgeCol2D;      // 2D Él alakot ad a GameObject-nek
PolygonCollider2D polyCol2D;   // 2D Sokszög alakot ad a GameObject-nek

// Sorozatok:
int[] intArray;                // egész számokat tartalmazó tömb  (Fix hosszú)
List<int> intList;             // egész számokat tartalmazó lista (Rugalmasabb)
															 // Bármely típusból lehet tömb vagy lista
															 // A fenti típusokbó létrehozott tömbök és listák
															 // mind használhatók mint [SerializeFiled] beállítás.
float f;

f = 3 + 5;															// Összeadás
f = 3 - 5;															// Kivonás
f = 3 * 5;															// Szorzás
f = 3 / 5;															// Osztás
f = 3 % 5;															// Modulo (Maradék egész osztás után)

f = Mathf.Abs(-12.5f);              		// Abszolút érték függvény
f = Mathf.Sign(-233.5f);             		// Előjel függvény (kimenet -1 vagy 1)
f = Mathf.Ceil(0.15f);               		// Felfelé kerekítés egészhez
f = Mathf.Floor(3.95f);              		// Lefelé kerekítés egészhez
f = Mathf.Round(12.55f);             		// Egészhez Kerekítés
f = Mathf.Max(1222.1f, 3.6f);       		// Maximum keresés
f = Mathf.Min(1222.1f, 3.6f);        		// Minimum keresés
f = Mathf.Clamp(104.5f, 0, 10);      		// Két érték köszt tartás
f = Mathf.Clamp01(104.5f);           		// 0 és 1 közt tartás
f = Mathf.Pow(2, 3);                 		// Hatványozás
f = Mathf.Sqrt(25);                  		// Négyzetgyök vonás
f = Mathf.Lerp(3, 11, 0.25f);         	// Lineáris interpoláció
f = Mathf.Lerpunclamped(3, 11, 0.25f);	// Lineáris interpoláció vágás nélkül

// Trigonometriai függvények: (Radiánban várják a paramétereket)
f = Mathf.Sin(0.5f * Mathf.PI);      		// Szinusz függvény
f = Mathf.Cos(0.5f * Mathf.PI);      		// Cosinusz függvény
f = Mathf.Tan(0.15f * Mathf.PI);     		// Tangens függvény
f = Mathf.Asin(1);                   		// Arcus szinusz függvény
f = Mathf.Acos(0);                   		// Arcus cosinusz függvény
f = Mathf.Atan(1);                   		// Arcus tangens függvény

f = 380 * Mathf.Deg2Rad;             		// Váltás fokból radianba
f = 2* Mathf.PI * Mathf.Rad2Deg;     		// Váltás radianból fokba

int[] intArrayField;							                // Tömb: Fix hosszú sorozat
[SerializeField] List<string> stringListField;    // Lista: Rugalmas sorozat
// Bármilyen típusnak lehet tömbje és listája.
// Vektorok létrehozása:
Vector3 v3D1 = new Vector3();           // X=0, Y=0, Z=0
Vector3 v3D2 = new Vector3(1, 2);       // Z=0
Vector3 v3D3 = new Vector3(1, 2, 3);

Vector2 v2D1 = new Vector2();           // X=0, Y=0
Vector2 v2D2 = new Vector2(1, 2);

// Vektorok castolása:
Vector3 v3D4 = v2D1;                    // Vector2 -> Vector3 (implicit cast)
Vector2 v2D3 = v3D1;                    // Vector3 -> Vector2 (implicit cast)

// Innentől csak a Vector3-ket használunk.
// Ugyanúgy működik, Vector2-re is.
	
// Nevezetes vektorok:									//	X			Y			Z
Vector3 right = Vector3.right;          //	1			0			0
Vector3 left = Vector3.left;            //	-1		0			0
Vector3 up = Vector3.up;                //	0			1			0
Vector3 down = Vector3.down;            //	0			-1		0
Vector3 forward = Vector3.forward;      //	0 		0			1     (Csak Vector3)
Vector3 back = Vector3.back;            //	0 		0			-1    (Csak Vector3)

Vector3 one = Vector3.one;              //	1			1			1
Vector3 zero = Vector3.zero;            // 	0			0			0

// Egyszerű vektor műveletek:						//	X			Y			Z
Vector3 sum = v3D2 + v3D3;              //	2			4			3
Vector3 diff = v3D2 - v3D3;             //	-2		-2		-3
Vector3 mult = v3D3 * 3f;               //	3			6			9
Vector3 div = v3D3 / 2f;                //	0.5		1			1.5
Vector3 negated = -v3D3;                //	-1		-2		-3

// Egyszerűsített leírások:
sum += v3D3;                            // sum = sum + v3D3
diff -= v3D3;                           // diff = diff - v3D3
mult *= 3f;                             // mult = mult * 3f
div /= 3f;                              // div = div / 3f

// Vektor hossza:
float length = v3D3.magnitude;          // Vektor hossza
float sqrLength = v3D3.sqrMagnitude;    // Vektor hosszának négyzete (jóval gyorsabb)

// Vektor normalizálása:								// Irány megtart, hossza 1
Vector3 normalized = v3D3.normalized;   // Vektor normalizáltjának lekérése
v3D3.Normalize();                       // Vektor normalizálása

// Lineáris interpoláció:
Vector3 lerped = Vector3.Lerp(v3D1, v3D2, 0.5f);    // Lineáris interpoláció
Vector3 slerped = Vector3.Slerp(v3D1, v3D2, 0.5f);  // Gömb interpoláció (Euler koord.) 

// Egyéb
float dist = Vector3.Distance(v3D1, v3D2);          // Helyvektorok távolsága
float dot = Vector3.Dot(v3D1, v3D2);                // Skaláris szorzat
Vector3 cross = Vector3.Cross(v3D1, v3D2);          // Vektori szorzat