-
Notifications
You must be signed in to change notification settings - Fork 5
11 11 대면 회의
sehyeon7 edited this page Nov 19, 2024
·
1 revision
e : 클리어 안 하고 자는
r : 클리어 하고 자는
t : gameover
→ test 용
- field
- Instance
- currentStage
- currentStageClear
- 현재 스테이지 클리어 여부
- clockController
- GameState
- gameState
- DEFAULT_SCENE
- 계속적으로 불러와지는 scene
- ENDING_SCENE
- 마지막 8 stage
- function
- Awake()
- DontDestroyOnLoad → 씬이 파괴되어도 안 없어지는
- Start()
- 시계 바늘 7:00로 초기화
- InitializeGame()
- SetStageClear()
- 스테이지 클리어 여부 관리
- 스테이지 클리어 조건 달성 시 호출
- Sleep()
- 플레이어가 Sleep 선택 시 호출
- 스테이지 클리어한 상태로 잠들기
- 시계 바늘 업데이트
- 7단계(8:45) 이후 클리어 시 게임 클리어
- 스테이지 클리어하지 못한 상태로 잠들기
- 이상현상 리스트 재생성 호출
- 스테이지 실패 시, 이상현상 리스트를 초기화, 재생성 해야 하므로
- AnomalyManager의 Stage Failure시 작동하는 함수 호출
- 시계 바늘 7:00로 초기화
- 클리어 상태 초기화
- 다음 스테이지에 대한 이상현상 확인 및 생성
- 현재 currentStage에 맞추어 이상현상을 생성해야 하므로
- AnomalyManager의 이상현상 Instantiate 용 함수를 호출
- LoadDefaultScene()
- 씬 초기화
- WakeUpPlayerAfterLoad()
- InstantiateAnomalyAfterLoad()
- GameClear()
- 엔딩신 불러오는 함수
- GetCurrentStage()
- 현재 스테이지 번호 반환
- IsStageClear()
- 현재 스테이지 클리어 여부 반환
- GetGameState()
- RestartGame()
- 추후 활용 가능한 UI 구성
- PauseGame()
- 추후 활용 가능한 UI 구성
- ResumeGame()
- 추후 활용 가능한 UI 구성
- Awake()
- 기능
- 스테이지 클리어 여부 관리
- 스테이지 클리어 여부 고려하여 Sleep 관리
- 시침 분침 조정 함수 호출
- 다음 스테이지에 대한 이상현상 확인 및 생성 → AnomalyManager의 이상현상 Instantiate 용 함수를 호출
- RestartGame의 필요성 논의 필요 → 보류하기
- 커서가 떠있는 상태에서 fadeout되는 버그 개선 필요
- 추가해야할 것 : GetCurrentStage 노트북에 반영
- field
- mainCamera
- fadeMaterial
- currentAlpha
- fadeCoroutine
- function
- Awake()
- OnEnable()
- OnDisable()
- StartFade(float targetAlpha, float duration)
- FadeRoutine(float targetAlpha, float duration)
- OnPostRenderCallback(Camera cam)
- Update()
- OnDestroy()
- 기능
- 잠에 드는 애니메이션이 구현되어 있는 Script
- DontDestroyOnLoad로 올라가있음
- field
- Instance
- anomalyPrefabs
- Anomaly1Manager ~ Anomaly31Manager 프리팹 보관용 리스트
- anomalyList
- 이상현상 리스트
- AnomalyCount
- random
- checkSpecificAnomaly
- 디버깅용
- SpecificAnomalyNum
- 디버깅용
- currentAnomalyInstance
- 현재 활성화된 이상현상 인스턴스
- function
- Awake()
- GenerateAnomalyList()
- 이상현상 리스트 생성
- 바로 전 것과 같으면 다시 돌리게
- GenerateRandomAnomaly()
- 50% 확률로 0, 나머지 확률로 1~31의 이상현상을 생성
- CheckAndInstantiateAnomaly()
- 현재 스테이지에 맞는 이상현상을 로드
- ResetAnomaliesOnFailure()
- 스테이지 실패 시 이상현상 리스트 재 생성
- 기능
- 이상현상 리스트업
- 연속 X
- 중복은 가능
- 틀리고 스테이지1으로 돌아간 경우 초기화
- 이상현상이 있는 스테이지인지 아닌지
- 이상현상 매니저가 prefab을 들고 있다가 여기서 instantiate
- 이상현상 리스트업
- field
- interactionRange
- interactableLayer
- interactionCursor
- InteractonCursor에는 inspector 상에서 Cursor이미지를 넣어줘야함
- playerCamera
- currentInteractable
- function
- Start()
- 광선에 맞으면 커서가 활성화되는 원리
- Update()
- 화면 중앙에서 광선이 나옴.
- OnDrawGizmos()
- test를 위해 구현 Scene에서 확인 가능
- 광선을 맞지 않으면 빨간색 맞으면 초록색
- Start()
- 기능
- Raycast 이용하여 상호작용 boundary 조정
- 커서 띄울지 말지 결정
- 방향을 감지
- 상호작용 키 클릭, 버튼 총괄 → 이상현상 매니저에게 클릭 플래그 전달 → 클리어 여부를 총괄 Gamemanager로 전달
- 상호작용 성공하고 플레이어가 자리로 돌아갔을 때 노트북과 상호작용 후 잠에 드는
- 자기자리 노트북 오브젝트에 태그를 걸어서 → 얘랑 상호작용하면 잠에 들게
- field
- GetInteractionPrompt();
- 상호작용 프롬프트 텍스트 반환 (예: "E키를 눌러 책상 조사하기")
- OnInteract();
- 상호작용 시 실행될 메서드
- CanInteract();
- 현재 상호작용 가능한지 여부 반환
- GetInteractionPrompt();
- 기능
- 상호작용 가능한 객체들이 구현할 인터페이스
- field
- promptMessage
- interactionRange
- canInteract
- function
- Start()
- 레이캐스트 감지를 위한 일반 콜라이더
- GetInteractionPrompt()
- OnInteract()
- CanInteract()
- Start()
- 기능
- field
- Instance
- hourHand
- minuteHand
- function
- Awake()
- 12시로 초기화되게 바꿔놓음
- SetTime(int stage)
- stage 1 at 7:00, stage 8 at 8:45
- minuteRoation → 6 degrees per minute
- hourRotation → 30 degrees per hour + 0.5 degrees per minute
- Awake()
- 기능
- 게임매니저한테 stage를 받아와서 시간 조정
- field
- walkSpeed
- runSpeed
- mouseSensitivity
- maxVerticalAngle
- minVerticalAngle
- walkBobSpeed
- walkBobAmount
- runBobSpeed
- runBobAmount
- cameraHeight
- footstepSound
- walkVolume
- runVolume
- walkPitch
- runPitch
- walkStepInterval
- runStepInterval
- sleepAnimationDuration
- wakeUpAnimationDuration
- sleepCameraAngle
- sleepCameraHeight
- playerCamera
- heldItem
- rb
- capsuleCollider
- audioSource
- screenFader
- verticalRotation
- currentSpeed
- stepTimer
- bobTimer
- originalCameraPos
- moveDirection
- isMoving
- isAnimating
- function
- Awake()
- Start()
- Update()
- FixedUpdate()
- SetupComponents()
- SetupPhysics()
- HandleInput()
- HandleMovement()
- HandleCamera()
- Sleep()
- SleepAnimation()
- WakeUpAnimation()
- HandleFootsteps()
- PlayFootstepSound()
- OnDisable()
- OnCollisionEnter(Collision collision)
- OnTriggerEnter(Collider other)
- SetHeldItem(FireExtinguisher item)
- 불이야! 이상현상에 필요한 함수
- IsHoldingItem()
- 현재 플레이어가 아이템을 들고 있는지 확인
- 기능
- Screenfader의 최적화 환경을 구현해놓음 (애니메이션)
- 자리에 앉아서 잠에드는 각도 조정으로 수정 예정
- 에디터 상에서 player에게 꼭 들어가는 것
- InteractionController
- Collider
- Rigidbody
- PlayerController
-
AnomalyManager 스크립트 : 이상현상을 소환하는 역할
- field
- GameObject ;
- function
- Start()
- Spawn()
- Spawn()
- Spawns the headless schoolgirl prefab at the specified location
- Start()
- field
-
Anomaly_ 스크립트 : 이상현상 상호작용을 담당
- field
- hasInteracted
- Ensures only one interaction occurs
- cameraTransform
- audioSource
- hasInteracted
- function
- Start()
- Find the main camera in the scene
- Update()
- Check the distance to the camera and play sound if within 5f
- Start playing audio if not already playing
- Stop playing audio if out of range
- GetInteractionPrompt()
- Returns the prompt text for interaction (e.g., displayed on cursor)
- CanInteract()
- Determines if interaction is currently possible
- OnInteract()
- Handles interaction with the headless schoolgirl
- Fades out over 2 seconds and then clears stage
- FadeOutAndClearStage(GameObject obj, float duration)
- Coroutine to gradually fade out, destroy the object, and set the stage clear
- Start()
- field
-
Scene안의 AnomalyManager ()에는 'AnomalyManager' 스크립트 적용
-
이상현상 prefab에는 'Anomaly_' 스크립트 적용
- 11/9 ~ 11/11 할당 작업
- 박동호
- InteractionController 개발 Done
- Anomaly4Manager - 노트북 여러개 (ID : 4) manager 구현
- 플레이어 룰북 노트북을 클릭하면 확대되게 수정되어야할듯
- 스테이지 넘어갈 때 잠들게 하는 상호작용 물체를 자기자리 의자로
- collider 설정까지 push하기로
- 자기자리로 가서 ‘의자’와 상호작용하고 잠에드는 코드로 ScreenFader 수정
- Anomaly26Manager - 불이야 manager 구현 Done
- 러시안룰렛 manger 구현
- 총 위치에 노트북을 두고 힌트
- 총 이용 안 하면 스테이지 reset되는
- 박상윤
- Anomaly8Manager - 고장난 마이크 (ID : 8) scene 구현
- Anomaly10Manager - 이상한 바닥 모양 (ID : 10) scene 구현 Done
- 서지희
- ClockController 수정 Done
- Anomaly15Manager - 에어컨 거미 (ID : 15) scene 구현
- Anomaly16Manager - 소개원실 벽 빨간 선 (ID : 16) scene 구현
- 신채환
SleepController 개발- 강의실 추가 모델링
- anomalyManager 내에서 구현하자
- 창문 Anomaly 추가 모델링
- Scene을 고치는 것보다 이상현상 AnomalyManager 스크립트 안에서 새로운 material을 instantiate하는 방법 → 바꿔치기
- 박동호
- 11/12 ~ 11/14 할당 작업
- 박동호
- Anomaly5Manager - 틈새녀 (ID : 5) scene 구현 (11/12 ~11/14)
- Driver : 박동호
- Navigator : 박상윤
- Anomaly7Manager - 러시안 룰렛 (ID : 7) scene 구현 (11/12 ~11/14)
- Driver : 박동호
- Navigator : 박상윤
- Anomaly5Manager - 틈새녀 (ID : 5) scene 구현 (11/12 ~11/14)
- 박상윤
- Anomaly11Manager - 열린 강의실 문 (ID : 11) scene 구현 (11/12 ~11/14)
- Driver : 박상윤
- Navigator : 박동호
- Anomaly12Manager - 위치가 다른 조명 (ID : 12) scene 구현 (11/12 ~11/14)
- Driver : 박상윤
- Navigator : 박동호
- Anomaly11Manager - 열린 강의실 문 (ID : 11) scene 구현 (11/12 ~11/14)
- 서지희
- Anomaly17Manager - 마이크 전선 스파크 (ID : 17) scene 구현 (11/12 ~11/14)
- Driver : 서지희
- Navigator : 신채환
- Anomaly22Manager - 바닥 타일이 하나둘씩 없어짐 (ID : 22) scene 구현 (11/12 ~11/14)
- Driver : 서지희
- Navigator : 신채환
- Anomaly17Manager - 마이크 전선 스파크 (ID : 17) scene 구현 (11/12 ~11/14)
- 신채환
- Anomaly18Manager - 책상 3줄 늘어남 (ID : 18) scene 구현
- Driver : 신채환
- Navigator : 서지희
- Anomaly20Manager - 창문에 비친 플레이어 얼굴 변화 (ID : 20) scene 구현
- Driver : 신채환
- Navigator : 서지희
- Anomaly18Manager - 책상 3줄 늘어남 (ID : 18) scene 구현
- 박동호
- make sure your faces all have 4 edges only
- in edit mode, press a to select anything, hover over the mesh tab, cleanup, delete vertices by distance (or something similar)
- https://www.reddit.com/r/Unity3D/comments/p51bwd/a_polygon_is_self_intersecting_and_has_been/
- I find the material and change its “Shader” to standard, then the issue resolved.
- This warning only exists to inform you that the imported mesh differs from the source mesh, which probably aims towards the modeler fixing the mesh more than anything
- https://discussions.unity.com/t/on-that-error-what-are-the-consequences-a-polygon-of-mesh-in-fbx-is-self-intersecting-and-has-been-discarded/241720/2
- 모델링이 겹치면 나는 warning → 작동에는 영향 안 끼침
1920*1080을 기준으로 가는걸로 결정