c#_08/26-retrospective_09/04

Heejin Jo·2021년 9월 4일
0

Unity_C#

목록 보기
12/16
post-thumbnail

static

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;
    }
}

make instance whenever OnClick

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);
        //이렇게 하면 버튼을 누를 때 마다 프리팹이 만들어져....호오
            
    }
}
profile
core를 기르자

0개의 댓글