つよつよにあこがれるプログラマの日記

子育てとかプログラムとか日々の事をここに残します。ぼちぼちやってます。

【Unity】error CS1525 CS0116 CS8025 VSのビルド通るけど、Unity側でエラーとなる

「オンラインゲームのしくみ Unityで覚えるネットワークプログラミング」を写経している。 さて、写経し終わったし実行するかと、Unityの画面に戻るとなにやら3つもエラーが出ている。

CS1525: Unexpected symbol `' CS0116: A namespace can only contain types and namespace declarations CS8025: Parsing error

【解決方法】 全角のスペースがどっかに混ざっている

【解決に至るまで】 予期せぬシンボルがある…ふむふむ。?ってなんだ? 名前空間には、型と名前空間宣言のみが含まれます…ふむふむ パース失敗ね、ふむふむ

頭のいい僕はすぐにひらめいた。これは{}の数が一致しないパターンのやつ! しかし、VSはエラーを指摘していない。どうしたものか。 ははーん、もしかしてEOFの形式がこのファイルだけ違うのかな?と思ったけど、すべてのファイルはCRLFのようだ。

インターネットで全角スペースが入っているというのを見つけて検索から削除してみるとエラーが消えた!ありがとう!よかった! 3つもエラー出ると一瞬絶望感に襲われるけど大抵エラーなんてものは概して1つに対して複数出るのだ。落ち着いて対処しよう。

備忘録で残します。

今日やったこと日記:Windows 10からWIndows IMEを抹殺する

今日やったこと日記

・WIndowsIMEを抹殺 いつもいつもいつもWIndowを更新するたびに復活してきやがる。 おまえらそこまでしてこの糞なIMEを使ってほしいのか?Microsoftの社員さんだってATOKとかGoogle翻訳使ってんじゃないの? ってレベルで頭おかしいぞIMEWindows更新のたびにどこにいったか巧妙に隠されているメニューを見失うので、備忘録 web-generalist.com

・Unityをバージョンアップして、C#の新しい機能を使おう 何の気なしにstatic usingを使ったら、エラーで怒られた。ランタイムが古かった。 どこから変えたらよいかわからない。メニューがないっぽいのでUnityをアップデートすることにした。 www.buildinsider.net

・FireBaseがいいらしい したのブログを読んで、興味が湧いたので調べてみた。 趣味で一人でゲーム作成をやっているけど、いつ完成するやら不安でしかたない。 fushiroyama.hatenablog.com

UnityのSDKも出ている Unity プロジェクトに Firebase を追加する

大人数でリアルタイムにデータをやり取りするようなアプリのバックエンドには向いているっぽい。 ガチャで自分の持ち物が増えていくようなものの場合、別にサービスを建てないといけないなぁと調べてたら GCPとの連携も推奨してた、いろいろドキュメントがありそうなので、ちょっと浮気して試して見るかもしれない。 でも、僕はヘボいのでこういうのでうまく言ったためしがない。そうしてまたSDKだけが増えていく。 業務でやってみたいな。プライベートだと時間が足りないな。 cloud.google.com

Firebase と App Engine フレキシブル環境を使用して Android アプリを作成  |  ソリューション

・MemoryStreamクラス Flushの説明がさっぱりわからん。 https://msdn.microsoft.com/ja-jp/library/system.io.memorystream(v=vs.110).aspx

【Unity】EventTriggerにスクリプトが登録できない&メソッド名が出てこない

EventTriggerにスクリプトが登録出来なくて、困った。 そして、その後スクリプトを登録したはいいものの、イベントを飛ばす先のメソッドが出てこなくて困った。

原因 ・{スクリプト名}.csと、{クラス名}が違うと登録できない。 ・EventTriggerには、まずはGameobjectを登録しないといけない。  そして、そのGameobjectに紐づくメソッドを登録する。

なんか読み返してよくわからないけど眠いので自分用にメモだけ

【.Net Core MVC】npgsqlと戦った

自分の学習実績を思い出せるようにメモ

.Net Core MVC でアプリを書いている(途中、Node.jsに浮気しようとしたが辞めた。

 

今日やったこと

・Oauth2認証の追加(FB,Google

 ・DBのきりかえ、O/R Mapperの使用

 

 --

・Oauth2認証の追加(FB,Google

FacebookGoogle認証を追加した。

.NET Core MVCの初期は大変だったみたいだけど、今はいろいろフレームワーク側がやってくれるので便利。

 

 ・認証の設定
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/?view=aspnetcore-2.1

 

・DBのきりかえ、O/R Mapperの使用

近い内にAWSなりGCPにデプロイする予定なのだが、SQL Serverを使い続けるのもあれなのでDBをPostgresに変更した。O/R Mapperを使うことにした。

 ・O/R Mapper
 http://www.npgsql.org/efcore/index.html

 

 ところが、マイグレーションをかけると怒られて失敗してしまった。

①Npgsql.PostgresException (0x80004005): 42P07: リレーション"AspNetRoles"はすでに存在します
②Npgsql.PostgresException (0x80004005): 42P01: リレーション"hogehoge"は存在しません
③42P07: リレーション"IX_AspNetRoleClaims_RoleId"はすでに存在します

  AspNetのテーブルが作成された後でコケてしまい、hogehogeTablesが作れないみたいようだ。マイグレーションファイルがうまく作れなかったみたい。

自分の操作のせいなのか、Npgsqlのせいなのかわからない。
結局、MigrationClassからAspNet関連テーブルの実行済みのクエリを削除しながらもう一度Update-Daatabase。何回か繰り返してテーブル作成完了

 

--

今日の感想:

O/RMapperもっとハマると思ったけど、普通に動いてよかったー

次はフロントエンドを作り込む。

フロント側書くのめんどくさいなー

 

【.NET MVC / .NET CORE】.NET MVC CORE + EntityFrameworkCoreでマイグレーションがうまくいかない

.NET MVC CORE + EntityFrameworkCoreでマイグレーションがうまくいかなくって困りました。

どううまくいかないかというと、マイグレーションをかけても新しくコードファーストで定義したメンバ列が追加されなくなりました。

 

結論:

アクセサ(getter / setter)を定義し忘れていた。

 

つけたらちゃんとマイグレーションの対象になり、治りました。

【VisualStudio2015/2017】IIS Expressでのデバッグ時に 「SSLを有効にする」が動かない時の直し方

.NET CORE MVCの勉強中、

VisualStudio2017のIIS Expressでのデバッグ時に、

SSLを有効にする」オプションを選択してもうまく動かなくて詰まった。

検索してみると誰もこんな所で詰まっていない。(泣)

困った。直せたのでここに残しておく。


問題:

デバッグ」->「Webサーバーの設定」から「SSLを有効にする(S)」をチェックしてもSSLが有効になってくれない。

ブラウザで開くと、以下のメッセージが表示される。

GoogleChrome

 localhost から無効な応答が送信されました。
InternetExplorer

 このページに安全に接続できません


解決法:

プロジェクト配下applocationHost.configを修正し、デバッグ時に使われるポートの競合を解決した。

→C:\Users\LocalUser\source\repos\SampleProject\.vs\config\applocationHost.config

修正前

<binding protocol="http" bindingInformation="*:44381:localhost" />

<binding protocol="http" bindingInformation="*:44382:localhost" />

<binding protocol="https" bindingInformation="*:44382:localhost" />

 


修正後

<binding protocol="http" bindingInformation="*:44381:localhost" />

<binding protocol="https" bindingInformation="*:44382:localhost" />

 


原因:

設定ファイル内が以下のようになってしまいポートが競合してしまっていた。

 httpとhttpsのポートを1番違いにしようと思って、

デバッグ」->「Webサーバーの設定」の「アプリURL」を変更する時に

SSLを有効にする(S)」のURLをコピペし、最下位一桁をいじった。

結果、設定ファイル内が以下のようになってしまいポートが競合してしまっていた。


メモ:

古いバージョンVisualStudio時代は以下のようにSSL証明書をローカルにインストールしたり、applocationHost.configに設定を追加する必要があったようだ。

今(VisualStudio 2017 + IIS 2018年4月時点最新)では多分しなくていい。

 

・applocationHost.configにバインド登録

お楽しみはこれからだ!: IIS ExpressでSSLを有効にしてデバッグ


・How to trust the IIS Express Self-Signed Certificate

How to trust the IIS Express Self-Signed Certificate – Robert McMurray's Blog [MSFT]

収穫:

この問題にぶち当たって(多分日本で僕だけだと思うけど…)、

VisualStudio2017ではapplocationHost.configの場所がプロジェクトごとに分離されたという事を学んだ。

 ※昔はIIS Express配下→「%USERPROFILE%\Documents\IISExpress\config\applicationhost.config」だった)

 

まとめ:

余計なことはするな

いきなりNodejs

.NET MVC を勉強していました。

大体理解できてきたので、Webアプリをテストで作ろうと思いました。

Oauth2認証を使おうと思いましたが、なかなか泥臭く認証まわりがチャチャチャーっと作れないので苦痛でした。モチベーションが下がり始めました。

 

気づいたらNode.jsをインストールしていました。

 

こないだインタプリタ言語も勉強しようとPythonの本も買ったのに、なぜかNodejs

なんか、こんなふらふら勉強したら身につく技術も身につかない気がするのだが、フィーリングを大切にしたい。せっかくPythonチュートリアル読み終わったのに…なにやってるんだろう。

 

ただ、手を動かしていればそれだけ何か身につくはずだ。

ポジティブに行こうポジティブに。

 

Nodejsで目的のアプリ一個つくったらガッツリ.NET MVCに戻ろう。