본문 바로가기

유니티72

유니티 ai NavMeshAgent ▣ 먼저 Packages에서 AI Navigation를 추가합니다. ▣ Zombie 오브젝트에 Nav Mesh Agent Component 추가합니다. ▣ Nav Mesh Agent Component를 통해서 Zombie 오브젝트 AI를 제어합니다. https://docs.unity3d.com/kr/2021.3/Manual/class-NavMeshAgent.html 내비메시 에이전트 - Unity 매뉴얼 NavMeshAgent 컴포넌트는 목표를 향해 움직일 때 서로를 피해가는 캐릭터 생성에 유용합니다. 에이전트는 내비메시를 이용하여 게임 월드에 대해 추론하고 서로 또는 기타 움직이는 장애물을 피할 docs.unity3d.com ▣ Zombie 스크립트를 생성해서 추가하고 스크립트에 AI에 대한 네임스페이.. 2024. 1. 20.
유니티 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.
유니티 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.
유니티 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.
언리얼엔진5 65장 [C++ 함수] ▣ .h 헤더파일에서 void Moveing() const로 함수 선언 ▣ 함수 선언 방법 : void(반환형) Moveing(함수이름) (매개변수) const 정적설정, 순으로 선언 ▣ 함수 끝에 const를 붙이면 함수 안에서 값 수정 불가 ▣ ATestActor : A는 엑터를 의미 ▣ ::는 멤버함수로 정의하기 위함 ▣ BeginPlay() 함수 안에 Moveing(); 함수 호출 ▣ 컴파일 저장 후 확인 2023. 6. 23.
언리얼엔진5 63장 [C++ 블루프린트 생성 및 매쉬생성] ▣ C++ 클래스에서 오른쪽마우스를 클릭 -> Create Blueprint 선택하여 블루프린트로 생성 ▣ 이름 및 저장 위치 지정 후 생성 ▣ 블루프린트에서 Viewport에 내가 원하는 Mesh를 드래그하여 지정 ▣ 원이 엑터의 중심축입니다. 중심축을 맞춰서 매쉬를 배치 후 디테일탭에 값 조절 후 컴파일 ▣ 완성한 블루프린트를 두 개를 놓고 각각 다른 값을 적용한 다음에 플레이 2023. 6. 22.
언리얼엔진5 62장 [C++ 오브젝트좌우이동] ▣ GetSafeNormal() : 벡터의 값을 정규화, 예로 복잡한 벡터값은 필요 없기 때문에 우리 방향을 지정하기 위해 값을 1, -1, 0 이런 식으로 정규화 ▣ 이동거리보다 크면 이동한 위치가 시작위치로 변경돼야 하기 때문에 정규화를 곱하여 StartLocation에 더해서 대입 ▣ BoxVeloctiy = -BoxVeloctiy : 변수에 -변수를 대입하면 -변수로 되고 -변수에 -변수를 대입하면 +가 된다. https://docs.unrealengine.com/4.26/en-US/API/Runtime/Core/Math/FVector/GetSafeNormal/ FVector::GetSafeNormal Gets a normalized copy of the vector, checking it is .. 2023. 6. 22.
언리얼엔진5 61장 [C++ 벡터사이 거리 Distance, VisibleAnywhere] ▣ UPROPERTY(VisibleAnywhere) : 편집할 수 없고 에디터에서 데이터를 보기만 하게 하는 기능 ▣ DistanceNumber = FVector::Distance(StartLocation, CurrentLocation); : 벡터 1과 벡터 2 사이의 거리를 반환하는 함수 ▣ FVector::Dist(StartLocation, CurrentLocation) : 벡터 1과 벡터 2 사이의 거리를 반환하는 함수 위에 함수와 동일 ▣ :: 콜론 두 개는 범위지정 연산자, 클래스에 접근 ▣ 컴파일 저장 후 확인 2023. 6. 21.
언리얼엔진5 60장 [C++ DetaTime, 플랫폼지정] ▣ UPROPERTY(EditAnywhere, Category = "Player Moving") : Category 플랫폼 이름 추가 ▣ FVector에 값을 + 더하기 하여 위치 변경가능 ▣ DetaTime : 마지막 프레임 업데이트 이후 경과된 시간, 다시 말해서 각 렌더링 프레임 사이의 시간 ▣ DetaTime을 곱해야지 컴퓨터 사양별로 다르게 보이는 게 아닌 프레임을 맞춰서 작동 ▣ 컴파일 저장 후 플랫폼 추가 및 이동 확인 https://www.parallelcube.com/2017/10/25/why-do-we-need-to-use-delta-time/ Why do we need to use Delta Time? – Parallelcube You’ve probably seen an old gam.. 2023. 6. 20.
유니티 - [충돌시 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.
언리얼엔진5 57장 [C++ 엑터위치함수] ▣ SetActorLocation() : 엑터의 위치는 변경하는 함수, 매개변수 안에 FVector에 값을 넣어야 한다. ▣ +Add 버튼을 클릭하고 컴포넌트 추가 및 모양 추가도 가능 ▣ 컴파일 후 시작버튼을 클릭하면 지정한 Location으로 위치 이동 ▣ 매개변수에 FVector 변수로도 지정 가능 ▣ 컴파일 후 시작하면 MyVector 위치로 이동 2023. 6. 16.