Unity- AppleBasket - LobbyScene
LobbyMain 스크립트를 통해 Lobby Scene을 관리한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class LobbyMain : MonoBehaviour
{
[SerializeField]
private List<GameObject> baskets;//baskets list
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButton(0))
{
//ray 객체 생성
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(ray.origin, ray.direction * 1000f, Color.red, 2f);
RaycastHit hit;
//Ray의 충돌 체크
if (Physics.Raycast(ray, out hit, 1000f))
{//충돌되면 충돌정보가 hit 변수에 담김
// Debug.Log(hit.point);//충돌된 지점의 월드 좌표
Debug.Log(hit.collider.gameObject.name);
GameObject foundBasketGo = this.baskets.Find(x => x == hit.collider.gameObject);
int selectedBasketType = this.baskets.IndexOf(foundBasketGo);
Debug.LogFormat("<color=yellow>selectedBasketType: {0}</color>", selectedBasketType);
InfoManager.instance.IntselectedBasketType = selectedBasketType;
foreach (GameObject go in this.baskets)
{
if (go != foundBasketGo)
{
//선택 되지 않은 것들
go.SetActive(false); //비활성화
}
}
}
}
}
public void GameStart()
{
SceneManager.LoadScene("GameScene");
}
}
-로비씬에서 선택한 바스켓을 게임씬에서 가져오기 위해 InfoManager클래스를 작성하였다.
-InfoManager 클래스는 저장 객체들을 관리하는 싱글톤 클래스이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InfoManager
{
//저장 객체들을 관리 하는 싱글톤 클래스
public static readonly InfoManager instance = new InfoManager();
public enum eSelectedBasketType
{
BASKET1, BASKET2, BASKET3
}
public eSelectedBasketType selcetedBasketType;
public int IntselectedBasketType;
//생성자
private InfoManager()
{
IntselectedBasketType = (int)this.selcetedBasketType;
}
}
-Button에 OnClick으로 다음 씬으로 넘어가는 함수를 추가하였다.
'유니티 기초' 카테고리의 다른 글
Unity-코루틴으로 이동하기 (0) | 2023.08.10 |
---|---|
Unity-예제-AppleBasket(GameScene) (0) | 2023.08.07 |
Unity- 버튼 클릭(Onclick)하면 이동 (0) | 2023.08.04 |
unity - 3d 기본 예제-밤송이 (0) | 2023.08.04 |
Hero Jump 예제 (0) | 2023.08.03 |