ARcoreの青いドットを消す
HelloARして認識された特徴点が青いドットでてくるやつを消す
PointcloudVisualizer.cs
ファイルを探して
public void Start() { } public void Update() { }
とりあえずStartとUpdateの中身を全部コメントアウトにした。
HelloARして水平認識のGridLineを消す
こちらの記事の続きになります。
ARcoreで地面を認識すると白や赤、紫などの線がでてきますよね。 それを消していきましょう。
検索ワードは「arcore helloar remove white line」で検索して
こちらのコメントを参考にしました。
と言ってもYoutubeの動画を参考にしたのですが。。。
ちなみに今回の記事はarcore-unity-sdk-v1.6.0.unitypackage
に関してになります。
上の参考にしたURLのコメントの中にあるyoutubeの動画は1.0.0なのでちょっと違うところがあり、
1.0.0ではTrackedPlaneVisualizer.cs
が1.2.0以降ではDetectedPlaneVisualizer.cs
になっています。
さて、地面認識のGridLineを消すには
DetectedPlaneVisualizer.cs
を開いてUpdateの中にあるL97あたりの
m_MeshRenderer.enabled = true;
こちらをコメントアウト。
あとはL111あたりのpublic void Initialize(DetectedPlane plane)
の中の
m_MeshRenderer.enabled =true;
こちらを
m_MeshRenderer.enabled =false;
にすることでいけました。
HelloAR :)
Unity最近やってるからYouTubeでUnityの動画みまくってたんだけど、ARすごいなーってなって、HelloARして色んなところにドロイド君召喚して遊んでる☺
— あんな (@anapple07_jp) December 21, 2018
ってことでHelloAR!!
ちなみに macOS Mojave Unity 2018.2.14f1 Galaxy S9+(Android8.0)
です。
基本的に下記のこちらの通りにやれば行けるのですが、
Quickstart for Android | ARCore | Google Developers
なにせAndroidアプリに間することは4年前にとりあえずやってみた以来で、今のPCにはとりあえずinstallして立ち上げたことのないAndroidStudioが入っているだけ、だったので何かと困りました。
開発者モードの設定
Build&Runしたら、No Android devices connectedって言われて、MacにAndroid繋いだら充電はされるけど、何もおきずあれ??
[設定]→[端末情報]→[ソフトウエア情報]→[ビルド番号]連打で開発者向けオプションが爆誕。
USBデバッグをアクティブにし、その後
https://www.android.com/filetransfer/:Android File Transfer
こちらをMacに入れておきます。
SDKのインストール
Android StudioをinstallするときにSDKも入れるかチェックをするらしいのですが、とりあえず私は入れてなかったらしく。 適当にprojectを作って
この右上のところから
Android8.0のSDKをいれました:)
Build
それで前述のこのあたり通りにやりました。 Quickstart for Android | ARCore | Google Developers
Player Settings > Other Settings > Minimum API Level Player Settings > Other Settings > Target API Level
はAndroid 8.0にしました。
Buildする前に、Unity側で [Unity]→[Preference]→[External Tool]でJDKのpathを入れます。 (SDKはbuildするときに勝手にいれてくれた) ちなみにJDKのpathは
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
でした。
で、よーし!Build & Run!!
ってやってもアプリはinstallされたのですが、 Unityの初期の画像がでてくるだけで、カメラが起動するわけでもなくなにもおきず、、、。
事象としては
こちらと一緒で Scens>SampleScen
のチェックを外せば行けるそうですが、それでもうまくいかず、、、。
一時は途方にくれましたが、一旦一度入れたアプリをアンインストールして再度Buidl&Runしたらできました(^O^)/ワーイ
最初USBデバッグ有効にしてなくて、なんでデバイス認識してくれないのかわかんなくて、 apkファイルをメールで送って、、、とかってしてたからかなあ??
とりあえず部屋でもやってみたけど狭いからあんまり認識してくれるところがないので、 駅行く途中の道とかでドロイドくんを量産して 振り返って「まだいるーw」ってやって一人で遊んでる(^O^)/
HelloARしただけだけど、めっちゃ楽しい :) Hello worldできたときのキラキラした気持ちを思い出した :)
もっと色々できるようになりたいなー :)
動揺したけど、普通にただの配列のマージだね...
for my $x (@hoge, @fuga) {}
みたいなコードあってなにこれ?!ふぁ?!って動揺したけど、普通にただの配列のマージだね...
#!/usr/bin/env perl use strict; use warnings; my @hoge = (1,2,3); my @fuga = (11,22,33); for my $x (@hoge, @fuga) { print $x . "\n"; } ## output #1 #2 #3 #11 #22 #33
herokuのDBにPSequelから接続する
heroku pg:credentials:url --app <app name>
Connection information for default credential. Connection info string: "dbname=xxxxx host=xxxxx port=5432 user=xxxx password=xxxx sslmode=require" Connection URL: postgres://xxxx
がでるので、PSequelのnew connectionでhostなどを入れる。
USE SSLにもチェックを入れる。
Perlのdefindeとexists
definde
はkeyがあってもundefならfalseになる。
exists
はkeyがあればtrueになる。
#!/usr/bin/env perl use strict; use warnings; use utf8; my $result; $result->{test1} = 'undefind...'; $result->{test2} = ''; $result->{test3} = undef; #defined { if ( defined $result->{test1} ) { print 'defined test1 is ok' . "\n"; } if ( defined $result->{test2} ) { print 'defined test2 is ok' . "\n"; } if ( defined $result->{test3} ) { print 'defined test3 is ok' . "\n"; } if ( defined $result->{test4} ) { print 'defined test4 is ok' . "\n"; } ### output ### ##defined test1 is ok' ##defined test2 is ok' } #exists { if ( exists $result->{test1} ) { print 'exists test1 is ok' . "\n"; } if ( exists $result->{test2} ) { print 'exists test2 is ok' . "\n"; } if ( exists $result->{test3} ) { print 'exists test3 is ok' . "\n"; } if ( exists $result->{test4} ) { print 'exists test4 is ok' . "\n"; } ### output ### ##exists test1 is ok' ##exists test2 is ok' ##exists test3 is ok' }