[ Unity ]131 유니티 Jumping ▣ 코드 설명LayerMask groundLayer:캐릭터가 닿을 수 있는 땅의 레이어를 지정합니다. Unity에서 레이어는 충돌 처리를 위한 그룹을 나눌 때 사용됩니다. groundLayer는 땅으로 간주할 레이어를 선택할 수 있도록 합니다.CheckIfGrounded() 함수:Raycast를 이용하여 캐릭터의 발 밑에 땅이 있는지 확인하는 함수입니다. Raycast는 캐릭터의 위치에서 아래쪽으로 발사되며, groundLayer에 속한 오브젝트와 충돌하는지 여부를 확인합니다.중력 적용 및 이동 처리:캐릭터가 공중에 있으면 중력이 지속적으로 적용되어 아래로 내려오게 되고, 착지했을 때는 중력에 의해 속도가 과도하게 증가하는 것을 막기 위해 velocity.y = -2f로 설정됩니다. controller... 2024. 10. 12. 유니티 Aim 상체 회전(애니메이션 상체 방향 문제) ▣ 코드 설명:LateUpdate() 함수는 모든 애니메이션이 적용된 후 마지막에 호출되기 때문에, 애니메이션으로 덮어쓰기 전에 상체 회전값을 강제로 덮어쓸 수 있습니다. Aim 모드일 때만 upperBody.localRotation 값을 수정하고, Aim 모드가 끝나면 원래 회전 값으로 복구합니다. 2024. 10. 11. 유니티 FogEffect ▣ 안개 효과 설정 방법 Unity 메뉴에서 설정하기: 안개 효과는 Lighting 설정 창에서 활성화할 수 있습니다.Window > Rendering > Lighting 메뉴로 들어갑니다. Scene 탭에서 Environment 섹션을 찾고, Fog 항목을 활성화합니다. ▣ 코드 설명 RenderSettings.fog = true;: 안개 효과를 활성화합니다.RenderSettings.fogColor = Color.gray;: 안개의 색상을 설정합니다. 이 예시에서는 회색을 사용했습니다.RenderSettings.fogDensity = 0.02f;: 안개의 밀도를 설정합니다. 값이 클수록 안개가 짙어집니다.RenderSettings.fogStartDistance = 10f;, RenderSettin.. 2024. 10. 11. 유니티 프로젝트 템플릿 메뉴 ▣ 2D (Built-In Render Pipeline) 설명: 이 템플릿은 기본 렌더 파이프라인을 사용하는 2D 게임 제작을 위한 템플릿입니다. 2D Sprite 작업 및 2D 물리 엔진을 쉽게 활용할 수 있습니다. 사용 예: 횡스크롤 액션 게임, 퍼즐 게임 등 2D 기반 게임 제작.▣ 3D (Built-In Render Pipeline) 설명: 기본 렌더 파이프라인을 사용하는 3D 게임 프로젝트 템플릿입니다. Unity의 기본 3D 기능을 활용하여 모델링, 텍스처링, 조명 등을 설정할 수 있습니다. 사용 예: 간단한 3D 게임이나 시뮬레이션 제작에 적합.▣ Universal 2D 설명: SRP(Scriptable Render Pipeline)를 사용하는 2D 프로젝트 템플릿입니다. SRP는 성능 최.. 2024. 10. 10. 유니티 슬로우 모드 ▣ 코드 설명 slowMotionScale: 슬로우 모드에서 적용할 시간 비율입니다. 예를 들어 0.5로 설정하면 게임 속도가 절반으로 느려집니다.defaultTimeScale: 기본 게임 속도입니다. 보통은 1로 설정합니다.isSlowMotion: 현재 슬로우 모드인지 여부를 저장하는 불리언 변수입니다.Input.GetKeyDown(KeyCode.Q): Q 키가 눌렸을 때 슬로우 모드를 토글(toggle)합니다.Time.timeScale: 게임의 시간 속도를 조정하는 핵심 변수입니다. 1은 정상 속도, 0.5는 절반 속도를 의미합니다.Time.fixedDeltaTime: 물리 계산에서 사용하는 시간 델타 값을 조정하여, 슬로우 모드에서도 물리 연산이 부드럽게 유지되도록 합니다. ▣ Time.fixed.. 2024. 10. 10. 유니티 Material Tiling ▣ Import Settings1. Texture Type: Default Default: 기본적으로 사용할 텍스처의 유형을 지정합니다. 주로 3D 모델에 사용하는 일반적인 텍스처에 대해 설정합니다. 만약 다른 유형(예: Normal Map, Sprite 등)을 사용할 경우 여기서 변경합니다.Normal Map: 3D 모델의 표면 질감을 표현하는 텍스처로, 빛의 반사를 통해 사실적인 표면을 구현합니다. Editor GUI and Legacy GUI: 유니티 에디터 내의 GUI에 사용되는 텍스처입니다. Sprite (2D and UI): 2D 게임 및 UI 요소에서 사용되는 텍스처입니다. Cursor: 커서 이미지로 사용될 텍스처입니다. Cookie: 라이트 쿠키로 사용되는 텍스처입니다. 조명에서 특정 패.. 2024. 10. 10. 유니티 AI 상태 코드 ▣ 코드 설명 MonsterState 열거형(enum):몬스터의 상태를 열거형으로 정의하여, 순찰, 추적, 공격, 도망, 대기, 죽음 등의 상태를 관리합니다.Update() 함수:Update() 함수에서 상태에 따라 적절한 동작을 수행합니다. 각 상태에 해당하는 함수를 호출하고, 일정한 조건을 만족하면 상태 전환을 처리합니다.상태 전환 처리:TransitionState() 코루틴 함수가 상태 전환을 처리하며, 각 상태 후 지정된 대기 시간 동안 몬스터가 다른 동작을 하지 않도록 합니다.각 상태 함수:Patrol(): 몬스터가 순찰 경로를 따라 이동합니다. Chase(): 타겟(플레이어)을 추적합니다. Attack(): 타겟을 공격합니다. Evade(): 타겟으로부터 도망칩니다. Idle(): 일정 시간 .. 2024. 10. 4. 유니티 3D Weapon Fire(RayCast, 반동, 쉐이크) ▣ 카메라 쉐이크(Camera Shake) 기능 설명: 총을 발사할 때 카메라가 일시적으로 흔들리면서 강렬한 반동 효과를 제공하는 기능입니다. 카메라의 월드 좌표계를 기준으로 카메라를 무작위로 흔들고, 흔들림이 끝난 후 원래 위치로 복구하는 방식입니다. 동작: 카메라의 원래 위치를 저장하고, 무작위로 X, Y 축 방향에 작은 오프셋을 더해 흔들린 효과를 줍니다. 시간이 지나면 카메라를 원래 위치로 복구합니다. 코드 구조: StartCameraShake(): 카메라 쉐이크를 시작하는 함수로, 기존 쉐이크 코루틴이 진행 중이면 중지하고 새로운 코루틴을 시작합니다. CameraShake(float duration, float magnitude): 일정 시간 동안 카메라에 무작위 흔들림을 적용하는 코루틴입니다... 2024. 10. 3. 유니티 3D 아이템 감지(BoxCast) ▣ 코드 설명 boxSize: BoxCast의 크기를 정의하는 변수로, Vector3 타입으로 x, y, z 축에서 박스의 크기를 설정합니다. 박스의 절반 크기를 사용하여 충돌 감지를 수행합니다.예: new Vector3(1f, 1f, 1f)는 1x1x1 크기의 박스를 의미합니다. castDistance: BoxCast가 얼마나 멀리 감지할지를 결정하는 거리 값입니다. 박스가 이 거리만큼 직선으로 나아가며 충돌을 감지합니다. itemLayer: 감지할 대상의 레이어를 설정하기 위한 변수입니다. 특정 레이어에 속한 오브젝트들만 감지하려면 이 값을 설정합니다.예: 아이템 레이어를 설정해 불필요한 오브젝트와의 충돌을 무시할 수 있습니다.debugDuration: 디버그 라인이 화면에 얼마나 오래 보일 지를 설.. 2024. 10. 2. 유니티 Build Setting ▣ 플랫폼 설정 (PC, Mac & Linux Standalone 선택) 먼저, 프로젝트가 PC용으로 빌드되도록 설정해야 합니다. 이 작업을 수행하려면 다음 단계를 따릅니다.File > Build Settings 메뉴를 엽니다. Platform 목록에서 "PC, Mac & Linux Standalone"을 선택합니다. "Platform" 아래에서 "Target Platform"을 Windows로 설정합니다. Switch Platform 버튼을 클릭하여 플랫폼을 전환합니다. 이제 PC 플랫폼으로 빌드할 준비가 되었습니다. ▣ Build Settings에서 Windows 플랫폼을 선택할 때 나타나는 다양한 옵션들, 특히 Architecture, Copy PDB files와 같은 옵션들은 게임 빌드 시 중요한.. 2024. 10. 2. 유니티 Avatar Make 활용 조준, 발사 애니 재생 ▣ Animation Type (애니메이션 타입) None: 애니메이션이 없는 경우입니다. 캐릭터를 애니메이션 없이 사용할 때 선택합니다. Legacy: 이전에 사용하던 애니메이션 시스템입니다. Unity 3.x 버전까지 사용되었으며, 일반적으로 새로운 프로젝트에서는 사용하지 않습니다. Generic: 기본 애니메이션 타입입니다. 비 인간형 캐릭터(동물, 로봇 등)의 애니메이션에 적합합니다. Mixamo의 캐릭터는 주로 인간형이므로 이 타입은 잘 사용되지 않습니다. Humanoid: 인간형 캐릭터를 위한 애니메이션 타입입니다. Mixamo 캐릭터는 대부분 Humanoid 리그로 설정해야 합니다. 이 옵션을 사용하면 Unity에서 제공하는 Avatar 시스템을 사용해 캐릭터의 애니메이션을 제어할 수 있습니.. 2024. 10. 1. 유니티 3D Aim Animation Rigging ▣ Animation Rigging은 Unity에서 제공하는 강력한 기능으로, 캐릭터 애니메이션에 다양한 제약(Constraints)을 추가하여 더 정밀하게 제어하고 상호작용할 수 있게 해주는 시스템입니다. 이 기능은 캐릭터가 게임 내에서 동적으로 환경과 상호작용하거나, 애니메이션 도중 실시간으로 목표를 향해 움직이는 등의 동작을 가능하게 합니다. ▣ Rig Builder Rig Builder는 Unity의 Animation Rigging 시스템에서 다양한 리깅 설정을 캐릭터에 적용하기 위한 핵심 컴포넌트입니다. 이 컴포넌트는 캐릭터에 다양한 리그(Rig)를 적용하고, 이를 통해 캐릭터의 애니메이션에 제약을 설정할 수 있도록 도와줍니다. Rig Builder는 여러 Rig를 관리하고, 이들이 캐릭터 애.. 2024. 9. 30. 유니티 2D AI 순찰, 공격, 도망, 랜덤이동 시스템 ▣ 코드 설명 patrolPoints: AI가 순찰할 경로의 지점들을 배열로 설정합니다. currentPoint: 현재 AI가 향하고 있는 순찰 지점의 인덱스입니다. 모든 순찰 지점을 순서대로 이동하며, 마지막 지점에 도달하면 다시 처음으로 돌아갑니다. ▣ 코드 설명 attackRange: AI가 플레이어를 공격할 수 있는 최대 거리입니다. attackCooldown: AI가 공격 후 다시 공격하기까지의 시간입니다. Attack(): 플레이어를 공격할 때 실행되는 함수입니다. ▣ 코드 설명 evadeRange: 플레이어가 이 범위 안으로 들어오면 AI가 도망가기 시작합니다. direction: AI가 플레이어의 반대 방향으로 이동합니다. ▣ 코드 설명 SetRandomDirection():.. 2024. 9. 30. 유니티 Movement 애니메이션(걷기, 뛰기) ▣ 애니메이터(Animator) 설정Step 1: Animator에서 Blend Tree 만들기 Animator Controller를 생성하고, 캐릭터에 추가합니다. Base Layer에서 상태(State)를 하나 추가한 후, 그 상태를 Blend Tree로 변경합니다. Blend Tree를 선택한 후, Blend Tree에서 파라미터를 사용해 애니메이션을 제어합니다. 파라미터로는 Horizontal(A, D 키)과 Vertical(W, S 키)를 사용합니다.Step 2: Blend Tree에 애니메이션 추가 Blend Type을 2D Simple Directional로 설정합니다. 각각의 방향에 따른 애니메이션 클립을 Blend Tree에 추가합니다. 예를 들어, W 키로 앞으로 이동할 때는 Forwa.. 2024. 9. 28. 유니티 Character Controller 바닥 충돌 ▣ Editor에서 Character Controller 컴포넌트의 Skin Width 값을 수정할 수 있습니다. ▣ 코드에서도 CharacterController.skinWidth 속성을 수정하여 설정할 수 있습니다. ▣ Skin Width는 Character Controller가 충돌 감지를 처리할 때 매우 중요한 속성입니다.이 값은 캐릭터가 벽이나 장애물과 너무 가까이 있을 때 발생할 수 있는 작은 충돌 문제를 방지하는 데 도움을 줍니다.예를 들어, 캐릭터가 작은 오브젝트에 부딪혔을 때, 그 오브젝트를 무시하고 계속 이동할 수 있게 해 줍니다.일반적으로 너무 작은 값으로 설정하면 캐릭터가 충돌에 끼이는 현상이 발생할 수 있고, 너무 큰 값으로 설정하면 캐릭터가 벽에 붙지 않고 멀리 떨어지는 문제가.. 2024. 9. 28. 유니티 2D ParticleManager (파티클 프리팹으로 관리) ▣ ParticleManager 코드 설명 ParticleManager는 싱글톤 패턴을 사용하여 어디서든 접근 가능하게 만들고, 이름으로 파티클을 선택하여 원하는 위치에서 애니메이션을 재생하고 파티클을 관리하는 클래스입니다. ▣ 주요 기능 설명 싱글톤 패턴 구현:public static ParticleManager Instance { get; private set; }로 싱글톤 인스턴스를 생성하여 어디서든 ParticleManager.Instance를 통해 접근할 수 있게 합니다. Awake()에서 싱글톤 인스턴스를 초기화하며, 이미 인스턴스가 존재할 경우 중복되는 오브젝트를 파괴합니다. DontDestroyOnLoad(gameObject)로 씬이 전환되더라도 ParticleManager가 파괴되지 않도.. 2024. 9. 27. 유니티 UI (Hp Slider, Text) ▣ 코드 설명 이 코드는 PlayerManager 클래스에서 플레이어의 체력과 점수를 관리하고, 점수 증가 시 점수 텍스트 색상을 빨간색으로 잠시 변경한 뒤 원래 색상으로 되돌리는 기능을 제공합니다. 코루틴을 사용하여 점수 텍스트 색상이 변경되는 동작을 비동기적으로 처리합니다. ▣ 변수 설명 public Slider hpSlider;HP 슬라이더를 연결하는 변수로, 플레이어의 체력을 시각적으로 표현하는 UI 요소입니다.public int maxHp = 100;플레이어의 최대 체력을 설정합니다.private int currentHp;현재 체력을 저장하는 변수입니다.public Image fillImage;슬라이더의 Fill 오브젝트(HP 바의 채워지는 부분)의 이미지를 참조하기 위한 변수입니다.public.. 2024. 9. 26. 유니티 2D RayCast활용 아이템획득 ▣ 코드 내 주요 함수 및 개념 설명: Input.GetKeyDown(KeyCode.E):E 키가 눌렸을 때 실행되는 조건입니다. 이 조건을 만족하면 그 아래의 코드를 실행합니다. KeyCode.E는 E 키를 나타내며, 키 입력을 감지하는 데 사용됩니다. ▣ Debug.DrawLine():화면에 선을 그려주는 디버그용 함수입니다. 여기서는 플레이어의 위치에서 오른쪽으로 1 단위 거리만큼 빨간색 선을 그려줍니다. 이 선은 Raycast의 탐지 범위를 시각적으로 보여주기 위한 용도로 사용됩니다. 게임 중 1초 동안 선이 표시됩니다.▣ Physics2D.Raycast():플레이어 위치에서 오른쪽으로 Raycast를 쏘아 weaponMake 레이어에 속한 오브젝트를 탐지하는 함수입니다. RaycastHit2D .. 2024. 9. 25. 유니티 2D RayCast, ShotGun RayCast ▣ 코드설명: Update에서 rayDirection을 업데이트:Update 함수에서 mousePosition과 rayDirection을 매 프레임마다 업데이트하도록 했습니다. 마우스의 위치를 기준으로 총구(bulletPos)에서 마우스 방향으로의 벡터를 계산하여 저장합니다.총구 회전 로직:마우스 위치에 따라 총구가 회전하도록 rotationZ을 계산하여 transform.rotation에 적용했습니다. 이제 총구가 마우스를 향하게 됩니다.디버그 시각화:Debug.DrawRay로 레이캐스트를 시각적으로 확인할 수 있도록 했습니다. 레이캐스트가 마우스 방향으로 올바르게 나가는지 확인할 수 있습니다. ▣ 코드설명:샷건 발사 구현:pelletCount: 샷건 발사 시 나가는 탄환의 개수를 의미합니다. .. 2024. 9. 24. 유니티 Scene FadeIn FadeOut ▣ SceneManager.LoadScene:지정한 씬을 로드하는 함수입니다. 이 코드를 통해 nextSceneName 변수에 저장된 씬을 로드합니다. Image.color:Image 컴포넌트의 색상을 설정하거나 가져오는 속성입니다. 색상값을 조정하여 알파(투명도)를 조절할 수 있습니다. Mathf.Lerp:두 값 사이를 선형적으로 보간하는 함수입니다. 주어진 시간에 따라 startAlpha에서 endAlpha로 값이 부드럽게 변하게 합니다. ▣ Player 및 Scene을 로드하는 스크립트 싱글톤으로 작성 후 상속한 다음 씬을 활성화 및 사운드 재생하는 코드 추가 https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSc.. 2024. 9. 24. 유니티 애니메이션 이벤트 ▣ 유니티에서 애니메이션 이벤트(Animation Events)는 애니메이션 클립이 재생되는 도중 특정 타이밍에 메소드 호출이 필요할 때 사용됩니다. 이를 통해 애니메이션 클립 중간에 원하는 기능을 실행할 수 있습니다. 예를 들어, 캐릭터가 점프하는 애니메이션 중 발이 땅에 닿는 순간 소리를 재생하거나, 적이 공격하는 애니메이션의 특정 타이밍에 데미지를 줄 수 있습니다. ▣ 애니메이션 이벤트는 해당 오브젝트에 있는 스크립트에 있는 함수만 호출가능합니다. https://docs.unity3d.com/ScriptReference/AnimationEvent.html Unity - Scripting API: AnimationEventAnimation events support functions that tak.. 2024. 9. 23. 이전 1 2 3 4 5 ··· 7 다음