読みにくいメモ

全然わからない。俺は雰囲気でUnityをやっている。

unityのStartとかUpdateについて

unityに慣れてしまっていたので記憶から消えていた疑問なんですが

「UnityってなんでStart()とかUpdate()とかだけ勝手に実行されんの?」

「UnityのStratとかUpdateって、どのスクリプトのUpdate(Start)がどの順番で実行されてんの?」

うーん...わからん

Unityが作りやすいように魔法の呪文を用意してくれていて、実行順が重要な作り方でない限り、毎フレーム必要な処理はUpdateに、起動時に必要な処理はStartに書いておけばおk!

と、いう感じで使っている人多いですよね。でも、モヤモヤが無くならない人も多いハズ。

ってことで、調べたらモヤモヤの正体がわかるとてもわかり易い記事がありました。

blogs.unity3d.com

unity-michi.com

 

要は「MonoBehaviourが設定した魔法の呪文メソッドが、各魔法の呪文リストにランダムな順番でaddされて、決まった順番で魔法の呪文リストが実行される」からモヤモヤするみたいっすね。(日本語ムズイ

docs.unity3d.com

 

って、ことで上記記事からも分かる通り、むやみにスクリプトを増やしまくってUpadeなりを実行させるとかなり負荷がかかるみたい。

 

個人的には、毎フレーム実行したい関数はUpdateAction()みたいな名前にして、それらクラスを参照したSceneManagerクラスのUpdate()でUpdateAction()をすべて呼び出したら実行順も決めやすいし、わかりやすいし、良いような気がする。

 

public class SceneManager : MonoBehaviour {

 

     DataManager dataManager; 

     TimerManager timerManager;   

     DebugManager debugManager;

 

      void Awake()    { 

          dataManager.Awake_Action(); 

          timerManager.Awake_Action(); 

          debugManager.Awake_Action(); 

    } 

    void Start () {     

          dataManager.Start_Action();       

          timerManager.Start_Action();

          debugManager.Start_Action();

    }

    void Update () {

          dataManager.Update_Action();       

          timerManager.Update_Action();

          debugManager.Update_Action();

    }

}

 

 

 

 

Youtuberになりたい

最近、Vtuberがかなり増えてさらに盛り上がりを見せているYoutubeですが

なんと

 

僕もチャンネル開設しました。

www.youtube.com

 

登録とか少し手間だったけど、意外と簡単に作れた。

普段、趣味でゲームを嗜んでいるが、キャプチャーしてYoutubeにアップすればプレイ記録も残せるし、自分のストレージ食わなくて済むのでかなり便利だって気づいた次第である。

この調子でそこそこ人気Youtuberにもなりたい(野望

 

ブログで使う動画とかもアップしていこうと思う。

無名関数とかラムダ式とかいうやつ

C#でintとかstringみたいにSystem.Actionってのを引数にすれば関数を呼べるってことを最近知ったので使ってみてる。

例えば、下記の1と2は同じ処理だが1は引数の関数を実行するので、呼びたい関数を突っ込めばよい。

string log;

void Awake(){

    SendLog(SetLog); //1

    ActionLog();           //2

}

void SendLog(System.Action act){

    act();

    Debug.Log(log);

}

void SetLog(){

    log="Action!";

}

void ActionLog(){

    SetLog();

    Debug.Log(log);

}

 

ただ、困ったことにSetLogに引数がつけられない。

string log;

void Awake(){

    SendLog(SetLog("無理")); //エラー

}

void SendLog(System.Action act){

    act();

    Debug.Log(log);

}

void SetLog(string str){

    log=str;

}

 

で、無名関数とかラムダ式使うやつを使おうとおもった。

(引数)=>{処理}と書けば大丈夫らしい。

string log;

void Awake(){

    SendLog(()=>{log="ShimaRin"}); 

}

void SendLog(System.Action act){

    act();

    Debug.Log(log);

}

 

 書き方が独特なので覚えるのに時間かかったが、すごく便利なので多用していきたい。

が、これ処理のせいで動作が重くなったりしないかな。。。というとこだけ疑問。

 おかしなことしなければ大丈夫だとは思う。

 

 

unityちゃんをつかってVtuberテスト!マジ卍!

過去記事にもあるけど、去年作りかけていたプロジェクトを掘り起こしたのでテストした。

 

haraken.hatenablog.com

 

去年の今頃はVtuberなんて言葉もなかったのに、気づけば600人以上のVtuberがいるとか。

あー俺が言いだしたことになんねーかn(例のコラ割愛

 忙しさにかまけてやりたいことやらなくなると時代において行かれるね。。。

 

ってことで下記に現状アップ

youtu.be

 

マジ卍!

次はモーフあたりをいじるかな

モデルもオリジナルにしたいからc4d頑張る

 

輝夜月としのめぐに会いに行くことを目標に暇を見つけてブラッシュアップするか!

 

初めての大型バイクはハーレーでした

無事、普通二輪免許を取得し大型二輪教習へ突入しました。

 

教習車はHONDAかHarleyどちらかを選べ。といわれたので、迷わずHarleyに。

https://www.instagram.com/p/BgIarwMHcfl/

教習車、1200だと思ってたら883だったでござる

 

指導員さんたちは口を揃えて「なんでハーレーにしたの...」と若干面倒くさそうに聞いてきたが、だって乗りたかったんだもん。

 

やはりアメリカンのVツインエンジンだけあってCBとはぜんぜん違う乗り物でしたが、

意外に軽く、全然倒れない。さらには化物みたいな加速に驚いた。これでスポーツスターだから俺のソフテイルはどうなってしまうのか...想像がつかない。

ハンドリングはかなり不安。全然曲がれないし、倒しすぎても「もし倒してしまったら」と思うと体がこわばる。やっぱりエンジンガードは買っておこうと決めた。

 

今週末は教習がない代わりにお台場で開催されるHarleyのイベント「Freedom on tour」に行ってこようと思う。

h-d.jp

普通二輪免許でも試乗できるみたいなので、新しいHarleyにも乗ることができるらしい。

 

雨が降らない事を祈るのみだ。