Unity- AppleBasket - LobbyScene
2023. 8. 7.

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으로 다음 씬으로 넘어가는 함수를 추가하였다.

앞에 using UnityEngine.SceneManagement;를 추가해야 한다.

 

로비 씬에서 선택한 바구니가 게임씬에서 생성된다.

'유니티 기초' 카테고리의 다른 글

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
myoskin