유니티142 C++ 08 [string] ▣ string 클래스를 사용을 사용하기 위해서는 #include 헤더가 있어야 한다. ▣ string str(문자열) : 괄호를 통해 초기화 가능 ▣ string *p = new string(문자열) : 메모리 할당으로 string 객체 사용 가능 ▣ string에 속해 있는 getline() 함수 ▣ getline(cin, str, '\n') : getline(cin, 입력받을 객체, 구분문자(구분문자까지 입력)) ▣ str2 = str1 : 대입연산자를 통해서 문자열을 치환(대입)해서 바꿀 수 있다. ▣ 대표적인 string 함수들 객체.append(연결 문자) : 문자열 연결 함수 반환형 객체.length() : 문자열 길이 함수 stoi(객체) : 숫자로 된 문자열을 숫자로 변환 함수 객체.cl.. 2023. 3. 28. C++ 07 [this 포인터] ▣ this 포인터 : 객체 자신에 주소 포인터 ▣ this->num 코드는 test객체의 포인터(클래스 Test의 int num = 0)를 접근하여 대입 ▣ 클래스의 멤버함수와 생성자함수에서만 this 사용이 가능하다. ▣ 멤버변수와 멤버함수의 매개변수의 이름이 동일할 때 this로 객체 자신을 접근하여 사용한다. ▣ 멤버 함수에서 자신의 주소를 리턴해야 할 때 사용한다. ▣ this는 정적 멤버함수(static 함수)에서는 this를 사용할 수 없다. ▣ 멤버함수에서 객체의 주소를 this로 접근이 가능하다. ▣ 위에 코드를 풀어서 작성하면 이렇게 test.testfunc(&test, 10);처럼 주소를 매개변수로 전달하고 컴파일러가 void testfunc(Test* this, int num) 코드.. 2023. 3. 24. C++ 06 [메모리 할당] https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9 동적 메모리 할당 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 동적 메모리 할당 또는 메모리 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 사용이 끝나면 운영체제가 쓸 ko.wikipedia.org ▣ 메모리 할당 : 필요한 메모리를 힙이라는 메모리 영역에서 가져와 사용하는 것 ▣ 동적메모리 : 상황에 따라 원하는 크기만큼의 메모리가 할당 가능 ▣ 정적메모리 : 메모리의 크기가 코딩되어 있어서 나중에 조절할 수 없다. ▣ 메모리 할당 방법 : 데이터타입 *포인터이.. 2023. 3. 24. C++ 05 [객체배열] ▣ 객체배열 만들기 : 클래스이름 배열이름[크기]; ▣ 객체배열을 초기화하는 방법 : 클래스이름 배열이름[크기] = { 클래스이름(), 클래스이름(값)}; ▣ 객체배열 인덱스 수만큼 초기화를 해야 한다. ▣ Test() : 매개변수가 없는 생성자 호출 ▣ Test(10) : 매개변수가 있는 생성자 호출 ▣ 소멸자는 큰 숫자 인덱스부터 소멸한다. 그렇기 때문에 매개변수가 있는 소멸자가 먼저 호출되었다. 2023. 3. 24. 유니티 [부모,자식오브젝트 분리] ▣ 안녕하세요.이번장에서는 부모, 자식 오브젝트를 분리하는 코드를 공부해 보겠습니다. ▣ 먼저 게임 오브젝트 2개를 생성해 주시고 게임오브젝트2를 게임오브젝트1에 자식으로 넣습니다.그리고 게임오브젝트 2에 스크립트를 하나 생성합니다. ▣ 게임오브젝트 2의 스크립트에서 Start() 함수에 gameObject.transform.SetParent(null); 를 작성합니다.SetParent() 함수는 부모오브젝트를 정해주는 함수인데 매개변수 값에 null 를 입력합니다.저장을 하고 ▣ 플레이를 누르면 위에 이미지처럼 오브젝트가 분리된 걸 확인할 수 있습니다. ▣ 부모를 추가하는 코드입니다. 2023. 1. 26. 유니티 - [Header] ▣ 안녕하세요. 이번장에서는 Header를 공부해보겠습니다. ▣ 우선 스크립트에서 [Header("Weapon")] Header키워드를 넣고 괄호 안에 제목을 넣어주세요. 저장을 하고 Inspector에 스크립트 화면을 확인하면 ▣ 이렇게 그룹화를 할 수 있습니다. 2022. 8. 25. 유니티 - [점프 예시1] ▣ 안녕하세요. 이번장에서는 2D오브젝트를 점프하는 코드 중 한 가지를 공부해보겠습니다. 점프를 하는 방법은 여러 가지 방법이 있습니다. 상황에 따라 다양한 코드로 할 수 있습니다. 점프 코드를 할 때 핵심은 내가 어느 좌표로 할 것인가?를 생각해봐야 합니다. 저희는 2D에서 Y값을 바꿔 점프를 구현하겠습니다. ▣ 먼저 2D프로젝트를 생성해주시고, 2D Object에서 Sprites 두 개를 만들 만들어주세요. Player(원), Ground(사각형) ▣ 원과 사각형에 이름을 각각 Player와 Ground로 이름을 지정해주시고, Player오브젝트에 스크립트와 Rigidbody2D 그리고 ▣ Capsule Collider2D 컴포넌트를 추가해주세요. ▣ Ground에는 BoxCollider2D 컴포넌트.. 2022. 8. 25. 유니티 - [이동, 방향, 키입력] ▣ 안녕하세요. 이번장에서는 오브젝트 이동 코드, 오브젝트 방향 전환, 키 입력 코드 방법 중 한 가지씩을 공부해보겠습니다. 밑에 코드를 하나씩 작성하고 실행해보면 어떻게 작동하는지는 눈으로 직접 보며 공부해보세요. 2022. 8. 22. 유니티 - [오브젝트 이동 여러 예시] ▣ 안녕하세요. 이번장에서는 오브젝트를 이동(움직이는) 코드를 공부해보도록 하겠습니다. 이 장에서는 한 개씩 직접 어떻게 작동하는지를 확인해보시면서 코드를 작성해주세요. 코드마다 설명을 주석으로 넣어두었습니다. 나중에 바로바로 코드를 사용할 수 있게 주석을 넣는 습관도 함께 들이면 좋습니다.^^ ▣ 우선 2D프로젝트를 생성해주시고 2D오브젝트를 만들어주세요. 그리고 TestManager라는 스크립트를 만들어서 Player에 넣어주세요. ▣ 그리고 Rigidbody2D 컴포넌트를 추가해주세요. ▣ 그리고 스크립트를 열어서 코드를 작성해주세요. 기본으로 플레이어에 속도변수 그리고 Rigidbody2D를 사용하기 위한 변수를 작성해주세요. ▣ position을 변경해서 이동하는 코드, Rigidbody2D를 .. 2022. 8. 19. 유니티 - [함수호출 순서] ▣ 안녕하세요. 이번장에서는 유니티 엔진에 기본 함수들에 호출 순서를 공부해보겠습니다. ▣ 먼저 빈 게임 오브젝트를 만든 다음에 TestManager라는 스크립트를 생성해서 넣어주세요. ▣ Awake(), OnEnable(), OnDisable(), Start(), FixedUpdate(), Update(), LateUpdate() 함수를 생성해주시고, 각각 호출되는 순서를 확인하기위해 Debug.Log()를 코드 해주세요. ▣ OnEnable() 함수는 게임 오브젝트가 활성화될 때 실행하는 함수이고, OnDisable() 함수는 게임 오브젝트가 비활성화될 경우 실행되는 함수입니다. Awake(), Start() 함수는 스크립트가 실행할 때 기본으로 한번 실행되는 함수인데 이건 순서를 확인해보겠습니다. .. 2022. 8. 18. 유니티 - [CameraShake, 카메라 쉐이크효과] ▣ 안녕하세요. 이번장에서는 카메라 셰이크(흔들기) 효과에 대해 공부하도록 하겠습니다. ▣ 우선 3D프로젝트를 생성해 주시고, 기본 플레이어와 땅을 배치해 주세요. 그리고 카메라 위치를 플레이어 캡슐이 중앙에 보이게 위치를 변경해주세요. 그런 다음 플레이어에 스크립트 한 개를 생성해서 넣어주세요. ▣ 스크립트를 열어서 cam, cameraOriginalPos 변수를 선언해주세요. cam에는 메인카메라메인 카메라 클래스를 cameraOriginalPos에는 메인 카메라에 위치를 넣어주세요. ▣ 그런다음 업데이트 함수에서 Debug.Log(Random.insideUnitSphere)이라는 클래스에 있는 기능을 출력해보려고 합니다. https://docs.unity3d.com/kr/530/ScriptRefer.. 2022. 6. 9. 유니티 - [마우스커서 숨기기, 마우스커서 고정] ▣ 안녕하세요. 이번장에서는 유니티에서 마우스 커서를 숨기고 고정시키는 코드를 공부해보겠습니다. ▣ 우선 마우스 커서를 고정하려면 유니티 엔진에 있는 Cursor. 클래스를 접근해야 합니다. Cursor.으로 접근하게 되면 마우스 커서에 대한 여러 가지 기능들이 보입니다. ▣ 여기서 Cursor.visible = false를 주게 되면 마우스 커서를 숨기게 됩니다. visible은 보이기 상태를 의미한다고 생각하시면 됩니다. ▣ lockState는 마우스를 고정시키는 걸 의미합니다. 2022. 4. 23. 유니티 - [회전과 방향 전환] ▣ 이번장에서는 2D 오브젝트 방향을 조정하는 코드를 작성해보겠습니다. ▣ 김선민 벨로그를 참고하여 코드를 작성했습니다. 감사합니다. 출처 : https://velog.io/@sonohoshi/7.-Mathf.Atan2% EC%97%90-%EB% 8C%80% ED%95% B4-%EC%95% 8C% EC%95%84% EB% B3% B4% EC% 9E%90 7. Mathf.Atan2에 대해 알아보자 Unity에서 제공하는 static class, Mathf 에서 제공하는 static method Atan2를 설명한다. velog.io ▣ 우선 기본적으로 원으로 플레이어 오브젝트를 만들어주시고, 그리고 방향을 구분하기 위해 적에 오브젝트를 눈이 있는 캐릭터로 지정했습니다. 그리고 Enemy오브젝트에 스크립트 .. 2022. 4. 20. 유니티 - [rotation, LookRotation, Quaternion, Slerp] ▣ 안녕하세요. 이번장에서는 LookRotation, Quaternion, Slerp을 사용하여 타깃을 향해서 회전을 하는 코드를 공부해보겠습니다. ▣ 우선 3D 프로젝트를 만들어서 캡슐 오브젝트로 Player와 큐브로 Enemy오브젝트를 만들어주세요. 그리고 player오브젝트에는 PlayerManager라는 스크립트를 생성해주세요. ▣ obj 게임오브젝트로 바라볼 오브젝트를 지정해주시고, 업데이트 함수에서 transform.rotation을 지정하겠습니다. 이건 현재 나의 회전 값을 지정하는 코드입니다. 여기에 Quaternion.LookRotation()함수를 사용하겠습니다. 이 함수는 해당 백터를 바라보는 함수입니다. 여기에 우리가 바라볼 오브젝트에 포지션값을 넣게 되면 플레이어가 obj를 바라보.. 2022. 4. 7. 유니티 - [폭발효과, OverlapSphere, AddExplosionForce] ▣ 안녕하세요. 이번장에서는 폭발 효과 OverlapSphere, AddExplosionForce를 공부해보겠습니다. ▣ 우선 저번장과 이어서 3D 프로젝트를 생성해주세요. 그리고 Player, Plane을 3D 오브젝트로 생성해주세요. Player안에 리지드 바디, 스크립트, 그리고 콜라이더를 두 개를 넣어주세요. Collider 충돌과 Is Trigger를 동시에 사용하기 위함입니다. ▣ 그리고 Enemy 또한 리지 디바디까지 추가해주세요. 이건 폭발 효과에 힘을 받기 위함입니다. ▣ 그리고 Layer메뉴에서 Add Layer로 레이어를 추가해줍니다. 이건 Tag과 동일하게 모든 오브젝트에 힘을 주면 메모리가 많이 사용되는 걸 방지하기 위해 보통 물리효과는 Layer로 구분을 하기 때문에 연습 삼아 .. 2022. 3. 28. 유니티 - [Destroy, ParticleSystem, GetComponentInChildren] ▣ 안녕하세요. 이번장에서는 Destroy, ParticleSystem, GetComponentInChildren를 공부해보도록 하겠습니다. ▣ 우선 3D 프로젝트를 생성해주시고, Player, Plane 오브젝트를 생성해주세요. 그리고 Player오브젝트에는 스크립트, 콜라이더, 리지드 바디를 컴포넌트로 추가해주세요. 그런 다음에 유니티 에셋에서 무료 파티클을 다운받으세요. https://assetstore.unity.com/packages/essentials/asset-packs/unity-particle-pack-5-x-73777 Unity Particle Pack 5.x | 에셋팩 | Unity Asset Store Get the Unity Particle Pack 5.x package from .. 2022. 3. 27. 유니티 - [AddForce와 Velocity 차이] ▣ 안녕하세요. 이번장에서는 AddForce와 Velocity 차이에 대해 공부해보겠습니다. ▣ 우선 3D 프로젝트를 생성해주시고, Plane와 원모 양에 Player를 생성해주세요. 그리고 Player에 Rigidbody를 넣어주시고 Player라는 스크립트도 생성해서 넣어주세요. ▣ 이제 스크립트를 작성해보겠습니다. 먼저 플레이어 속도 변수를 만들어주시고, Rigidbody를 사용할 변수도 만들어 Start() 함수에서 GetComponent로 대입해주세요. 그런 다음에 X, Z변수에 GetAxis값으로 입력 값을 대입해주시고 AddForce() 함수를 이용하여 힘을 줘서 Player를 움직이는 코드를 작성하겠습니다. 3D에서는 앞뒤에 값은 Z이기 때문에 (x, y, z) 순으로 값을 대입했습니다. .. 2022. 3. 16. 유니티 - [collider2D, composite, Box Collider 2D ▣ 안녕하세요. 이번장에서는 composite를 활용하여 콜라이더를 합쳐서 사용하는 방법을 공부해보겠습니다. ▣ 우선 2D오브젝트로 Square를 두 개 생성해주세요. 그리고 각각 Box Collider 2D를 넣어주세요. ▣ 그런다음에 빈 오브젝트를 생성합니다. 오브젝트에 위치는 0,0,0으로 해주시고, 오브젝트에 Composite Collider 2D를 넣어주세요. ▣ 그런다음에 빈 오브젝트에 Square를 끌어서 자식으로 넣어줍니다. ▣ 그리고 Square 오브젝트에 Box collider2D에 있는 Used By Composite를 체크해주세요. ▣ 그리고 빈오브젝트에서 Composite Collider 2D에 Edge Radius를 조정해보면 이렇게 빈오브젝트를 기준으로 콜라이더가 합쳐져서 영역.. 2022. 3. 4. 유니티 - [마우스 위치로 발사, ScreenToWorldPoint, 프리펩] ▣ 안녕하세요. 이번장에서는 마우스 위치로 총알을 발사하는 코드를 공부해보겠습니다. ▣ 우선 플레이어 오브젝트를 생성해주시고 플레이어 오브젝트 안에 스크립트를 생성해주세요. ▣ 그런 다음에 Pos라는 빈 오브젝트를 자식으로 생성해서 넣어줍니다. 위치는 총알이 생성되고 나갈 위치로 지정해주세요. 플레이어 자식으로 넣기 전에 꼭 포지션을 초기화해서 넣어주시는 거 잊지 마세요. ▣ 이제 총알을 만들어주겠습니다. 저는 기본 도형으로 만들었습니다. 여기에 Rigidbody 2D를 넣어주시고 에셋에 넣어서 프리 펩으로 생성한 다음에 삭제해주세요. ▣ 이제 플레이어에 있는 스크립트로 들어가서 코드를 작성하겠습니다. 총알 생성 위치, 프리 펩 총알에 대한 오브젝트, 날아갈 총알 속도에 대한 변수를 작성해주세요. Vec.. 2022. 3. 3. 유니티 - [FPS게임, 카메라마우스회전, 캐릭터컨트롤] ▣ 안녕하세요. 이번장에서는 간단하게 FPS 게임에서 플레이어를 움직이고 카메라로 마우스를 움직이게 하는 코드를 만들어보겠습니다. ▣ 먼저 3D 프로젝트를 생성해주시고, 3D 오브젝트로 플레이어와 큐브를 배치해주세요. ▣ 그런 다음에 플레이어 오브젝트에 콜라이더를 삭제해주시고 Character Controller를 추가해주세요. ▣ 그리고 플레이어 오브젝트를 따라서 카메라가 같이 움직여야 하기 때문에 메인 카메라를 플레이어 오브젝트에 넣어주세요. ▣ 그런 다음에 메인 카메라에 위치를 플레이어 오브젝트 머리에 옮겨서 FPS처럼 보이게 위치를 변경합니다. ▣ 그런 다음에 플레이어오브젝트에 PlayerManager스크립트를 추가해주시고, 스크립트를 실행해주세요. 그런 다음에 먼저 플레이어컨트롤러를 컴포넌트로 .. 2021. 8. 8. 유니티 - [RayCast, RayCastAll, 레이캐스트] ▣ 안녕하세요 이번장에서는 RayCast를 공부해보겠습니다. 레이 캐스트는 쉽게 이야기해서 오브젝트에서 레이저를 쏴서 그 레이저에 달인 오브젝트를 감지하기 위한 기능입니다. 보통 FPS 게임에서나 VR에서 많이 사용됩니다. ▣ 먼저 간단하게 3D프로젝트를 생성해주시고, 3D 오브젝트에서 캡슐로 Player 만들어주세요. Player안에 PlayerManager라는 스크립트도 작성해주세요. ▣ 그리고 레이 캐스트로 닿을 대상 3D 오브젝트에서 큐브를 생성해주세요. 위치에 Z값은 10으로 해주세요. 그리고 콜라이더도 꼭 추가해주세요. 충돌을 측정하기 위함입니다. 이제 PlayerManager스크립트를 들어가서 코드를 작성해보겠습니다. ▣ Update() 함수에서 Physics. 를 접근해서 Raycast라고.. 2021. 7. 26. 이전 1 ··· 3 4 5 6 7 다음