teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

12

修正

2019/09/21 15:18

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -106,7 +106,9 @@
106
106
 
107
107
  ###改良後のソース
108
108
  ``````
109
- //セレクトボタン側(hogefugapiyo様のソースを参考)
109
+ //セレクトボタン側(ソースはボタンにアタッチ済み)
110
+ --------hogefugapiyo様のソースを参考-------------
111
+
110
112
  public GameObject[] starImage; //★画像
111
113
 
112
114
  public int stageID;

11

修正

2019/09/21 15:18

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -98,7 +98,7 @@
98
98
  言語:C#
99
99
 
100
100
  追記
101
- ゲームメインの★の保存は以下のように変更
101
+ ゲームメインの★の保存は以下のように変更(該当ソース1)
102
102
  //★1番目、2番目、3番目の保存処理
103
103
  PlayerPrefs.SetInt("STARSAVE" + 1 + StageNo, 1);
104
104
  PlayerPrefs.SetInt("STARSAVE" + 2 + StageNo, 1);
@@ -106,7 +106,7 @@
106
106
 
107
107
  ###改良後のソース
108
108
  ``````
109
- //セレクトボタン側(ソースをボタンにアタッチ
109
+ //セレクトボタン側(hogefugapiyo様のソースを参考
110
110
  public GameObject[] starImage; //★画像
111
111
 
112
112
  public int stageID;

10

修正

2019/09/21 15:13

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -98,6 +98,27 @@
98
98
  言語:C#
99
99
 
100
100
  追記
101
+ ゲームメインの★の保存は以下のように変更
102
+ //★1番目、2番目、3番目の保存処理
103
+ PlayerPrefs.SetInt("STARSAVE" + 1 + StageNo, 1);
104
+ PlayerPrefs.SetInt("STARSAVE" + 2 + StageNo, 1);
105
+ PlayerPrefs.SetInt("STARSAVE" + 3 + StageNo, 1);
106
+
107
+ ###改良後のソース
108
+ ``````
109
+ //セレクトボタン側(ソースをボタンにアタッチ)
110
+ public GameObject[] starImage; //★画像
111
+
112
+ public int stageID;
113
+
101
- ---現状の画像---
114
+ void Start()
115
+ {
102
- ボタンを押すとそのステージで取得した★が表示されます。
116
+ // ここでステージの星チェック
103
- ![イメージ説明](ea273e53753e359eaa1ac98c0106a9d6.gif)
117
+ for (int i = 0; i < starImage.Length; i++)
118
+ {
119
+ starImage[i].SetActive(PlayerPrefs.GetInt("STARSAVE" + (i + 1) + stageID) == 1 ? true : false);
120
+ Debug.Log("★" + PlayerPrefs.GetInt("STARSAVE" + (i + 1) + stageID));
121
+ }
122
+ Debug.Log("ステージ" + stageID);
123
+ }
124
+ ```

9

修正

2019/09/21 15:11

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -97,5 +97,7 @@
97
97
  Unity 2018.3.11f1
98
98
  言語:C#
99
99
 
100
+ 追記
100
101
  ---現状の画像---
102
+ ボタンを押すとそのステージで取得した★が表示されます。
101
103
  ![イメージ説明](ea273e53753e359eaa1ac98c0106a9d6.gif)

8

修正

2019/09/21 03:08

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -95,4 +95,7 @@
95
95
 
96
96
  ###補足情報(言語/FW/ツール等のバージョンなど)
97
97
  Unity 2018.3.11f1
98
- 言語:C#
98
+ 言語:C#
99
+
100
+ ---現状の画像---
101
+ ![イメージ説明](ea273e53753e359eaa1ac98c0106a9d6.gif)

7

修正

2019/09/20 18:28

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ###前提・実現したいこと
2
2
  リザルト画面で、獲得した★の数をステージセレクト画面でも表示したいのですが
3
3
  if文でどうにか単体(1ステージ分)は表示することはできましたが、このままだと
4
- ただひたすらif文を繰り返すことになるので・・・
4
+ ただひたすらif文を繰り返すことになるので・・・(該当ソース2より)
5
5
  if文以外で各ステージ分を表示する方法をご存知でしたらご教示ください。
6
6
   
7
7
  ステージセレクトイメージ画像

6

修正

2019/09/19 17:04

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
  リザルト画面で、獲得した★の数をステージセレクト画面でも表示したいのですが
3
3
  if文でどうにか単体(1ステージ分)は表示することはできましたが、このままだと
4
4
  ただひたすらif文を繰り返すことになるので・・・
5
- if文以外で各ステージ分を表示する方法をご存知でしたらご教示ください。
5
+ if文以外で各ステージ分を表示する方法をご存知でしたらご教示ください。
6
6
   
7
7
  ステージセレクトイメージ画像
8
8
  ![イメージ説明](93f147028dd4f82ea0ca6b7b78231a31.png)

5

修正

2019/09/19 17:03

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -74,7 +74,7 @@
74
74
  LockImage[i].SetActive(!clearFlg);
75
75
  }
76
76
  ----------------------------------------------------------------------------
77
- if文でとりあえず表示(1ステージだけなら問題ないのですが・・)
77
+ if文でとりあえず表示(1ステージ、2ステージ、3ステージ・・・と続くと効率が悪い
78
78
 
79
79
  if (PlayerPrefs.GetInt("STARSAVE1" + clearStageNo) == 1)
80
80
  {

4

修正

2019/09/19 17:02

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,12 @@
1
1
  ###前提・実現したいこと
2
2
  リザルト画面で、獲得した★の数をステージセレクト画面でも表示したいのですが
3
- if文でどうにか単体(1ステージ分)は表示することはできましたが、各ステージ分を表示
3
+ if文でどうにか単体(1ステージ分)は表示することはできましたが、このままだと
4
+ ただひたすらif文を繰り返すことになるので・・・
4
- する方法が思いつかなかったのこちらで質問することにました。
5
+ if文以外で各ステージ分を表示する方法をご存知でしたらごご教示ください
5
6
   
6
7
  ステージセレクトイメージ画像
7
8
  ![イメージ説明](93f147028dd4f82ea0ca6b7b78231a31.png)
8
-
9
+ 1画面にステージ数が7つあり、1ステージにつき★は3個で全部で21個ある状態です
9
10
  ###該当のソースコード1
10
11
  ``````
11
12
  gememain側のソース

3

修正

2019/09/19 16:59

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -22,7 +22,7 @@
22
22
  StarImage[0].SetActive(true);
23
23
 
24
24
  ---獲得した1番目の★を保存---------
25
- PlayerPrefs.SetInt("STARCOUNT1" + StageNo, 1);
25
+ PlayerPrefs.SetInt("STARSAVE1" + StageNo, 1);
26
26
 
27
27
  //中央の★・今回か前回がコイン3、もしくは既に星3つ達成済みなら表示
28
28
  yield return new WaitForSeconds(0.3f);
@@ -50,11 +50,11 @@
50
50
  獲得した2番目と3番目の★を保存
51
51
  if (CoinTotal == 0)
52
52
  {
53
- PlayerPrefs.SetInt("STARCOUNT3" + StageNo, 1);
53
+ PlayerPrefs.SetInt("STARSAVE3" + StageNo, 1);
54
54
  }
55
55
  else if(CoinTotal == 3)
56
56
  {
57
- PlayerPrefs.SetInt("STARCOUNT2" + StageNo, 1);
57
+ PlayerPrefs.SetInt("STARSAVE2" + StageNo, 1);
58
58
  }
59
59
  }
60
60
  ```
@@ -75,17 +75,17 @@
75
75
  ----------------------------------------------------------------------------
76
76
  if文でとりあえず表示(1ステージだけなら問題ないのですが・・)
77
77
 
78
- if (PlayerPrefs.GetInt("STARCOUNT1" + clearStageNo) == 1)
78
+ if (PlayerPrefs.GetInt("STARSAVE1" + clearStageNo) == 1)
79
79
  {
80
80
  starImage[0].SetActive(true);
81
81
  }
82
82
 
83
- if (PlayerPrefs.GetInt("STARCOUNT2" + clearStageNo) == 1)
83
+ if (PlayerPrefs.GetInt("STARSAVE2" + clearStageNo) == 1)
84
84
  {
85
85
  starImage[1].SetActive(true);
86
86
  }
87
87
 
88
- if (PlayerPrefs.GetInt("STARCOUNT3" + clearStageNo) == 1)
88
+ if (PlayerPrefs.GetInt("STARSAVE3" + clearStageNo) == 1)
89
89
  {
90
90
  starImage[2].SetActive(true);
91
91
  }

2

修正

2019/09/15 07:59

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -63,7 +63,7 @@
63
63
  ``````
64
64
  --------StageSelect側のソース-------------
65
65
 
66
- vodi start(){
66
+ void start(){
67
67
  int clearStageNo = PlayerPrefs.GetInt("CLEAR", 0);
68
68
  for (int i = 0; i <= stageButtons.GetUpperBound(0); i++)
69
69
  {

1

修正

2019/09/15 07:56

投稿

Z_Silver
Z_Silver

スコア27

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,12 @@
1
1
  ###前提・実現したいこと
2
2
  リザルト画面で、獲得した★の数をステージセレクト画面でも表示したいのですが
3
3
  if文でどうにか単体(1ステージ分)は表示することはできましたが、各ステージ分を表示
4
- する方法がいまいちわなかったためこちらで質問することにしました。
4
+ する方法がかなかったのでこちらで質問することにしました。
5
5
   
6
6
  ステージセレクトイメージ画像
7
7
  ![イメージ説明](93f147028dd4f82ea0ca6b7b78231a31.png)
8
8
 
9
- ###該当のソースコード
9
+ ###該当のソースコード
10
10
  ``````
11
11
  gememain側のソース
12
12
  ゲームメインの星の保存処理
@@ -59,9 +59,9 @@
59
59
  }
60
60
  ```
61
61
 
62
- ###該当のソースコード
62
+ ###該当のソースコード
63
63
  ``````
64
- --------StageSelect側ソース-------------
64
+ --------StageSelect側ソース-------------
65
65
 
66
66
  vodi start(){
67
67
  int clearStageNo = PlayerPrefs.GetInt("CLEAR", 0);
@@ -73,7 +73,7 @@
73
73
  LockImage[i].SetActive(!clearFlg);
74
74
  }
75
75
  ----------------------------------------------------------------------------
76
- if文でとりあえず表示(単体なら問題ないのですが・・)
76
+ if文でとりあえず表示(1ステージだけなら問題ないのですが・・)
77
77
 
78
78
  if (PlayerPrefs.GetInt("STARCOUNT1" + clearStageNo) == 1)
79
79
  {