Generate Lightmap UVs 옵션
Contribute GI 플래그
Ambient Occlusion - 어두운 곳은 더 어둡게
Lightmap Resolution - 라이트맵의 품질 설정
씬관리
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class UIManager : MonoBehaviour
{
[SerializeField]
private Button btnStart;
[SerializeField]
private Button btnOption;
[SerializeField]
private Button btnShop;
private UnityAction action;
private void Start()
{
this.action = () => this.OnStartClick();
this.btnStart.onClick.AddListener(this.action);
//this.btnStart.onClick.AddListener(() => {
// this.OnButtonClick(this.btnStart.name);
//});
this.btnOption.onClick.AddListener(() => {
this.OnButtonClick(this.btnOption.name);
});
this.btnShop.onClick.AddListener(() => {
this.OnButtonClick(this.btnShop.name);
});
}
public void OnButtonClick(string msg)
{
Debug.Log($"Click Button : {msg}");
}
public void OnStartClick()
{
SceneManager.LoadScene("Level_01");
SceneManager.LoadScene("Play", LoadSceneMode.Additive);
}
}
SceneManager.LoadSceneAsync()
--> 인덱스로 씬 로드
동기
비동기
비동기 Init
주의 : Start보다 더 빠르게 호출됨
TitleMain
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class TitleMain : MonoBehaviour
{
[SerializeField]
private Button btn;
public Action<string> onChangeScene;
private void Awake()
{
Debug.Log("[TitleMain] Awake");
}
private void OnEnable()
{
Debug.Log("[TitleMain] OnEnable");
}
private void Start()
{
Debug.Log("[TitleMain] Start");
}
public void Init(string version)
{
Debug.Log("[TitleMain] <color=yellow>Init</color>");
Debug.LogFormat("version: {0}", version);
this.btn.onClick.AddListener(() => {
this.onChangeScene("홍길동");
//동기
//SceneManager.LoadScene("GameScene");
});
}
}
AppMain
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class AppMain : MonoBehaviour
{
private string version = "1.0";
private void Awake()
{
DontDestroyOnLoad(this.gameObject);
}
// Start is called before the first frame update
void Start()
{
//동기
//SceneManager.LoadScene("Title");
//TitleMain titleMain = GameObject.FindObjectOfType<TitleMain>();
//Debug.Log(titleMain);
//GameObject titleGo = GameObject.Find("TitleMain");
//Debug.Log(titleGo);
//titleMain.Init();
//비동기
AsyncOperation oper = SceneManager.LoadSceneAsync("TitleScene");
oper.completed += OnLoadCompleteTitleScene;
}
private void OnLoadCompleteTitleScene(AsyncOperation obj)
{
Debug.Log("로드 완료");
TitleMain titleMain = GameObject.FindObjectOfType<TitleMain>();
titleMain.onChangeScene = (nickname) => {
this.LoadGameScene(nickname);
};
Debug.LogFormat("titleMain: {0}", titleMain);
titleMain.Init(this.version);
}
private void LoadGameScene(string nickname)
{
//비동기 로드
AsyncOperation oper = SceneManager.LoadSceneAsync("GameScene");
oper.completed += (obj) => {
GameMain gameMain = GameObject.FindObjectOfType<GameMain>();
gameMain.Init(nickname);
};
}
}
GameMain
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameMain : MonoBehaviour
{
private void Awake()
{
Debug.Log("[GameMain] Awake");
}
private void OnEnable()
{
Debug.Log("[GameMain] OnEnable");
}
private void Start()
{
Debug.Log("[GameMain] Start");
}
public void Init(string nickname)
{
Debug.LogFormat("[GameMain] Init: {0}", nickname);
}
}
'유니티 심화' 카테고리의 다른 글
절대강좌 유니티 - 오클루전 컬링 (0) | 2023.08.31 |
---|---|
HeroShooter - 오브젝트 풀링[총알], 비동기[씬 전환] (0) | 2023.08.30 |
절대강좌 유니티 - 내비게이션 고급 기법, 동적장애물, 적 자연스러운 회전처리, Area Mask (0) | 2023.08.29 |
절대강좌 유니티 - Raycast (0) | 2023.08.29 |
절대강좌 유니티 - TMP_Text, 점수표시, PlayerPrefs, 오브젝트풀링 (0) | 2023.08.29 |