본문 바로가기

전체 글

(69)
C++ 구조체(struct) 구조체란 연관있는 데이터를 하나로 묶을 수 있는 문법적 장치이다. 플레이어를 만들게되면 체력,마나,이동속도,공격력등등이 존재할것이다. 이것들을 관리하기 위해서 변수 4개를 만드는건 너무 불편하다고 느낄것이다. 이런 문제를 해결해주는게 구조체이다 struct Player { int HP; int MP; float Speed; int Damage; }; int main() { Player player_0; player_0.HP = 100; player_0.MP = 10; player_0.Speed = 0.7f; player_0.Damage = 7; player ={100,10,0.7f,7};시 } 이런식으로 하나의 변수를 만들어서 편하게 관리할수있다. 구조체는 하나하나 넣어서 초기화할수있지만 마지막 문구처럼..
Unity 오브젝트풀 오브젝트 풀 유니티에서 객체를 생성하고 삭제하는 건 상당히 많은 자원을 소모한다. 만약 슈팅게임을 만들때 총알을 백만 개 소환하고 삭제한다면 게임의 렉이 발생할 것이다. (가비지 컬렉션이 문제가 된다) 이런 것을 방지하는 게 오브젝트 풀이다. 오브젝트 풀 은 사냥할 오브젝트들을 계속 생성해주는 게 아닌 사용할 만큼 미리 만들어준 다음에 필요할 때는 만들어둔 것을 가져와서 사용하고 다 사용한 오브젝트는 다시 반환해주는 방법이 다.. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55..
Unity 오브젝트를 다른오브젝트 하위로 생성하기 오브젝트를 생성할때 하이어라키 상단에 생성되는게아닌 다른 오브젝트 하위에 생성하는방법이다. GameObject temp = Instantiate(prefab, this.transform.position, Quaternion.identity); temp.transform.parent = this.transform; 오브젝를 만들때 temp라는 변수에 해당 오브젝트를 담아준다음에 해당 오브젝트를 다른 오브젝트에 parent에 넣어주면 된다. 단 UI를 생성해서 넣어줄때는 Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays ar..
Unity(C#) int,double,float의 Null값 삽입하기 원래라면 int, double, bool과 같은 Value Type은 Null값을 가질수 없다. 하지만 변수에 Null을 꼭 넣어야하는 상황에서는 C#식 표현인 int?를 사용하여 Null값을 삽입할수있다. 1 2 3 4 int? temp = null; if(temp == null) temp= 10;
Unity(C#) Dictionary Dictionary key,value를 이용하여 자료를 저장한다. Dictionary를 이용하면 자료를 편하게 찾을수있다. 선언시 사용한 타입을 미리 정의하기 때문에 박싱언박싱이 이러나지않는다. 라는 장점이 존재한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class DictionaryTest : MonoBehaviour { Dictionary name = new Dictionary(); void Start() { name.Add("슬깃", 1); name.Add("철수", 2); name.Add("영희", 3); Debug.Log("슬깃 : " + name["슬깃"]); Debug.Log("철수 : " + name["철수"]); Debug.Log("영희 : " + ..
Unity(C#) 람다식 람다식 람다식은 무명 메서드와 비슷하게 무명 함수를 표현하는데 사용된다. 1 2 3 4 5 6 7 8 9 10 11 12 delegate int myDelegate(int value); public class LambdaExpression : MonoBehaviour { myDelegate tempGate; void Start() { tempGate = delegate (int value) { return value + 10; }; Debug.Log(tempGate(10)); } } cs 위의 코드는 무명메서드의 예제 코드이다. 람다식은 해당 무명 메서드를 더욱 쉽게 만들어 준다. 1 2 3 4 5 6 7 8 9 10 11 12 delegate int myDelegate(int value_0, int v..
Uniyt(C#) 조건부 연산자 ?: ?: 3개로 구성된 조건부 연산자라고도 하는 조건부 연산자 ?:은 부울 식을 계산하고 부울 식이 true 또는 false으로 계산되는지에 따라 두 식 중 하나의 계산 결과를 반환합니다. 변수 = 조건부 ? trut : false; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class 조건부 연산자 : MonoBehaviour { int a = 10; int b = 20; void Start() { // 일반 비교방식 if(a b) Debug.Log("a가 b보다 크다."); // ?: 비교방식 string sng = a
Unity(C#) 접근한정자 C#의 접근한정자는 총4가지 존재한다. public, private, protected, internal public은 어디서든 접근이 가능하다. private은 자기자신말고는 접근이 불가능하다. protected은 자기자신과 자기를 상속하는 클래스들만 접근이 가능하다. internal은 자신이 혹한 어셈블리 에서만 접근이 가능하다. protected internal은 어셈블리 내의 상속 클래스에서만 접근이 가능하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 namespace Test_0 { public class Test : MonoBehaviour { public int a; private int b; protected int c; } } nam..