まず宝箱2のカギ穴の部分の上に小さな画像を重ねて隠してください。
うまく色が設定できない場合は、同じ部分の色を切り取って
Source Image として使えば違和感なくしあがります。
wall4 にカレンダーの拡大場面を作ったのと同じように Image を設定し
Source Image や Color で宝箱の黄色部分の色を再現します。
その子要素に3枚の Image を大きさを調整して横に並べ
さらに、3枚それぞれに UI>Text で、0から9までの10個の Text を
子要素として設け、大きさ・座標を修正し
0以外の数字を非表示にして下さい。
続いてスクリプトを書いていきます。
tutorialscript に加筆してください。
C#
※青が加筆部分です
if (オブジェクト名.activeInHierarchy == true)
{
}
は、オブジェクトが、その親要素全ても含めてアクティブな状態を
指します。
(activeInHierarchy == false ならオブジェクトそのもの、
もしくは親要素が一つでも非表示の場合)
つまりゲーム画面に表示されているかどうかです。
似たようなものに activeSelf というのがありますが
こちらは、オブジェクトそのもののアクティブ状態だけを見るもので
親要素は関係ありません。
場合によって使い分けてください。
スクリプトを書き終えセーブしたら、
Hierarchy の MainCamera のスクリプト欄に
新しくできた部分に対応させるものをドラックし格納します。
続いて、3つの数字板それぞれに
左上 Component>Event>Event Trigger を取り付け
Add New Event Type で
Pointer Down(触れたときにイベント開始)を選択、
画面移動用のボタンと同じやり方で、
左には leftbuttontap, 真ん中には centerbuttontap,
右には rightbuttontap を設定していきます。
ゲームを再生してみてください。
数字をタッチして、うまくいったなら
カレンダーの時と同じように
画面の一番下に横長のボタンを設置し、
Text は V で下向きの矢印を表します。
(コピペで可)
宝箱の拡大画面を非表示にして次回に続きます。
うまく色が設定できない場合は、同じ部分の色を切り取って
Source Image として使えば違和感なくしあがります。
wall4 にカレンダーの拡大場面を作ったのと同じように Image を設定し
Source Image や Color で宝箱の黄色部分の色を再現します。
その子要素に3枚の Image を大きさを調整して横に並べ
さらに、3枚それぞれに UI>Text で、0から9までの10個の Text を
子要素として設け、大きさ・座標を修正し
0以外の数字を非表示にして下さい。
続いてスクリプトを書いていきます。
tutorialscript に加筆してください。
C#
using System.Collections; using System.Collections.Generic; using UnityEngine; public class tutorialScript : MonoBehaviour { public GameObject wall1; public GameObject wall2; public GameObject wall3; public GameObject wall4; public GameObject left0; public GameObject left1; public GameObject left2; public GameObject left3; public GameObject left4; public GameObject left5; public GameObject left6; public GameObject left7; public GameObject left8; public GameObject left9; public GameObject center0; public GameObject center1; public GameObject center2; public GameObject center3; public GameObject center4; public GameObject center5; public GameObject center6; public GameObject center7; public GameObject center8; public GameObject center9; public GameObject right0; public GameObject right1; public GameObject right2; public GameObject right3; public GameObject right4; public GameObject right5; public GameObject right6; public GameObject right7; public GameObject right8; public GameObject right9; public void gotowall1() { wall1.SetActive(true); wall2.SetActive(false); wall3.SetActive(false); wall4.SetActive(false); } public void gotowall2() { wall1.SetActive(false); wall2.SetActive(true); wall3.SetActive(false); wall4.SetActive(false); } public void gotowall3() { wall1.SetActive(false); wall2.SetActive(false); wall3.SetActive(true); wall4.SetActive(false); } public void gotowall4() { wall1.SetActive(false); wall2.SetActive(false); wall3.SetActive(false); wall4.SetActive(true); } public void leftbuttontap() { if (left0.activeInHierarchy == true) { left0.SetActive(false); left1.SetActive(true); } else if (left1.activeInHierarchy == true) { left1.SetActive(false); left2.SetActive(true); } else if (left2.activeInHierarchy == true) { left2.SetActive(false); left3.SetActive(true); } else if (left3.activeInHierarchy == true) { left3.SetActive(false); left4.SetActive(true); } else if (left4.activeInHierarchy == true) { left4.SetActive(false); left5.SetActive(true); } else if (left5.activeInHierarchy == true) { left5.SetActive(false); left6.SetActive(true); } else if (left6.activeInHierarchy == true) { left6.SetActive(false); left7.SetActive(true); } else if (left7.activeInHierarchy == true) { left7.SetActive(false); left8.SetActive(true); } else if (left8.activeInHierarchy == true) { left8.SetActive(false); left9.SetActive(true); } else if (left9.activeInHierarchy == true) { left9.SetActive(false); left0.SetActive(true); } } public void centerbuttontap() { if (center0.activeInHierarchy == true) { center0.SetActive(false); center1.SetActive(true); } else if (center1.activeInHierarchy == true) { center1.SetActive(false); center2.SetActive(true); } else if (center2.activeInHierarchy == true) { center2.SetActive(false); center3.SetActive(true); } else if (center3.activeInHierarchy == true) { center3.SetActive(false); center4.SetActive(true); } else if (center4.activeInHierarchy == true) { center4.SetActive(false); center5.SetActive(true); } else if (center5.activeInHierarchy == true) { center5.SetActive(false); center6.SetActive(true); } else if (center6.activeInHierarchy == true) { center6.SetActive(false); center7.SetActive(true); } else if (center7.activeInHierarchy == true) { center7.SetActive(false); center8.SetActive(true); } else if (center8.activeInHierarchy == true) { center8.SetActive(false); center9.SetActive(true); } else if (center9.activeInHierarchy == true) { center9.SetActive(false); center0.SetActive(true); } } public void rightbuttontap() { if (right0.activeInHierarchy == true) { right0.SetActive(false); right1.SetActive(true); } else if (right1.activeInHierarchy == true) { right1.SetActive(false); right2.SetActive(true); } else if (right2.activeInHierarchy == true) { right2.SetActive(false); right3.SetActive(true); } else if (right3.activeInHierarchy == true) { right3.SetActive(false); right4.SetActive(true); } else if (right4.activeInHierarchy == true) { right4.SetActive(false); right5.SetActive(true); } else if (right5.activeInHierarchy == true) { right5.SetActive(false); right6.SetActive(true); } else if (right6.activeInHierarchy == true) { right6.SetActive(false); right7.SetActive(true); } else if (right7.activeInHierarchy == true) { right7.SetActive(false); right8.SetActive(true); } else if (right8.activeInHierarchy == true) { right8.SetActive(false); right9.SetActive(true); } else if (right9.activeInHierarchy == true) { right9.SetActive(false); right0.SetActive(true); } } } |
if (オブジェクト名.activeInHierarchy == true)
{
}
は、オブジェクトが、その親要素全ても含めてアクティブな状態を
指します。
(activeInHierarchy == false ならオブジェクトそのもの、
もしくは親要素が一つでも非表示の場合)
つまりゲーム画面に表示されているかどうかです。
似たようなものに activeSelf というのがありますが
こちらは、オブジェクトそのもののアクティブ状態だけを見るもので
親要素は関係ありません。
場合によって使い分けてください。
スクリプトを書き終えセーブしたら、
Hierarchy の MainCamera のスクリプト欄に
新しくできた部分に対応させるものをドラックし格納します。
続いて、3つの数字板それぞれに
左上 Component>Event>Event Trigger を取り付け
Add New Event Type で
Pointer Down(触れたときにイベント開始)を選択、
画面移動用のボタンと同じやり方で、
左には leftbuttontap, 真ん中には centerbuttontap,
右には rightbuttontap を設定していきます。
ゲームを再生してみてください。
数字をタッチして、うまくいったなら
カレンダーの時と同じように
画面の一番下に横長のボタンを設置し、
Text は V で下向きの矢印を表します。
(コピペで可)
宝箱の拡大画面を非表示にして次回に続きます。