全て
| カテゴリ未分類
| ゲーム制作関連
| C# VB
| お勧めのお酒
| 江戸川乱歩賞
| ミステリ
| 感動・泣ける本
| いろいろ
| お勧めソフト
| サスペンス・ホラー
| 人生・人間ドラマ
| 素人釣り
| 愉快な話
| ファンタジー・SF
| その他
| PCいろいろ
| ファーストクイーン
| 発毛日記
| ファーストクイン攻略2022
| ガーデニング
テーマ:徒然日記(23573)
カテゴリ:ゲーム制作関連
今日は土曜日。雨で釣りに行けなかったので、昼間からゲームを作ることに。
でも昨日の仕事でまた頚椎を痛めてしまったようだ。 こうなると俄然仕事を辞めたくなる。ものすごく痛い。寒さのせいもあるのかも。 さて、今日はお酒カードを画面上でクリックしたら、そのカードをちゃんと取得できるのかという部分に挑戦した。 まずUnityは3D空間なので、2Dの座標処理をさせようとすると一工夫いるみたい。 いろいろ探した結果、一番楽そうなのを選んだ。 その前にお酒カードをプレハブ化して、それぞれに「酔う値」を設定した。 ついでに名前も設定しておく。(いらないけど)スクリプト名はCardとする。 public int cardAlc; //どれだけ酔うか public int cardName; //名前 水や特殊カードは0を設定。あとはカードの数字の通り。 これで、外部からお酒の酔う値を取得できる。 そうだ、忘れてはいけないのが、カードにコライダーを設定しておくこと。 ここでは、BoxCollider2Dを使った。 さて、ここからが本番。 MainCameraでもいいし、空のオブジェクトでもいいので、新たにスクリプトを追加する。 今回はプレイヤーという空のオブジェクトを作って、Playerというスクリプト名で以下を追加した。 void Update () { if (Input.GetMouseButtonUp(0))//ここではマウスが離れた瞬間を取得 { Vector3 aTapPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D aCollider2d = Physics2D.OverlapPoint(aTapPoint); if (aCollider2d) { GameObject obj = aCollider2d.transform.gameObject; //以下は取得した内容を表示 Debug.Log(obj.name); Card cd = obj.GetComponent<Card>(); Debug.Log(㏅.name + ":" + cd.cardAlc); } } }
これだけ。 Vector3 aTapPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition); ここで3D空間の座標を変換するのかな? 今回はスマホ向けに作るので、(そもそもマウス処理でいいのか知らないけど)クリックした瞬間ではなく、離れた瞬間に処理をさせることにした。 なぜかというと、画面が小さくて押し間違えがありそうなんで、カード外に指を持って行ってから離せば、カード選択処理が回避されるんじゃないかと思ってのこと。タイミングが遅れるから、もしかしたら直すかもしれないけど。 プレハブ化したカードから一枚適当なお酒カードを選び画面に配置する。 ここではウィスキーカードを配置した。 カードのスクリプト名<Card>には、カードの名前としてWhisky、酔う値として20を設定。 そして実行し、カードをクリックしてみる。 まずはオブジェクト名を取得した。 ついで、オブジェクトに設定されている名前「Whisky」と「20」という値も取得できた。 これで一歩前進した。 マウス処理ができるということは、ノベルゲームも作れそうだな~。 画面をクリックしての脱出ゲームとか・・・。 次はホラーものの脱出ゲームでも作ろうかしらね。 お気に入りの記事を「いいね!」で応援しよう
Last updated
Jun 16, 2018 03:54:40 PM
コメント(0) | コメントを書く
[ゲーム制作関連] カテゴリの最新記事
|