UnityFactory_#00
🌈 게임 경과 시간 기록하기
- 장애물을 일정 시간 마다 등장 시키거나, 전체 게임 실행 시작 시간을 기록할 필요가 있다.
- 그럴 때 사용하는 것이 Time.deltaTime
//게임 진행 시간 저장하기
float currentTime = 0f;
void Update(){
current += Time.deltaTime;
}
//일정 시간마다 오브젝트 생성하기
GameObject enemeyPrefab; //prefab
GameObject enemyPosition; //prefab위치
float creatTime = 2f; //2초마다 생성
float currentTime = 0f;
void Update(){
current += Time.deltaTime;
if(currentTime>=creatTime){
GameObject enemy = Instantiate(enmeyPrefab); //객체 생성
enmey.tranform.position = enemyPosition.position; //생성된 객체 위치 설정
}
}
🍫 Player를 따라오게 하는 Pet 만들기
- 우선 Follow할 타겟을 설정
- 타겟을 향하기 위해서는 백터 빼기 연산 실행
- 중요) 백터 연산을 정규화를 해줄 것!!
- 나온 방향 벡터를 가지고 오브젝트 position을 계산
public class Pet : MonoBehaviour
{
public GameObject target; //따라갈 대상
public float speed = 2.0f;
// Update is called once per frame
void Update()
{
/*
* 타겟 방향으로 이동하고 싶다
* 1.타겟 방향을 구하자 -> 벡터의 빼기
* - 타겟 방향 = 타겟 위치 - 나의 위치
*/
Vector3 dir = target.transform.position - transform.position;
dir.Normalize(); //벡터의 정규화를 할 것
//그 방향으로 이동하고 싶다 Posisiton = Direction * Poisitiont
transform.position += dir * speed * Time.deltaTime;
}
}
🤿 Layer 적용하기 (collider 구분하기)
- 충돌 게임의 경우 장애물끼리는 충돌해도 사라지면 안됨
- 장애물 외 오브젝트와 충돌했을 때 사라짐을 구현
- 이때 사용하는 것이 Layer ( 처음에는 tag를 떠올렸다는...)
- 간단하게 코드 작성 없이 장애물끼리는 충돌하지 않고 이외의 오브젝트와는 충돌을 인식
- 충돌 인식 관련 [참고] https://cpp11.tistory.com/13
1. Layer에 장애물 레이어를 추가 2. 물리 속성 체크 해제
- Player Setting -> Phyisc -> 맨 밑 매트릭스 -> 추가한 Layer가 있음 -> 체크 해제
🎯 Script로 오브젝트 가져오기
- Hierarchy는 프로그램 실행 시 메모리 영역, Project는 디스크 영역이라 인스펙터에서 오브젝트를 drag&drop이 안된다 ex) Prefab 오브젝트를 가져올 때 or Script를 가져올 때
- 이런 상황에서는 start()에서 찾아주면 된다
- 찾아서 가져오게 되면 그 오브젝트의 속성에 접근하면 된다
AudioPlayer audioPlayer;
GameObject target;
Vector3 dir;
private void Start()
{
//오브젝트 타입으로 오브젝트 찾기
audioPlayer = FindObjectOfType<AudioPlayer>();
//오브젝트 이름으로 오브젝트를 찾기 +그 게임오브젝트 전체 가져오기
target = GameObject.Find("Player").gameObject;
print(target.transform.position) //찾은 게임 오브젝트
}
Author And Source
이 문제에 관하여(UnityFactory_#00), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@honeyoung_0117/UnityFactory저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)