GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
큐브를 생성하고 저장.
transform.LookAt(_player.transform);
gameObject.GetComponent<MeshRenderer>().material.SetColor("_TintColor", Color.red);
IEnumerator LoadScene()
{
yield return null;
// 지정한 화면 로딩 시작
AsyncOperation asyncOperation = SceneManager.LoadSceneAsync("Scene3");
// 바로 로딩 되지 않도록 설정함
asyncOperation.allowSceneActivation = false;
Debug.Log("Pro :" + asyncOperation.progress);
// 로딩이 끝날때까지 아래 코드 실행
while (!asyncOperation.isDone)
{
// asyncOperation.progress 를 통ㅇ해 현재 진행 상태를 확인한다.
m_Text.text = "Loading progress: " + (asyncOperation.progress * 100) + "%";
// Check if the load has finished
if (asyncOperation.progress >= 0.9f)
{
// 씬이 준비되었음을 알리는것
m_Text.text = "Press the space bar to continue";
// 스페이스바를 눌러 씬 활성화
if (Input.GetKeyDown(KeyCode.Space))
// 로딩이 끝나면 바로 씬 로딩하도록 설정
asyncOperation.allowSceneActivation = true;
}
yield return null;
}
}
3개의 서브메쉬로 이루어진 오브젝트의 예시
Skybox/6-sided 머티리얼을 만든다.
Window > Rendering > Lighting setting 에서 적용한다.
애니메이터 하단의 Curves 를 선택해 설정 가능하다.
NavMeshAgent _navMeshAgent;
void Start()
{
_navMeshAgent = GetComponent<NavMeshAgent>();
if(_navMeshAgent == null)
{
Debug.Log("Nav mesh is NULL");
}
// Nav Mesh Agent 컴포넌트를 가져온다.
}
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0))
// 좌클릭 시
{
Ray rayOrigin = Camera.main.ScreenPointToRay(Input.mousePosition);
// 메인카메라를 기준으로 마우스의 위치에 Ray 를 쏘겠다는 의미.
RaycastHit hitInfo;
// 충돌 정보를 가져올 변수
if(Physics.Raycast(rayOrigin, out hitInfo))
// 충돌시 if 아래 코드를 실행한다.
{
_navMeshAgent.SetDestination(hitInfo.point);
// nav mesh를 이용해 플레이어를 지정한 바닥 지점으로 이동시킨다.
}
}
}
잘봤습니다.