using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Static : MonoBehaviour
{
//이 static변수는 버튼 누를 때 마다 큐브가 생성될 건데 전체 갯수를 알고 싶을 때 활용할거야.
//큐브와 연관되어 있기 때문에 staticCube 클래스 안에 선언될 만한 그런 변수란 거죠
//물론 해당 클래스에 인스턴스 단위로 만들어지는 건 아니지만!
static int totalCubeQty = 0;
//인스턴스로 선언되는 건 아니라서 매번 초기화가 되는 건 아냐!
//totalCubeQty를 퍼블릭으로 설정한다면 값을 변경할 수도 있잖아 근데 이 값은 절대 변경못하고 스타트함수에서만 제어하곘다 그러면 무조건 private
//2. 만약 static int totalCubeQty { get;} 이렇게 만든다면 START()에서도 쓸 수가 없어
void Start()
{
//큐브가 만들어질 때 마다 값이 1씩 증가할거야
totalCubeQty += 1;
}
//3. 그래서 함수로 접근해서 값을 쓸 수 없게할 수 있어, 매개변수 안 넣고 리턴값만 있게하면 말이지....
//4. 근데 함수는 인스턴스를 만들어야지만 접근할 수 있으니까 아예 접근할 수 없게 하려면 public static int GetTotalQty() 라고 할 수 있어
public int GetTotalQty()
{
return totalCubeQty;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class StaticManager : MonoBehaviour
{
public Text qtyText;
public GameObject cubePrefab;
void Start()
{
}
void Update()
{
}
public void OnClickButton()
{
// instantiate이란 함수는 10가지 다른 형태를 가지고 있어, 함수의 이름은 똑같지만 매개변수가 하나일수도 두개일수도...
// 함수이름만 같고 총 10개의 함수가 구현되는 거라고 보면 돼.
//여기선 3개의 매개변수가 들어있는 instantiate을 쓸거야
//1. 프리팹 파일정보, 2. 어디에 만들지!
//어디에 위치할거냐를 알 때는 3개의 위치값을 가지고 있는 vector타입의 인스턴스를 만들어줘라~가 되는거
Instantiate(cubePrefab, new Vector3(0,3,0), Quaternion.identity);
//이렇게 하면 버튼을 누를 때 마다 프리팹이 만들어져....호오
}
}