Unity/Unity(๊ธฐ์ดˆ)

    Unity์—์„œ this์˜ ์˜๋ฏธ

    ๋ณดํ†ต ์Šคํฌ๋ฆฝํŠธ๋Š” ์˜ค๋ธŒ์ ํŠธ์— ๋„ฃ๊ณ  ์“ด๋‹ค. this๋ž€ ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ ๊ทธ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์•„๋ž˜ ์˜ˆ์ œ1๊ณผ ์˜ˆ์ œ2๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋˜‘๊ฐ™์€ ์‹œ๊ฐ์  ํšจ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค. using System.Collections; using System.Collections.Generic; using UnityEngine; public class studyScript : MonoBehaviour { void Update() { float x = Input.GetAxis("Horizontal") * 0.05f; float y = Input.GetAxis("Vertical") * 0.05f; this.transform.Translate(new Vector2(x, y)); } } using Sys..

    Unity ๋‚œ์ˆ˜ ์ƒ์„ฑ์€ Random.Range๋ฅผ ํ™œ์šฉํ•˜์ž

    float rnd = Random.Range(0.0f, 0.5f); 0.0f~0.5f ์‚ฌ์ด์— ์ˆซ์ž๋ฅผ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ๋ณ€์ˆ˜ rnd์— ๋„ฃ์–ด์ฃผ๋Š” ์ฝ”๋“œ์ด๋‹ค. ์•„๋ž˜ ์†Œ์Šค์ฝ”๋“œ๋Š” A๋ฅผ ๋ˆ„๋ฅผ ์‹œ, 0.0~0.5 ์‚ฌ์ด์˜ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ’์€ ๋ณ€์ˆ˜ rnd์— ์ €์žฅํ•˜๊ณ  ์˜ค๋ธŒ์ ํŠธ์˜ transform.position์— Vector3ํ˜• z๊ฐ’์„ ๋Œ€์ž…ํ•ด ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ์ฝ”๋“œ using System.Collections; using System.Collections.Generic; using UnityEngine; public class studyScript : MonoBehaviour { void Update() { if (Input.GetKeyDown(KeyCode.A)) { float rnd = Random.Range(0.0f, ..

    unity ์ƒํ•˜์ขŒ์šฐ ์ฝ”๋“œ 2๊ฐ€์ง€ Input.GetKey vs Input.GetAxis ๊ทธ๋ฆฌ๊ณ  Translate() ํ•จ์ˆ˜์˜ ํ™œ์šฉ

    //๋ ˆํŠธ๋กœ๋Š๋‚Œ์˜ ํ”ฝ์…€๊ฒŒ์ž„์—์„œ ๋งŽ์ด ๋ณด์ด๋Š” ๋ฌด๋น™์Šค๋Ÿฝ๋‹ค using System.Collections; using System.Collections.Generic; using UnityEngine; public class MOVE : MonoBehaviour { Transform tr; void Update() { tr = GetComponent(); if (Input.GetKeyDown(KeyCode.UpArrow)) { tr.position = new Vector3(tr.position.x, tr.position.y + 1, tr.position.z); } if (Input.GetKeyDown(KeyCode.DownArrow)) { tr.position = new Vector3(tr.position.x, ..

    ์œ ๋‹ˆํ‹ฐ Quaternion

    Quaternion & Quaternion.Euler transform.rotation์€ Quaternionํ˜•ํƒœ์ธ (x, y, z, w)์˜ ํ˜•ํƒœ๋กœ ํ‘œ์‹œ๋œ๋‹ค. Quaternion.Euler์— Vector3 ๊ฐ’์„ ๋„ฃ์œผ๋ฉด Quaternion ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. transfomr.rotation = Quaternion.Euler(new Vector3(30,50,20)); transform.rotation = Quaternion.Euler(30,50,20); // ์œ„์™€ ๋™์ผ ๊ฐ๋„ ๋”ํ•˜๊ธฐ 1. Vector3 ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ๋”ํ•œ ๋‹ค์Œ Quaternion์œผ๋กœ ๋‹ค์‹œ ๋ณ€ํ™˜. Quaternion originalRot = transform.rotation; Vector3 originalRotVec3 = originalRot...

    [์œ ๋‹ˆํ‹ฐ] get set ํ”„๋กœํผํ‹ฐ Property(์†์„ฑ)

    c#์—์„œ๋Š” property(์†์„ฑ)์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. c++์—์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์€๋‹‰์„ ์œ„ํ•ด getter setter์„ ์“ฐ๋Š”๋ฐ c#์€ get set์œผ๋กœ ์“ฐ๊ณ  ์ด๋Ÿฐ ๋ฐฉ์‹์„ property๋ผ๊ณ  ํ•œ๋‹ค. ํด๋ž˜์Šค์—์„œ ์ •๋ณด ์€๋‹‰์„ ์œ„ํ•˜์—ฌ ํŠน์ • ๋ณ€์ˆ˜๋ฅผ private ์„ ์–ธํ•˜๋ฉด ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ๋Š” access ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—, ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ(๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ’์„ ๋ฐ”๊ฟ”์•ผ ํ•  ๊ฒฝ์šฐ) get,set์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ํ”„๋กœํผํ‹ฐ ์‚ฌ์šฉ๋ฒ• private๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ์–ป๊ฑฐ๋‚˜ ์„ธํŒ…ํ•˜๊ธฐ ์œ„ํ•ด get, set ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. get ์ ‘๊ทผ์ž์— ๋Œ€ํ•œ ์ฝ”๋“œ ๋ธ”๋ก์€ ์†์„ฑ์„ ์ฝ์„ ๋•Œ ์‹คํ–‰๋˜๊ณ , set ์ ‘๊ทผ์ž์— ๋Œ€ํ•œ ์ฝ”๋“œ ๋ธ”๋ก์€ ์†์„ฑ์„ ์ƒˆ ๊ฐ’์— ํ• ๋‹นํ•  ๋•Œ ์‹คํ–‰๋œ๋‹ค. set ..

    [์œ ๋‹ˆํ‹ฐ] Debug.Log์™€ Debug.LogFormat ํ™œ์šฉ. ์–ด๋–ค ๊ฒƒ์„ ์จ์•ผํ• ๊นŒ?

    Debug.Log : ํŠน์ง•์€ " " ์•ˆ์—์„œ ๋งํ•˜๊ณ  ์‹ถ์€ ๋ฐ”์™€ ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋‘ + ๋กœ ์—ฐ๊ฒฐ void Start() { int a = 10; Debug.Log("A์˜ ๊ฐ’์€ : " + a); } ์ถœ๋ ฅ| A์˜ ๊ฐ’์€ :10 Debug.LogFormat : ํŠน์ง•์€ " "๋‚ด์—์„œ ๋ฏธ๋ฆฌ ๋ณ€์ˆ˜์˜ {index} ํ‘œ์‹œ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ณ€์ˆ˜๋Š” ์‰ผํ‘œ๋กœ ์—ฐ๊ฒฐ void Start() { for (int i = 0; i

    ์œ ๋‹ˆํ‹ฐ ์ฝ”๋ฃจํ‹ด Coroutine

    *๊ฐœ์ธ ํ•™์Šต์„ ์œ„ํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.* ์ฝ”๋ฃจํ‹ด(Coroutine) ์ ˆ์ฐจ์  ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ฃผ๊ณ ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Update()๋ฌธ์€ ํ•œ ํ”„๋ ˆ์ž„์— ํ•œ๋ฒˆ์”ฉ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ผ๋ฉด (๊ฒŒ์ž„ ํ”„๋ ˆ์ž„ 1์ดˆ์— 60ํ”„๋ ˆ์ž„์ด ๋‚˜์˜จ๋‹ค๋ฉด 1์ดˆ์— 60๋ฒˆ๋„๋Š” ๊ฒฉ์œผ๋กœ ํ•œ๋ฒˆ ๋„๋Š” ๊ฐ„๊ฒฉ์ด 60๋ถ„์˜ 1์ดˆ, 80fps๋ผ๋ฉด 80๋ฒˆ ํ˜ธ์ถœ) ์ฝ”๋ฃจํ‹ด(Coroutine)์€ ์—…๋ฐ์ดํŠธ๋ฌธ ๋‚ด์˜ ๋ธํƒ€ํƒ€์ž„ ์ ์šฉ ๋Œ€์‹ ์— ํ”„๋ ˆ์ž„๊ณผ ์ƒ๊ด€์—†์ด ๋ณ„๋„์˜ ์„œ๋ธŒ ๋ฃจํ‹ด์—์„œ ์›ํ•˜๋Š” ์ž‘์—…์„ ์›ํ•˜๋Š” ์‹œ๊ฐ„๋งŒํผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ฅผํ…Œ๋ฉด, ์„œ์„œํžˆ ํˆฌ๋ช…ํ•ด์ง€๋Š” ํšจ๊ณผ๋ฅผ ์ฃผ๊ณ ์‹ถ์„ ๋•Œ update๋ฌธ ์•ˆ์—์„œ ๋กœ์ง์„ ๋งŒ๋“ค๋ฉด1์ดˆ๋„ ๋˜์ง€ ์•Š์•„ 60ํ”„๋ ˆ์ž„ ๊ฐ€๊นŒ์ด ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์‹๊ฐ„์— ํˆฌ๋ช…ํ•ด์ง€๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ์ด๋Ÿด๋•Œ๋Š” ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค. - IEnumerator ..

    ์œ ๋‹ˆํ‹ฐ SetSprite

    Declaration public void SetSprite(int index, Sprite sprite); Parameters index The index of the Sprite being modified. sprite The Sprite being assigned. ์ƒ‰์ธ ์ˆ˜์ •์ค‘์ธ ์Šคํ”„๋ผ์ดํŠธ์˜ ์ธ๋ฑ์Šค์ž…๋‹ˆ๋‹ค. ํ• ๋‹น๋˜๋Š” ์Šคํ”„๋ผ์ดํŠธ. ์ง€์ •๋œ ์ธ๋ฑ์Šค์—์„œ ์Šคํ”„๋ผ์ดํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์˜ˆ์‹œ: for (int i = 0; i