[Unity2D] 새콤달콤 딸기농장 메인 오브젝트 개발(7) - 아르바이트생 구현 (2)

SHG·2022년 5월 11일
0

이전 포스팅에 이어 나머지 알바생을 구현해보았다. 아래는 알바생 리스트이다.

구현🪄

이 두마리의 알바생은 FixedUpdate()에 두지 않고 피그마는 트럭에서 딸기를 판매할 때, 루비아는 소나기가 내릴 때 적용되는 함수로 구현했다!!

이 때 ArbeitMgr에 있는 Figma()와 lluvia()를 참조하므로 필자는 Arbeit 오브젝트의 태그를 Arbeit로 설정한 뒤 태그로 오브젝트를 참조하는 방식을 사용했다.

arbeit = GameObject.FindGameObjectWithTag("Arbeit").GetComponent<ArbeitMgr>();

피그마 🐷

피그마는 고용 시 횟수를 차감해 트럭에 저장된 딸기 가치를 변경한다.

ArbeitMgr

public float Pigma() // 돼지 2
{
    if (DataController.instance.gameData.PTJNum[2] > 0)
    {
        float coEffi = Random.Range(0.7f, 1.8f);
        DataController.instance.gameData.PTJNum[2]--;

        Debug.Log(coEffi);
        return coEffi;
    }
    else return 1.0f;
}

피그마는 고용 됐을 때, 0.7~1.8까지의 랜덤범위 수를 선택하고 반환하여 총 딸기 판매 가격을 결정하고, 고용이 되어있지 않다면 그대로 1.0f를 반환한다.

Truck

public void ReceiveCoinNormal()
{   
	...
    
    float coEffi = arbeit.Pigma();
    float totalCoin = (DataController.instance.gameData.truckCoin
        + GameManager.instance.bonusTruckCoin) * coEffi;

    GameManager.instance.GetCoin((int)totalCoin);  
    
    ...
}

따라서 totalCoin에 피그마가 정한 계수를 곱해준다!

루비아 🐱

루비아는 고용 시 횟수를 차감해 소나기가 내릴 시 더 딸기의 성장 속도를 더 빠르게 해준다.

ArbeitMgr

public int lluvia() // 고양이 5
{
    if (DataController.instance.gameData.PTJNum[5] > 0)
    {
        DataController.instance.gameData.PTJNum[5]--;       
        
        return 4;
    }
    else return 2;    
}

루비아는 고용중이라면 소나기의 배속 계수를 반환해준다! 이 때 계수의 기본값은 2이고 고용중이라면 4이다.

RainCtrl

void Raining()
{       
    rainPanel.gameObject.SetActive(true);
    rainPanel.GetComponent<Image>().DOFade(0.3f, 0.3f);
    
    //기존 계수에 루비아 함수 추가
    mult = arbeit.lluvia();
    
    rainTime = 0;
    rainParticle.Play();            
}

mult에 루비아의 반환값을 넘겨 계수를 정해준다!

profile
기록에 익숙해지자...!

0개의 댓글