元号や年をタップすると数字が順に変わるアプリを作成しています。
(例えば)平成は31年までしかないので平成をタップした場合、
年の2桁目は0~3までしか表示されず、具体的には0→1→2→3→0と
3をタップすると0に戻るようにしてあります。
質問は年の1桁目と2桁目の連動についてです。
平成で且つ年の2桁目が0か1か2の時は→0~9を順に表示
平成で且つ年の2桁目が3の時→0~1のみ順に表示
と切り替わるようにしたいのと
平成で且つ年の2桁目が0か1か2になっていて1桁目が(仮に)5の時
2桁目をタップして3にした時に1桁目が0
の表示に切り替わるようにしたいです。
例:15年←1を2度タップして3になった時1桁目が0になって30年になる。
現状にif文をネストすれば良いような気がしますが具体的にどうすればいいのか
悩んでいます。分かる方お手数ですが教えて下さい。
環境)
PC: mac
Unity2018.2
言語:C#
ChristianScript.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ChristianScript : MonoBehaviour { private int MEIJI_START = 1868; private int TAISYO_START = 1912; private int SHOWA_START = 1926; private int HEISEI_START = 1989; private int REIWA_START = 2019; public const int test1_Meiji = 0; public const int test1_Taisho = 1; public const int test1_Showa = 2; public const int test1_Heisei = 3; public const int test1_Reiwa = 4; [SerializeField]Text ChristianText; public GameObject test1Input; public string[] test1Text = new string[5]; private int test1Num = new int(); private int uplimit; public const int zero = 0; public const int one = 1; public const int two = 2; public const int three = 3; public const int four = 4; public const int five = 5; public const int six = 6; public const int seven = 7; public const int eight = 8; public const int nine = 9; public GameObject[] test2Input = new GameObject[2]; //数値を入れるobject(容器) public string[] test2Text = new string[10]; //実際に入れる数値パターン private int[] test2Num = new int[2]; //int型の数値を納めるエリア // Start is called before the first frame update void Start() { //最初の設定 test1Num = test1_Reiwa; test2Num[0] = zero; test2Num[1] = one; } // Update is called once per frame void Update() { } public void PushChristianChanged(){ test1Num++; if(test1Num > test1_Reiwa){ test1Num = test1_Meiji; } test1Input.GetComponent<Text>().text = test1Text[test1Num]; CalculateChristian(); } public void Pushtest2NumChanged1(){ switch(test1Num){ case test1_Meiji: uplimit = 4; break; case test1_Taisho: uplimit = 1; break; case test1_Showa: uplimit = 6; break; case test1_Heisei: uplimit = 3; break; case test1_Reiwa: uplimit = 1; break; } ChangeButtontest2Search(0, uplimit); } public void Pushtest2NumChanged2(){ ChangeButtontest2Search(1, nine); } void ChangeButtontest2Search(int buttonNo, int uplimit){ test2Num[buttonNo]++; if(test2Num[buttonNo] > uplimit){ test2Num[buttonNo] = zero; } test2Input[buttonNo].GetComponent<Text>().text = test2Text[test2Num[buttonNo]]; CalculateChristian(); } void CalculateChristian(){ switch(test1Num){ case test1_Meiji: ChristianText.GetComponent<Text>().text = (MEIJI_START - 1 + test2Num[0] * 10 + test2Num[1]).ToString(); break; case test1_Taisho: ChristianText.GetComponent<Text>().text = (TAISYO_START - 1 + test2Num[0] * 10 + test2Num[1]).ToString(); break; case test1_Showa: ChristianText.GetComponent<Text>().text = (SHOWA_START - 1 + test2Num[0] * 10 + test2Num[1]).ToString(); break; case test1_Heisei: ChristianText.GetComponent<Text>().text = (HEISEI_START - 1 + test2Num[0] * 10 + test2Num[1]).ToString(); break; case test1_Reiwa: ChristianText.GetComponent<Text>().text = (REIWA_START - 1 + test2Num[0] * 10 + test2Num[1]).ToString(); break; } } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/12 07:38