https://dev.classmethod.jp/articles/oss_acedrawingview/
導入の流れ
podを使ってライブラリを導入
->
viewを作ってそのclassにdrawingViewを設定する(これだけで文字を書くところまでは実装できる)
->
スクリプト側から各種設定をする
アプリのストア画面用にホームページを作りました。
忘れっぽいので備忘録的側面も兼ねてブログもついでに作りました。
わからないけどとりあえずやってみようをモットーに
素人視点で好きなことを書いていきます(´ω`)
https://dev.classmethod.jp/articles/oss_acedrawingview/
podを使ってライブラリを導入
->
viewを作ってそのclassにdrawingViewを設定する(これだけで文字を書くところまでは実装できる)
->
スクリプト側から各種設定をする
https://github.com/SwiftyTesseract/SwiftyTesseract#recognition-results
https://github.com/tesseract-ocr/tessdata_best
この文書作成時点での最新verでも問題なく動作。
ただし日本語に関しては今の所ひらがな手書きしか確認していないが、精度がイマイチ。
EX)“う"と"つ"の認識。“き"と"さ"の認識がシビア
pyenvとかanacondaとか色々環境を整える手順がネットには溢れていたけどunityLearnの言う通りに
やるのがスムーズなのでanacondaを使う。
2020.4.3 unity公式のML-hummingbirdはこの時点で古いpythonのバージョンで環境設定しないと動かない!
3.6で環境構築したら動きました。
公式チュートリアル
https://learn.unity.com/project/2d-roguelike-tutorial
アセットストア
https://assetstore.unity.com/packages/essentials/tutorial-projects/2d-roguelike-29825?locale=ja-JP
総合的に勉強できるとても良いassetだった。
animator,sprite画像の扱いなども含めて全体的に一気に勉強できる。
これのoverrideやabstract,<>のようなジェネリクスの使い方がわからないため独習C#も読んだが合わせてやるとより効果的だった。
ゲームとして実際に組み込むにはいくつか問題があるので追加は必要かも?
アプリはだいたいシングルスレッド(unityならawake().start()C#ならmain()みたいな)だけどネットワーク通信するとき処理が1個しか走らないんじゃ困るから個別に処理を走らせるためにある。 非推奨で触るべきじゃないけどThreadクラスというものもある。 スレッドの生成と実行をより改善したのがスレッドプール。 スレッドプールを使ったスレッドのことをタスクという。
[Read More]//クラスの外で定義
delegate void DoDeligate(string str);
class DelegateTest
{
static void Heppoko(string s)
{
//Heppokoの処理内容
Console.WriteLine(s);
}
static void StringCount(string s)
{
//StringCountの処理内容
int num = s.Length;
Console.WriteLine(num);
}
//プログラムが動いたとき一回だけこの中の処理が動く前提で例を書いている。
void start()
{
//Heppokoメソッドが使える
var v1 = new DoDeligate(Heppoko);
//これは
//DoDeligate del = method;
//とも書ける。
v1("へっぽこ太郎");
//DoDeligateメソッドが使える
var v2 = new DoDeligate(StringCount);
v2("へっぽこ太郎");
}
}
デリゲートはメソッドを1個だけじゃなくて複数受け取ることもできる。 上のHeppoko,StringCountメソッドがある前提で例を書くと
[Read More]//親クラス
class Person{
//定義内容
}
//子クラス
class BusinessPerson : Person{
//Personクラスを継承した小クラスの定義内容
}
Person p = new BusinessPerson();
//親クラスの中に小クラスのインスタンスをそのまま入れれる、
小クラスに親クラスを入れる。(入れたいクラス名)、クラス名 as 入れたいクラス名とも書くことができる。asで書くと正しくキャストできない場合nullが帰ってくる。
[Read More]オーバーロードとは、1つのクラスに同じ名前のメソッドを複数定義すること 引数によって処理を切り替えれる。
...
private string firstName;
private string lastName;
public void ShowName(string firstName)
{
this.firstName = firstName;
}
public void ShowName(String firstName, string lastName)
{
this.firstName = firstName;
this.lastName = lastName;
}
...
確実な初期化を実現する機能がコンストラクタならば、確実な終了処理を実現するのがデストラクタ。全然見る機会がなかったと思ったら、今はガベージコレクションとやらが勝手に掃除してくれるみたいです。
[Read More]unityを使っていて勉強不足で他の方が書いたコードがわからなかったりすることが結構あります。その時用に自分では使わないけどコードを読むためにぱっと全体を勉強しようと思いました。
[Read More]