[ Unity ]/- 유니티 실습124 유니티 재시작시 플레이어 위치 설정 ▣ FindSpawnPoint() 메서드:GameObject.FindWithTag("SpawnPoint")를 사용해 SpawnPoint 태그를 가진 오브젝트를 찾습니다. 이 오브젝트의 Transform을 spawnPoint로 설정합니다. 이렇게 하면 씬이 재시작될 때마다 spawnPoint를 다시 참조할 수 있어, Missing 문제를 해결할 수 있습니다. SpawnPoint 오브젝트가 씬에 포함되어 있어야 하며, 태그는 SpawnPoint로 설정해야 합니다.▣ OnSceneLoaded 이벤트:씬이 재시작되면 OnSceneLoaded 이벤트에서 FindSpawnPoint()로 spawnPoint를 다시 찾고, MoveToSpawnPoint()를 통해 플레이어를 초기 위치로 이동시킵니다. 2024. 11. 7. 유니티 비활성화 오브젝트 찾는 함수(GetChild) ▣ transform.GetChild는 Unity에서 특정 부모 객체의 자식 객체를 인덱스로 참조하여 가져올 수 있게 해주는 메서드입니다. 이 메서드를 사용하면 부모 객체의 하위 객체(자식 객체)에 쉽게 접근할 수 있으며, 자식 객체를 수정하거나 특정 작업을 수행할 때 유용합니다. 2024. 10. 30. 유니티 특정 씬(scene)이 로드된 후에 호출되는 콜백 함수 ▣ OnLevelWasLoaded 함수 설명 OnLevelWasLoaded는 지정된 씬이 로드될 때 한 번 호출됩니다. 매개변수로는 로드된 씬의 인덱스(index)를 받습니다. Unity 5.4 이전 버전에서만 작동하며, 이후 버전에서는 SceneManager.sceneLoaded 이벤트로 대체되었습니다. ▣ SceneManager.sceneLoaded 사용법 Start 함수에서 SceneManager.sceneLoaded 이벤트에 OnSceneLoaded 콜백 함수를 등록합니다. OnSceneLoaded 함수는 씬이 로드될 때 호출되며, scene과 mode 매개변수를 받습니다. scene.name을 사용하여 로드된 씬의 이름을 콘솔에 출력합니다. OnDestroy 함수에서 이벤트를 해제하여 메모리 누.. 2024. 10. 29. 유니티 Door Base ▣ 코드설명DoorBase 클래스는 문을 제어하는 기본 클래스입니다. 이 클래스는 문이 정방향으로 열렸는지, 역방향으로 열렸는지를 관리하고, 그에 따라 닫기 애니메이션도 다르게 재생하도록 설계되었습니다. 주요 구성 요소:isOpen:문이 현재 열려 있는지 여부를 나타내는 bool 변수입니다. 문이 열렸다면 true, 닫혔다면 false입니다.LastOpenedForward:문이 마지막으로 정방향으로 열렸는지 추적하는 bool 변수입니다. true면 문이 정방향으로 열렸고, false면 문이 역방향으로 열렸음을 나타냅니다. 문이 닫힐 때 이 값을 참고하여 적절한 닫기 애니메이션(CloseForward, CloseBackward)을 선택합니다. 주요 메서드:Open(Transform player):플레이어의.. 2024. 10. 24. 유니티 Zombie AI Damage ▣ 코드 설명 - 부위별로 hit에 Tag를 전달하고 함수에서 해당 부위에 따라 Hp를 떨어뜨리고 애니메이션을 재생하는 코드 2024. 10. 21. 유니티 Zombie AI NavMeshLink ▣ NavMeshLink의 주요 속성:Start Point: 시작 지점. 에이전트가 이 지점에서 링크를 시작합니다. End Point: 끝나는 지점. 에이전트가 이 지점으로 링크를 통해 이동합니다. Width: 링크의 폭입니다. 에이전트가 넓은 경로를 따라 이동해야 한다면 이 값을 조정합니다. Cost Modifier: 링크의 비용을 설정하는 값입니다. 이 값은 경로 탐색 시 우선순위에 영향을 줍니다. 0이면 기본 경로 비용과 동일하게 동작하고, 더 높은 값은 비용을 증가시켜서 우선순위를 낮춥니다. Bidirectional: 에이전트가 양방향으로 링크를 사용할 수 있는지 여부를 나타냅니다. 체크하면 두 방향으로 이동이 가능합니다. Auto Update Position: 이 옵션을 켜면 Start Poin.. 2024. 10. 21. 유니티 Weapon Fire Delay ▣ 추가 코드 설명pistolFireDelay, shotgunFireDelay: 각 무기마다 발사 딜레이를 설정하는 변수입니다. 권총은 0.5초, 샷건은 1초로 설정되었습니다.canFire: 발사 가능 여부를 확인하는 변수입니다. 발사 후 딜레이가 끝나기 전까지는 다시 발사할 수 없도록 설정합니다.FireWithDelay 코루틴: 발사 딜레이를 적용하는 코루틴입니다. 발사 후 딜레이 시간이 끝날 때까지 대기한 후 다시 발사할 수 있도록 canFire를 true로 설정합니다. 2024. 10. 19. 유니티 FlashLight ▣ Light 컴포넌트 사용법 Light Type: Spot, Directional, Point, Area 등의 다양한 타입이 있으며, 손전등처럼 집중된 빛을 구현하려면 Spot Light를 사용합니다.Range: 빛이 미치는 거리를 조절합니다.Spot Angle: 빛이 퍼지는 각도를 설정할 수 있습니다. 손전등의 빛을 좁게 만들려면 이 값을 낮추고, 넓게 만들려면 값을 높입니다.Intensity: 빛의 밝기를 설정하는 값입니다. 값이 클수록 밝아집니다.Color: 빛의 색상을 설정할 수 있습니다.▣ Flashlight 설정 예시 Light 컴포넌트에서 기본적으로 다음과 같은 설정을 권장합니다:Type: Spot Range: 10~20 (사용 환경에 맞게 조정) Spot Angle: 30~60 (넓은 .. 2024. 10. 18. 유니티 Zombie AI NavMeshAgent ▣ Navigation (Obsolete) Navigation (Obsolete)는 Unity에서 오래된 네비게이션 시스템으로, 더 이상 유지 보수가 되지 않고 새로운 시스템으로 대체되었거나 개선된 시스템이 있습니다. Obsolete라는 의미는 더 이상 권장되지 않는 기능이나 API라는 뜻으로, 향후 업데이트에서 제거될 수 있음을 의미합니다. Navigation (Obsolete)는 유니티의 초기 네비게이션 시스템으로, 오래된 방식의 NavMesh 생성 및 설정을 제공합니다. 이는 간단한 AI 경로 탐색을 구현할 수 있지만, 최신 시스템에 비해 기능이 제한적이며, 확장성이나 유연성이 떨어집니다. 주요 특징 단순한 NavMesh 생성 및 AI 경로 탐색 기능 제공. 몇 가지 기본적인 경로 탐색 기능만 지원.. 2024. 10. 17. 유니티 3D UI ▣ 코드 설명 targetCamera: 카메라를 참조할 변수입니다. 만약 스크립트에 카메라를 할당하지 않았다면, 기본적으로 Camera.main을 사용하여 메인 카메라를 참조합니다.direction: UI와 카메라 사이의 방향을 계산합니다. 여기서 y 값을 0으로 설정하여 UI가 위아래로 기울어지지 않도록 처리합니다.Quaternion.LookRotation: 방향을 기준으로 회전을 계산하여 UI가 카메라를 향하도록 만듭니다.transform.rotation: 계산된 회전을 UI의 transform에 적용하여 실제로 UI가 회전합니다. 2024. 10. 17. 유니티 WeaponManager ▣ WeaponManager싱글톤 패턴을 사용하여 무기 인벤토리를 관리하고, 플레이어가 획득한 무기와 현재 장착된 무기를 관리합니다. 무기를 획득할 때 AddWeapon() 메서드로 인벤토리에 추가하고, EquipWeapon() 메서드로 무기를 장착합니다. ▣ Weapon각 무기에 WeaponType을 할당하여, 무기마다 고유한 타입을 지정합니다. 이 타입을 기준으로 WeaponManager와 PlayerManager가 무기 관련 기능을 처리합니다. ▣ PlayerManager플레이어의 입력 처리를 담당하며, WeaponManager로부터 현재 장착된 WeaponType에 따라 무기 애니메이션을 다르게 처리합니다. 마우스 우클릭으로 조준 애니메이션을, 좌클릭으로 발사 애니메이션을 실행합니다. W.. 2024. 10. 16. 유니티 ObstacleManager(장애물관리) ▣ 코드 설명 ObstacleManager 클래스장애물의 다양한 동작을 관리합니다. 장애물의 타입에 따라 이동, 회전, 가시성 제어를 수행합니다.enum ObstacleType장애물의 타입을 나타내며, 장애물이 이동, 회전, 가시성 제어, 발판으로 동작할 수 있도록 구분합니다.HandleMovement()장애물이 경로 지점을 따라 이동합니다. Vector3.MoveTowards()를 사용해 부드럽게 이동합니다.HandleRotation()지정된 축을 기준으로 회전합니다.HandleVisibility()Renderer의 enabled 속성을 통해 가시성을 제어합니다.OnCollisionEnter()플레이어와 충돌 시 호출됩니다. 충돌한 객체의 Tag가 "Player"인 경우 장애물의 타입에 따라 동작을 수.. 2024. 10. 15. 유니티 Player Fall GameOver ▣ 코드 설명떨어짐 감지:transform.position.y 값을 모니터링하여 fallThreshold (예: -10f)보다 작아지면 캐릭터가 떨어졌다고 간주합니다.게임 오버 처리:캐릭터가 떨어지면 GameOver() 함수가 호출됩니다. 게임 오버 상태를 추적하기 위해 isGameOver 변수를 사용합니다.게임 재시작:Invoke()를 사용해 2초 후에 현재 씬을 다시 로드합니다. SceneManager.LoadScene()를 통해 현재 활성화된 씬을 재시작합니다. 2024. 10. 15. 유니티 Player Die Ragdoll모드 ▣ Root (Hips):캐릭터의 중심이 되는 pelvis를 사용합니다. 이 본은 상체와 하체를 연결하는 중심입니다.Left Hips / Right Hips:왼쪽과 오른쪽 다리의 상단 부분에 해당하는 thigh_l 및 thigh_r를 사용합니다. 이 본들은 다리의 시작점이며 관절의 중요한 부분입니다.Left Knee / Right Knee:무릎에 해당하는 본으로 calf_l와 calf_r를 사용합니다. 이 본들은 허벅지와 종아리를 이어주는 역할을 합니다.Left Arm / Right Arm:왼팔과 오른팔의 상단에 해당하는 upperarm_l 및 upperarm_r를 사용합니다.Left Elbow / Right Elbow:팔꿈치 부분으로 lowerarm_l 및 lowerarm_r를 사용합니다.Middle .. 2024. 10. 14. 유니티 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. 이전 1 2 3 4 ··· 6 다음