일단 기본 모양은 텍스트와 버튼으로 갖추어 두었다
이제 그것들이 동작하게 해야하는데
canvas 안에다가 Empty를 하나 만들고 Idle manager라고 지었다
이런저런 스크립트가 저기에 들어갈 예정
저 empty의 inspector에서
Add component를 선택하고 이름 대충짓고 새로운 스크립트 자리를 만들었다
그리고 만들어진 스크립트를 더블클릭하면
Visual Studio Code가 열리면서 개발자에게 익숙한 화면이 뜬다
뭐... 미리설치 안해놨으면 안열릴지도
나는 거의 파이썬밖에 써본적이 없긴한데
유니티는 기본언어가 C#이라고해서 그냥 C#을 써볼 예정이다
프로그래밍 언어라는게 하나 알면 다른거 배우기 좀 수월한 느낌이라
일단 테스트로 1차원 구매만 먼저 만들어보기로 했다
1차원만 하더라도 변수와 텍스트가 꽤 여러개 들어간다
C#이 처음이라 이리저리 검색하면서 구르다가 겨우만듬 ㅎ....
일단 1차원의 옵션은
초당 물질1개 생산 / 최초 가격은 10 MA
10개 구매시마다 생산배율 2배증가 / 가격 10배증가
정도로 세팅해 보았는데
요 부분은 사용할 변수와 텍스트와 메소드를 정의하는부분
스크립트 생성시 기본으로 Start()와 Update()가 있었는데
둘다 public 달아주고
Start() 안에는 각종 변수들의 최초값을 넣어줬다
update()는 말그대로 계속 변화하는 문자나 숫자들을 업데이트 해주는 부분
뭐 그냥 텍스트 바꾸고 간단한 연산이라 이지~
마지막 1차원 구매버튼을 위한 메소드를 만들었는데
음... 간단한걸 표현하려해도 생각보다 이것저것 수식들이 들어갔는데
일단 잘 되는지 보려는거니까 돌아가기만 하면 된다
여기까지 해놓고 저장하고 다시 유니티로 돌아오면
idle manager의 inspector 안에 저렇게 스크립트에서 만들어둔 텍스트들이 있는데
hierarchy의 해당 텍스트들을 드래그만 해주면된다
근데 이제보니 변수들도 저기서 숫자설정이 가능한걸보니
굳이 Start() 안에다가 기초값 안넣어도 될지도.. ㅋ
비슷한 원리로 버튼에다가도 만들어둔 메소드 연결을 해주어야하는데
버튼을 클릭해보면 아래에 on click() 이라고 된게 있는데 거기다 idle manager를 갖다박은뒤
아까 만들어둔 메소드를 찾아서 연결할수있다
뭐 이정도면 1차원만들기 끝...
다 만들었으니 테스트도 해보았다
편의상 그냥 생산속도에 x3을 넣어놓은 상태라 3배 빠르게 늘어나는모습
일단은 성공적
using System;
using UnityEngine;
using TMPro;
public class Idlegame : MonoBehaviour
{
public TMP_Text MA_text;
public TMP_Text MA_speed_text;
public TMP_Text D1_text;
public TMP_Text D1_amount_text;
public TMP_Text D1_button_text;
public double MA;
public double MA_speed;
public double D1_multiple;
public double D1_amount;
public double D1_amount_total;
public double D1_cost;
public void Start()
{
MA = 10;
MA_speed = 0;
D1_multiple = 1;
D1_amount = 0;
D1_amount_total = 0;
D1_cost = 10;
}
public void Update()
{
MA_speed = D1_amount_total * D1_multiple;
MA += MA_speed * Time.deltaTime;
MA_text.text = "You have " + MA.ToString("F0") + " matters (MA)";
MA_speed_text.text = "You are earning matters " + MA_speed.ToString("F2") + "/s";
D1_text.text = "1st Dimention\nx" + D1_multiple.ToString("F2");
D1_amount_text.text = D1_amount_total.ToString("F0");
D1_button_text.text = "Cost : " + D1_cost.ToString("F0") + " MA";
}
public void D1_purchase()
{
if (MA >= D1_cost)
{
MA -= D1_cost;
D1_amount += 1;
D1_amount_total += 1;
D1_cost = 10 * Math.Pow(10,Math.Truncate(D1_amount/10));
D1_multiple = Math.Pow(2,Math.Truncate(D1_amount/10));
}
}
}
'개발 > Newbie Creator' 카테고리의 다른 글
방치게임 개발하기 #5 - 버튼 꾸미기 (1) | 2024.12.13 |
---|---|
방치게임 개발하기 #4 - 숫자를 지수형태로 바꾸기 (0) | 2024.12.11 |
방치게임 개발하기 #3 - 2~4차원 구현 (0) | 2024.12.09 |
방치게임 개발하기 #1 - 첫 삽 (1) | 2024.12.05 |
방치게임 개발하기 #0 - 구상 (0) | 2024.12.04 |