四十路だけど ばかやろう

40歳のおっさんブログ。挑戦の記録。糖質制限MEC食、プログラミング、Unityでゲーム、読書、エッセイ、ニュースに一言。

GetMouseButtonDown(0)の0は左クリック。Unityでのゲーム作り。ルーレットを回す。

プログラムの復習。

RotateメソッドとInput.GetMouseBottonDownメソッドの使い方。

 

先日購入した、Unityの教科書で作ったおみくじ。

 

復習で、教科書を見ずに作ろうと思い、作ってみました。

youtu.be

1番最初のサンプルですので、それほど難しくはありません。

 

おみくじのコントロール自体も簡単なもので、マウスをクリックするとおみくじが回り始めること。速度がゆっくりになること。以上のものになります。

 

スクリプトです。

ルーレット(Roulette)のコントローラー(Controller)ということで、スクリプトの名前がRoCoとしています。

 

1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 
5 public class RoCo : MonoBehaviour {

7    float speed = 0;

   void Start () {
10        
11    }
12    
13    void Update () {
14        if (Input.GetMouseButtonDown(0)) {
15            this.speed = 11.5f;
16        }
17        transform.Rotate (0, 0, this.speed);
18        this.speed *= 0.975f;
19        }
20 }

 

7行目から打ち込んだものになります。

解説していきます。

7行目 型名 変数名 = 初期値を入れる

 

float speed = 0;

 

型名(float)は、浮動小数点型になります。少数が使える数値の箱というイメージです。

 

変数名(speed)は、任意で作ったものです。好きな名前をつけてオッケーです。

 

初期値は、ルーレットが動いていませんので、0としています。

ここを1以上にすると、スタートした時にルーレットが回転した状態でスタートします。

 

14行目

if (Input.GetMouseButtonDown(0))

マウスのボタンが押された時のメソッドで、(0)の部分は、0が左クリックのこと。

 

17行目

transform.Rotate (0, 0, this.speed);

Rotateはカッコの左から、(X軸、Y軸、Z軸)

今回は、Z軸に回転させるので、XとYは0となります。

 

18行目

this.speed *= 0.975f;

これは、徐々にスピードを落とすために入れた数値です。 

 

記事にすると、自分の中でまとめることができて、理解が深まっていいかも。

 

読んでいる人にとっては、なんじゃこりゃな感じかもしれませんが、Unityで勉強中の方に役に立つこともあるのかなと。

 

ということで、プログラミングを継続していきます。