본문 바로가기

unity25

유니티 3d ui ▣ 먼저 Canvas를 생성합니다. Canvas Render Mode를 World Space으로 지정합니다. https://docs.unity3d.com/kr/530/Manual/UICanvas.html 캔버스 - Unity 매뉴얼 모든 UI 요소는 Canvas 안에 위치해야 합니다. 캔버스는 Canvas 컴포넌트가 있는 게임 오브젝트이며 모든 UI 요소는 반드시 어떤 캔버스의 자식이어야 합니다. docs.unity3d.com ▣ 월드 공간(World Space) 이 렌더 모드에서는 캔버스는 씬에 있는 다른 오브젝트처럼 동작합니다. 캔버스의 크기는 사각 트랜스폼을 사용하여 수동으로 설정할 수 있으며 UI 요소는 3D 배치에 기반하여 씬의 다른 오브젝트의 앞 또는 뒤에 렌더링 됩니다. 이 방식은 월드의 일.. 2024. 1. 18.
유니티 뛰는 애니메이션 ▣ 플레이어 애니메이션에 Parameters를 Float 형식으로 추가합니다. ▣ Base Layer에서 From New Blend Tree를 추가합니다. ▣ Blend Tree 이름을 지정하고 기본애니메이션과 연결합니다. Parameters는 아까 생성한 Run으로 지정하고 기본값은 0으로 합니다. ▣ Blend Tree에 두 개의 애니메이션을 추가합니다. ▣ 플레이어 스크립트로 들어가서 움직임 입력을 받은 코드에 Abs를 이용해서 앞뒤좌우 상관없이 모두 다 애니메이션에 값을 양수 1로 할 수 있게 Abs 함수를 사용했습니다. https://docs.unity3d.com/kr/530/ScriptReference/Mathf.Abs.html Mathf-Abs - Unity 스크립팅 API Returns t.. 2024. 1. 18.
유니티 crosshair ▣ 먼저 UI에 Panel를 생성합니다. Panel Component에 Image는 삭제하고 Anchors로 Midlle center로 정렬합니다. 그리고 크기 Width, Height는 100으로 지정합니다. ▣ UI Image를 Panel안에 상속하여 생성하고 각각 위치에 맞게 정렬한 다음에 크기를 지정합니다. ▣ 그리고 Panel 오브젝트에 스크립트를 추가합니다. ▣ RectTransfrom crossHair; 를 통해서 Panel에 크기를 조절하기 위함입니다. ▣ WeaponManager코드는 총을 쏘는 스크립트를 가져오기 위함입니다. ▣ 총을 쏘면 Mathf.Lerp 함수를 이용해서 서서히 크기를 조절합니다. https://docs.unity3d.com/kr/530/ScriptReference/.. 2024. 1. 18.
유니티 총 파티클효과 ▣ ParticleSystem 을 가져와서 Play()함수로 재생이 가능합니다. https://docs.unity3d.com/kr/2022.3/Manual/class-ParticleSystem.html 파티클 시스템 - Unity 매뉴얼 Particle System 컴포넌트는 씬 안에 다수의 작은 2D 이미지를 생성하고 애니메이션하여 액체, 구름 및 불꽃 같은 유체 엔티티를 시뮬레이션합니다. 파티클 시스템과 그 용도에 대한 전체 개요는 파 docs.unity3d.com 2024. 1. 17.
유니티 카메라쉐이크 ▣ 코루틴 호출 시 -> 카메라 오지지 널 위치 저장 -> whlie문을 이용해서 흔들기는 시간까지 반복 -> 랜덤으로 흔들기 강도만큼 곱하기 저장 -> 카메라 위치 x, y, z 각각 랜덤으로 만든 값을 더하기 하여 흔들기 -> 흔들기가 끝나면 다시 원래 위치로 초기화 ▣ 발사버튼을 클릭하면 카메라쉐이크 코루틴을 호출합니다. https://docs.unity3d.com/kr/2022.3/Manual/Coroutines.html 코루틴 - Unity 매뉴얼 코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있습니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니 docs.unity3d.com 2024. 1. 17.
유니티 GetAxis 오류 해결방법 ▣ Project Settings -> Player -> Configuration -> Active Input Handing* 을 Both으로 설정하면 됩니다. 2024. 1. 16.
유니티 머티리얼 핑크색 오류 해결방법 ▣ 에셋을 불러왔을 때 Render 방식에 따라 이렇게 핑크색으로 나오는 경우가 있습니다. 이럴 때 해결하는 방법 두 가지가 있습니다. ▣ 먼저 Edit->Project Settings에 ▣ Graphics에 Scriptable Render Pipline Settings URP를 다른 걸 지정하면 됩니다. ▣ 그럼 이렇게 핑크색 오류가 해결됩니다. ▣ 또 다른 방법으로는 Edit->Graphics Tier->Materials->Convet Selected Built-in Materials to URP를 선택하면 됩니다. 2024. 1. 16.
유니티 총알 경로 그리기 ▣ 프리팹으로 만든 총알에 경로를 그리기 위해서는 Component에 Trail Renderer를 추가합니다. https://docs.unity3d.com/kr/2021.3/Manual/class-TrailRenderer.html Trail Renderer 컴포넌트 - Unity 매뉴얼 Trail Renderer 컴포넌트는 움직이는 게임 오브젝트 뒤에 폴리곤 트레일을 렌더링합니다. 이동하는 물체의 움직임이나 이동하는 물체의 경로 또는 위치를 강조할 때 사용할 수 있습니다. docs.unity3d.com ▣ Trail Renderer 컴포넌트는 움직이는 게임 오브젝트 뒤에 폴리곤 트레일을 렌더링합니다. 이동하는 물체의 움직임이나 이동하는 물체의 경로 또는 위치를 강조할 때 사용할 수 있습니다. ▣ 기본적으.. 2024. 1. 14.
유니티 - [마우스 클릭시 게임오브젝트 이동] ▣ 게임오브젝트 생성, player오브젝트에는 스크립트 추가, AttackPos1은 콜라이더 추가 https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html Unity - Scripting API: Camera.ScreenToWorldPoint World space coordinates can still be calculated even when provided as an off-screen coordinate, for example for instantiating an off-screen object near a specific corner of the screen. Screenspace is defined in pixels. The.. 2023. 10. 5.
유니티 [부모,자식오브젝트 분리] ▣ 안녕하세요. 이번장에서는 부모, 자식 오브젝트를 분리하는 코드를 공부해 보겠습니다. ▣ 먼저 게임 오브젝트 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.
유니티 - [회전과 방향 전환] ▣ 이번장에서는 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.
유니티 - [폭발효과, 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.
유니티 - [글로벌좌표, 로컬좌표, 이동, Space.World] ▣ 안녕하세요. 이번장에서는 글로벌과 로컬 좌표에 대해 그리고 이동에 대해 공부해보겠습니다. ▣ 우선 기본적으로 하나의 플레이어를 생성해주시고 PlayerManager라는 스크립트를 넣어주세요. 그리고 Rotation 좌표에 x값을 40으로 해서 플레이어를 돌려주세요. 그리고 씬 메뉴 위에 있는 메뉴에서 Local을 눌러 플레이어가 어디 방향을 보고 있는지 확인해주세요. ▣ 그리고 이번에는 Global로 좌표 기준을 바꿔보세요. 그럼 아까와 다르게 바라보는 방향에 대한 기준 좌표가 바뀐 걸 확인할 수 있습니다. 이번에는 스크립트로 이동해서 직접 글로벌과 로컬을 비교해보겠습니다. ▣ transform.Translate(move * Time.deltaTime, Space.Self)로 입력을 해주세요. Spa.. 2022. 3. 21.
유니티 - [텍스트를 오브젝트로 제작, UI Text 오브젝트로 Text Mesh] ▣ 안녕하세요. 이번장에서는 Ui Text를 오브젝트 형식으로 제작하는 걸 해보겠습니다. ▣ 3D프로젝트를 생성해주시고, 플레이어와 큐브를 이용하여 트리들을 배치해주세요. 색도 자유롭게 넣어주세요. ▣ 먼저 기본 UI Text를 넣어보겠습니다. ▣ 이렇게 Text에 test라는 글을 입력하고 크기를 수정해주세요. 그리고 플레이를 해보겠습니다. ▣ 그럼 캔버스 우리 시점에 따라 UI Text가 보이는 걸 확인할 수 있습니다. 하지만 우리가 하고 싶은건 각각 오브젝트별로 Text를 그리고 싶습니다. 그럴 때 Text Mesh를 사용하면 됩니다. ▣ 우선 오른쪽 마우스를 눌러서 빈 오브젝트를 생성합니다. ▣ 빈오브젝트에 위치를 초기화해주시고, 컴포넌트를 추가하겠습니다. Text Mesh를 추가해주세요. ▣ 그.. 2021. 9. 5.