【完走目指す】初心者が25日で強くなる Advent Calendar 2022
19日目です
GitHubを使おうとした
やろうとしていた。
前回はうまくいったから、今回もうまくいくだろうと思ってた。
あれから20日くらいエラーが出続け、試行錯誤した結果をまとめておきます(備忘録)
エラー吐かれる
何度やってもこれ。
調べても、治らない。
そして、今日にいたる。
突然の成功
cdを使うと、自分が今いる位置を移動できる。
これで、自分がgithubに上げたいファイルまで移動する
うまくいくと、
~だけだった部分が変わる。
あとは3日目の記事に書いたとおりにやってください。
補足すると、
ここの部分の、
これを押したら勝手にコピーされて、
右クリック→paste
これで、誰でも簡単にできる。楽勝
時計リベンジ
10日目の記事にて、
こんなことを書いておきながら、デジタル時計しか作る余裕がなかった。
ということで、時計制作をリベンジします。
まず、長針と短針を作ります
いい感じに配置します。
この針が動きます。
ところでこの針は原点が合ってないので、動かそうとすると
これが
針の中央を原点として回ってしまいます。
直す
空のオブジェクトを作り、針と親子関係にします。
原点にしたいところに空のオブジェクトを移動します。
これで、空のオブジェクトを原点として針を回転させられるようになりました。
針をくっつけた状態の空のオブジェクトを移動させます。
それでは、時計を動かす部分を作っていきます。
時計の長針は、1分間に
360/60=6
6度動きます
短針は、12分ごとに6度動きます。
ところが、
これを書こうとしていたら
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));
}
}
これで、
今の角度を表せるようになりました。
あとは、背景を作ります。せっかくなのでいくつか作って変更できるようにします。
時計盤
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
これを使っていきます。
空のオブジェクトにToggle Groupというものをつけて、
ToggleのGroupの所にさっきの空のオブジェクトを入れてあげます。
これで、準備が完了しました。
では、動かしてみましょう。
最初は1にチェックが付いています。
これを壱に変えてみると、
(なんか画面に収まってないけど)ちゃんと切り替わりました!
完成。
まとめ
アナログ時計も作れる
病身を入れたいなら、分針の部分と同じ感じに作りましょう。
secondを取得して分と同じように作るだけです。
19日目 終わり