본문 바로가기

[ Unity ]/- 유니티 실습130

유니티 뛰는 애니메이션 ▣ 플레이어 애니메이션에 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.
유니티 플레이어 이동, 회전(Defalit input system, new input system) ▣ 기존 입력시스템으로 이동과 마우스 회전하는 코드를 작성하겠습니다.Project Settings에 Input Manager에 Axes 값을 확인합니다.  ▣ input.GetAxis() 함수를 이용한 플레이어 이동 코드입니다. transform.right, transform.forward를 곱한 이유는 플레이어 방향으로 이동하기 위함입니다.Character Controller를 이용한 이동하는 코드입니다.   ▣ 마우스 회전도 Input.GetAxis() 함수를 이용해서 값을 받아왔고 Rotation에 X 값이 위아래 회전, Y값이 오른쪽 왼쪽 회전이기 때문에 위에 코드를 이런 식으로 진행했습니다. https://docs.unity3d.com/kr/530/ScriptReference/Mathf.Clam.. 2024. 1. 16.
유니티 GetAxis 오류 해결방법 ▣ Project Settings -> Player -> Configuration -> Active Input Handing* 을 Both으로 설정하면 됩니다. 2024. 1. 16.
유니티 머티리얼 핑크색 오류 해결방법 ▣ Render Pipeline Converter에서 Material Upgrade(머티리얼 업그레이드)를 해야 하는 이유는Unity의 렌더링 파이프라인(Render Pipeline)이 변하면서,기존의 Standard Shader를 사용하는 머티리얼들이 새로운 파이프라인에서 제대로 렌더링 되지 않거나 성능에 문제가 발생할 수 있기 때문입니다.Unity는 현재 다음과 같은 주요 렌더링 파이프라인을 제공합니다:Built-in Render Pipeline (기본 렌더 파이프라인): 기존 Unity 프로젝트에서 주로 사용되던 파이프라인입니다. Universal Render Pipeline (URP): 성능과 호환성을 중시한 경량 렌더 파이프라인입니다. High Definition Render Pipeline (.. 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.
유니티 photon서버 https://www.photonengine.com/ Multiplayer Game Development Made Easy | Photon Engine EssentialPhoton Details Discover a summary of our product range, notable features, the power of the Photon Cloud, and our cost-effective pricing plans. HAVE A LOOK www.photonengine.com ▣ photon 홈페이지에서 로그인 후 Create a new app를 추가한 다음에 App ID를 복사합니다. ▣ 유니티 에셋에 들어가서 Photon pun 2 에셋을 추가합니다. ▣ 에셋을 임포트 한 다음에 Windows에 P.. 2024. 1. 1.
유니티 - [마우스 클릭시 게임오브젝트 이동] ▣ 게임오브젝트 생성, 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.
유니티 - [AddForce 종류] https://docs.unity3d.com/kr/530/ScriptReference/Rigidbody.AddRelativeForce.html Rigidbody-AddRelativeForce - Unity 스크립팅 API Adds a force to the rigidbody relative to its coordinate system. docs.unity3d.com ▣ AddRelativeForce() : 로컬좌표 기준으로 힘을준다. ▣ AddForce() : 월드좌표 기준으로 힘을 준다. 2023. 7. 1.
유니티 - [충돌시 tag 변경] ▣ gameObject.tag = "Hit" , collision.gameObject.tag = "Hit" ▣ 충돌 시 나의 tag 뿐만 아니라 상대방에 tag도 변경가능 2023. 6. 20.
유니티 - [GetComponent 비활성화] ▣ GetComponent().enabled = false; ▣ GetComponent().useGravity = false; 로 해당 컴포넌트 비활성화 ▣ MeshRenderer m_renderer, Rigidbody rb : 참조 캐싱, 원하는 기능을 메모리에 저장해서 사용 ▣.으로 접근하여 해당 컴포넌트에 다양한 기능 사용가능 2023. 6. 20.
유니티 - [Time] ▣ Time.time : 프로젝트 재생 시작 후 경과한 시간 초 단위로 반환합니다. ▣ Time.detaTime : 마지막 프레임이 완료된 후 경과한 시간을 초 단위로 반환합니다. 이 값은 게임이나 앱이 실행될 때 초당 프레임(FPS) 속도에 따라 다릅니다. https://docs.unity3d.com/kr/2021.3/Manual/TimeFrameManagement.html 중요 클래스 - Time - Unity 매뉴얼 Unity의 Time 클래스가 제공하는 중요한 기본 프로퍼티를 사용하여 프로젝트에서 시간과 관련된 값으로 작업할 수 있습니다. docs.unity3d.com 2023. 6. 20.
유니티 - [오브젝트 색 변경] ▣ GetComponent().material.color = Color.red; 로 Mesh Renderer컴포넌트에 Material를 접근하여 색 변경, Color. 로 접근하게 되면 여러 색으로 변경 가능 ▣ 컴파일 저장후 플레이버튼을 누르고 닿게 되면 색 변경 2023. 6. 20.
유니티 - [2D 오브젝트 따라다니는 AI] ▣ 2D 스프라이트를 생성해 주세요. Square로 Player이름으로 , Circle를 Zombie로 생성합니다. ▣ Zombie 오브젝트에 ZombieManager라는 스크립트를 생성하고 코드처럼 작성합니다. ▣ Vector2.MoveTowards(자신에 위치, 타깃위치, 이동스피드 * 경과시간); ▣ 저장하고 시작버튼을 클릭하면 Zombie 오브젝트가 Player오브젝트 방향으로 이동합니다. https://assetstore.unity.com/top-assets/top-new?aid=1101lvILc 2023. 5. 9.
유니티 [2D 물리경계선수정, 타일맵 대각선경계선수정] ▣ 안녕하세요. 2D로 게임을 제작하면서 대각선으로 된 스프라이트 오브젝트에 콜라이더를 다룰 때 어려움이 있습니다. 그리고 물리경계가 대각선이다 보니 타일맵으로 맵을 그리고 콜라이더를 추가할 때에도 스프라이트 외부로 콜라이더 나와서 콜라이더 경계가 이미지를 벗어나서 불편함이 있습니다. 그럴 때 이렇게 하시면 됩니다. ▣ 먼저 수정할 스프라이트를 클릭하고 Sprite Editor 메뉴로 갑니다. 그리고 Sprite Editor를 Custom Phsics Shape로 클릭하여 선택합니다. ▣ 그리고 수정할 이미지를 클릭하고 Generate를 클릭하게 되면 물리경계선이 보이게 됩니다. ▣ 네모모양을 이동해서 경계선을 수정한 다음에 Apply를 해서 저장합니다. ▣ 그런 다음에 스프라이트를 씬에 옮겨서 Poly.. 2023. 3. 8.
유니티 [부모,자식오브젝트 분리] ▣ 안녕하세요.이번장에서는 부모, 자식 오브젝트를 분리하는 코드를 공부해 보겠습니다. ▣ 먼저 게임 오브젝트 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.