LoginSignup
2
0

More than 1 year has passed since last update.

時計リベンジ+GitHubについて

Last updated at Posted at 2022-12-21

【完走目指す】初心者が25日で強くなる Advent Calendar 2022
19日目です

GitHubを使おうとした

やろうとしていた。
前回はうまくいったから、今回もうまくいくだろうと思ってた。
あれから20日くらいエラーが出続け、試行錯誤した結果をまとめておきます(備忘録)

エラー吐かれる

スクリーンショット_20221220_232957.png
何度やってもこれ。
調べても、治らない。
そして、今日にいたる。

突然の成功

スクリーンショット_20221220_233338.png
cdを使うと、自分が今いる位置を移動できる。
これで、自分がgithubに上げたいファイルまで移動する
うまくいくと、
image.png
~だけだった部分が変わる。
あとは3日目の記事に書いたとおりにやってください。
補足すると、
スクリーンショット_20221220_234049.png
ここの部分の、
スクリーンショット_20221220_234058.png
これを押したら勝手にコピーされて、
image.png
右クリック→paste
これで、誰でも簡単にできる。楽勝

時計リベンジ

10日目の記事にて、
image.png
こんなことを書いておきながら、デジタル時計しか作る余裕がなかった。
ということで、時計制作をリベンジします。
まず、長針と短針を作ります
時計長針.png
時計短針.png

いい感じに配置します。
この針が動きます。
ところでこの針は原点が合ってないので、動かそうとすると
スクリーンショット_20221221_094558.png
これがスクリーンショット_20221221_094609.png
針の中央を原点として回ってしまいます。

直す

空のオブジェクトを作り、針と親子関係にします。
スクリーンショット_20221221_094831.png
原点にしたいところに空のオブジェクトを移動します。
スクリーンショット_20221221_094844.png
これで、空のオブジェクトを原点として針を回転させられるようになりました。
スクリーンショット_20221221_095111.png
針をくっつけた状態の空のオブジェクトを移動させます。
それでは、時計を動かす部分を作っていきます。
時計の長針は、1分間に
360/60=6
6度動きます
短針は、12分ごとに6度動きます。
ところが、
これを書こうとしていたら
スクリーンショット_20221221_105321.png
vector3ではposition(位置)はとれるけどrotation(角度)はとれないみたいです。
結果的に、以下のようになりました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class Clock : MonoBehaviour
{
 
    public GameObject HariM;//分
    public int M;
    public GameObject HariH;
    public int H;

    DateTime ND;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        ND = DateTime.Now;
        M = ND.Minute;
        H = ND.Hour;
        HariM.transform.rotation =Quaternion.Euler(0,0,-M*6);
        HariH.transform.rotation = Quaternion.Euler(0, 0, -(H*30 + 0.5f * M));
    }
}

これで、
スクリーンショット_20221221_130452.png
スクリーンショット_20221221_130501.png
今の角度を表せるようになりました。
あとは、背景を作ります。せっかくなのでいくつか作って変更できるようにします。

時計盤

作ります。
1.シンプルなデザイン
時計盤1.png

2.ローマ数字
時計盤2.png

3.漢字
時計盤3.png

3パターン作りました。
それぞれ位置を調整して配置しておきます。
以下のように記述しましょう

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Tokeiban : MonoBehaviour
{
    public Toggle A;
    public Toggle B;
    public Toggle C;
    public GameObject[] Tokei;
    // Start is called before the first frame update
    void Start()
    {
        A.isOn = true;
        
    }

    // Update is called once per frame
    void Update()
    {
        if (A.isOn == true)
        {
            Tokei[0].SetActive(true);
            Tokei[1].SetActive(false);
            Tokei[2].SetActive(false);

        }
        if (B.isOn == true)
        {
            Tokei[1].SetActive(true);
            Tokei[2].SetActive(false);
            Tokei[0].SetActive(false);

        }
        if (C.isOn == true)
        {
            Tokei[2].SetActive(true);
            Tokei[1].SetActive(false);
            Tokei[0].SetActive(false);

        }

    }
}

今回は、ToggleのGroup
image.png
これを使っていきます。
空のオブジェクトにToggle Groupというものをつけて、
image.png
ToggleのGroupの所にさっきの空のオブジェクトを入れてあげます。
これで、準備が完了しました。
では、動かしてみましょう。
image.png
最初は1にチェックが付いています。
これを壱に変えてみると、
image.png
(なんか画面に収まってないけど)ちゃんと切り替わりました!
完成。

まとめ

アナログ時計も作れる
病身を入れたいなら、分針の部分と同じ感じに作りましょう。
secondを取得して分と同じように作るだけです。

19日目 終わり

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0