ホーリーのプログラミング日記

ホーリーのプログラミング日記

エキセントリック・スーパーアプリクリエイター / アプリ総DL数 約180万 / 全然分からない 俺は雰囲気でアプリを作ってる / iOS : apple.co/3m3HxSm / Android : bit.ly/3ma0liZ

【Unity】ScrollRectのスクロール位置をスクリプトから変更する

 

自分への備忘録です。

 

ScrollRectを使って、長ったらしい文章を表示させてたんですけど、場面を切り替えても、スクロール位置が戻らないんですよ。

GIFで説明するとこんな感じです。

 

f:id:gevvoihorry:20190312070511g:plain

 

これいくつか方法があると思うんですが、今回はスクロール位置をスクリプトから変更しようと思いました。参考にしたのは公式のこれ。

Unity - Scripting API: UI.ScrollRect.verticalNormalizedPosition

 

public ScrollRect scrollRect;

 

ScrollRectを設定して。

 

scrollRect.verticalNormalizedPosition = 1.0f;

 

verticalNormalizedPositionを変更してやればOKですね。

一番上に戻すには1.0fを入れてやればOKでした。

サクッとアプリ開発

 

出来たら苦労しねーよ

 

それが出来たらどれだけ楽か。

やれどやれど終わらん。

そんなに難しいことしようとしてるわけじゃないのに、全然終わらんわ!!

 

、、、

 

序盤からエキサイトしすぎました。

どうもこんにちは。先日禁煙を試みた男ホーリーです。

 

毎朝早起きして、日の出までにタバコを1箱吸うのが日課だったんですが、これ大いに無駄だなと思い、禁煙を試みたんですよ。

んでタバコ代わりにフリスクを口にしてたんですが、慣れてないせいか5~6粒くらい出てくるわけです。こっちはちょうど2粒出したいっていうのに。

 

でも周りの目があるんで、「わしゃ最初から狙って5粒出しとるんじゃい」って顔しながらボリボリ食べてたんですけど、いつまでたってもその調子なんで、辛くなってきました。

フリスクが2粒出ないことが原因で、禁煙に挫折しましたよ。

 

いやー、あれはムズイ。フリスクはテクニックがいる食べ物なんですね。

 

===

 

えー、なんの話をしたいのか忘れましたw

とりあえず禁煙についてはあれですね。やらないといけません。

 

タバコは無駄ですよ。最近はタバコ吸える場所が限られてるんで、そこまでの移動時間が無駄。

また僕にはタバコ吸わないと集中出来ないっていう、クソみたいな悪癖があったんですが、これはだいぶ改善されてきています。

 

しかし、他人と会話するのにタバコがないとダメっていう悪癖は改善の兆しが見られません。

家族の前ではガチで1本たりとも吸いたくならないのに、他人の前ではダメなんですよね。

(最近は吸わない人が多数でしょうが、僕の周りは基本的にガテン系なんで、みんな吸うんですよ)

 

まあそんな幼稚なこと言ってられる年齢でもないので、このへんは即座に変えていきたいと思います。

百害あって一利なし、とまでは言いませんが、基本的に無駄ですよ。タバコってやつは。

自分ばかりか他人にも害あるし。

 

===

 

さて本題に入りましょう。サクッとアプリ開発ですよ。

これは昨日「サクッと付箋メモをリリースした」って記事を書いたんで、そのノリで付けたみたタイトルですね。

サクサク書けるメモ(ToDo)アプリ「サクッと付箋メモ」をリリースしました - ホーリーのプログラミング日記

 

だから特に書きたいことがあったわけではないんですが、とりあえずあれですよね。

開発スピード=技術力ってわけではないと思うんです。

これ何の仕事でもそうだと思うんですが、技術力の高い人が一番仕事が速いわけではないでしょう。

それよりは時間コントロールであったり、周りとの連携が上手い人の方が、仕事が速いと思うんです。

 

アプリ開発で言うとなんだろう?とりあえず話を副業限定にしましょう。

この場合、一番大事なのは時間の確保ではないでしょうか?

専業でわりと自由に時間使える人には、そこまで関係ないような話ですが、そうでない場合、一番大事なポイントは時間の確保だと思うんです。

 

会社員でもいいですし、独立してるけど受託の仕事が忙しいとかでもいいんですが、とにかく時間取れないと開発出来ないじゃないですか。自分のアプリは全然完成しないでしょう。

その場合、足りてないのは時間ですよね。

 

そりゃ技術力の低い人よりは高い人の方が開発スピードは速いんでしょうが、低い人が毎日5時間確保出来て、高い人が1時間しか確保出来ないってことだと、話は変わってきますよね。

「時間を捻出すること」って社会人にとって大切な能力だし、副業開発者のスピードにも直結する話だと思います。

 

あとは考え方ですかね。とりあえずザックリ完成させてリリースしちゃおうって考えてる人と、とにかく完璧なものを作りたいって人では、当然スピードは変わりますよ。

これどっちを選ぶかっていうか、程度の問題なんですけど、考え方もスピードに直結しますよね。

もちろん、どんな仕事にも共通だと思います。

 

「サクッとアプリ開発」っていうタイトルからはズレてしまったんですが、仕事(作業)スピードってやつを考えた場合、技術力はそこまで大きなウェイトを占めないってことが言いたいんですよ。

それよりは時間の管理力であったり、仕事に対する考え方の方が大事だと思います。

 

技術力の向上は永続的課題として、それ以外の要素にも目を向けないと、自分のスピードは上がらないでしょう。

サクサク書けるメモ(ToDo)アプリ「サクッと付箋メモ」をリリースしました

 

「サクッと付箋メモ」っていうアプリをリリースしました。

メモアプリっていうか、ToDoアプリと言った方が適切かな?

あれこれ書き込んで、それをチェックしていく感じです。

 

サクッと付箋メモ

サクッと付箋メモ

  • Taro Horiguchi
  • 仕事効率化
  • 無料

 

GIFで紹介するとこんな感じ。

 

f:id:gevvoihorry:20190310162755g:plain


うん。サクサク動いてる。

 

他のアプリと比べてどうか分からんが、実にサクサク動いてるぞ

 

(ちなみに動画はこれです)

 

===

 

えー、作った本人が言うのもなんですけど、これといった長所はないんですよw

作るにあたって、メモアプリ(ToDoアプリ)をちょこちょこダウンロードしてみたんですが、恐らく一番便利なのはこれですね。タブ型ToDoリスト。

 

タブ型ToDoリスト - シンプルなメモ帳 -

タブ型ToDoリスト - シンプルなメモ帳 -

  • Yoshiyuki Tanaka
  • 仕事効率化
  • 無料

 

んで、基本的にはこれで十分だと思ったんですけど、このアプリはバッジのコントロールが出来ないんですよ。

 

f:id:gevvoihorry:20190310162252j:plain

(バッジっていうのはこれですね。赤丸のやつ)

 

未チェックのタスク数をアイコンに表示することが出来るんですが、ON OFFの2択しかない。

僕は自分のToDoリストを作るとき、Today Later Maybeって3つに分けるんですよ。

今日やることと、後でやること、やれたらやることの3つですね。

 

んで、バッジ出せた方が便利なんですけど、Todayのタスクに関してだけバッジを出したかったんです。

なので、サクッと付箋メモの長所を1つだけ上げるとすれば、バッジのコントロールが出来るってことでしょうか。

 

繰り返しになりますが、あとは普通です。ビックリするくらい普通。

 

そんな普通のアプリをリリースしたというお話ですw

 

P.S.

自分で使ってみて思うんですけど、ToDoリストってパソコンからも触れた方が便利ですよね。

普段のタスク管理はiPhoneに最初から入ってるメモアプリを使ってるんですが、スマホとパソコン、両方から触れて便利だなと感じています。

(前はEvernoteだったんですが、iPhoneのメモアプリの方が入力しやすい)

 

だからサクッと付箋メモも、パソコン、つまりブラウザからもあれこれ出来た方が便利だと思うんですが、とりあえずアップデートの予定はないですね。

今作ってるゲームが一段落したら、ちょっと考えてみたいと思います。

 

P.S.2

そいや書き終わって思い出したんですが、Android版はバッジ出ないです。

出し方が分からなかったんで、とりあえず保留になってます。

この場合、Android版の魅力はなんだろう。。

ドットインストールにUnityの動画3本あるよ

 

そいやこないだ気付いたんですけど、ドットインストールにUnityの動画あるんですね。

https://dotinstall.com/

 

Unity入門。2Dシューティングゲームを作ろう。3Dゴルフゲームを作ろう。

この3本がありましたよ。

 

Unity入門

https://dotinstall.com/lessons/basic_unity_v2

 

2Dシューティングゲームを作ろう

https://dotinstall.com/lessons/2dshooting_unity

 

3Dゴルフゲームを作ろう

https://dotinstall.com/lessons/3dgolf_unity

 

Unity入門は誰でも見れるみたいですが、シューティングとゴルフは有料会員でないと見れないみたいですね。

しかし、ドットインストールは見るたびに気付きがあるので、Unity入門だけでも見る価値はあるでしょう。

 

んで、これシューティングのところに「三角関数を使って敵機に動きをつけよう」って回があるんですよ。

https://dotinstall.com/lessons/2dshooting_unity/47515

 

これ三角関数を知らない僕にとっては、めちゃくちゃ魅力的な回ですね。

このへんをサクッとやって、「三角関数知ってる感」を出したいと思います。

X対応の謎

 

こないだ「Unity製のアプリをXcodeのシュミレーターで立ち上げられることを知らなくて、めっちゃ恥ずかしい」みたいな話を書いたんですけど、どうもこれそんなに恥ずかしいことではなかったみたいですね。

結構ガチで恥ずかしいやつ - ホーリーのプログラミング日記

 

全国に2人は同志がいるはず、なんて書いたんですが、とりあえず身近なところに2人いらしたので、即座に考えを改めた次第ですw

 

そいや本とかにも、実機転送のやり方は書いてあっても、シュミレーターを作ったビルドは書いてないですよね。

「うおお。知らんかった。どうしよう。さすがにブログに書くのは恥ずかしいかな?ど、どなんだろ。。」なんて悩んでた自分こそ恥ずかしい。

恥晒してなんぼのブログなので、今回もバーンと書いていこうと思います。

 

===

 

えー、そんなわけで、シュミレーター繋がりから、iPhoneX対応の話を書きたいと思います。

書きたいっていうか、聞きたいって方が正しいかな?

iPhoneXが出てからというもの、画面サイズに対応するのって、めっちゃ面倒くさくなったじゃないですか。

 

(てかこれ書きながら画面サイズ一覧表みたいなの見たら、AndroidもXみたいな比率のスマホ多いんですね)

https://sounansa.net/archives/2796

 

それで、これってみんなどうしてるんですか?

Xcode × Swiftで開発されてる方は、Xcodeの方で合わせられるようになってると思うんですが、問題はUnityですよ。

僕も思いっきりUnityなわけですけど、UnityでXに対応するのって、どうしたらいいんでしょうか?

 

実はそんなに知らないんですよねw

 

僕のUnityは2017.4とかそのくらいのバージョンで、2018にすらしてないんですが、最新に近いバージョンだと、普通に対応出来るのかな?

本当に知識が浅いので、とりあえず自分がやってることと、最近悩んだことについて書いてみたいと思います。

 

===

 

僕が今日まで作ったUnity勢のアプリって、基本uGUIを使ったものが多いんですよ。

最初にCanvasを画面に置いて、サイズを設定して、そこにボタンとかイメージとかテキストを置くみたいな。

和尚本に出てくる脱出ゲーとか放置ゲーの作り方、そのままでやることが多いです。

 

んで、この場合のX対応なんですが、それはCanvasを縦に合わせるのか横に合わせるのかで変えています。

 

f:id:gevvoihorry:20190308172725p:plain



Matchってとこですね。この画像ではHeight(高さ)に合わせてるので1になっています。

 

んで、普段は9:16で開発してるんですが、Xにすると横が見切れちゃうので、横で合わせるように変えてるんですよ。

 

if(1.0f * Screen.width / Screen.height < 9.0f / 16.0f){
    GetComponent<CanvasScaler>().matchWidthOrHeight = 0.0f;
} else {
    GetComponent<CanvasScaler>().matchWidthOrHeight = 1.0f;
}

 

コードはこんな感じで、9:16を下回ってるかどうかを判定、それで縦横どっちに合わせるかを変える感じです。

このコードをCanvasにアタッチさせています。

 

実際の見た目なんですが、横に合わせるので、上下に黒帯が出ちゃうんですよ。

 

f:id:gevvoihorry:20190308173524p:plain


手元にX系統の実機がないので、これシミュレーターの画像なんですが、まあ大丈夫でしょう。綺麗に溶け込んでますよw 

(実機で確認しても、僕にとっては全然OKです。かなり自然な感じ)

 

Canvasにポチポチ置いてく系のアプリは、基本的にこうやって対応しています。

 

この記事と同じかな?

UnityのiPhoneX対応案 - Qiita

 

===

 

えー、そんなこんなでX対応をしてたんですけど、最近作ってるゲームのワンシーンで、オブジェクトをプレファブにして、画面に沢山出すところがあったんです。

 

f:id:gevvoihorry:20190308174045p:plain

 

これですね。まだ世を忍ぶ仮の姿だと信じたいんですが、こんなシーンがあるんです。

青い点々がプレファブ。

 

それで、この画面をXの比率にすると、どうも変なことになってしまうんです。

 

f:id:gevvoihorry:20190308174142p:plain

 

プレファブのポジション変わらずそのままで、他のが変わった分おかしくなる、みたいな。

 

Canvas内のことは先ほどの小手先テクで何とかなるんですが、ワールド座標で指定しているプレファブを、どうやって管理すればいいのか分かりませんでした。

てか正直な話、今も分かってませんw

 

とりあえずカメラを引いたらいい感じになったんですよ。

 

f:id:gevvoihorry:20190308174325p:plain

 

Main CameraのSizeってとこですね。

 

f:id:gevvoihorry:20190308174405p:plain

 

通常は5なんですけど、画面比率によって、それを6にしたりとすれば、現状いい感じになってます。

 

この手のアプリをそんなに作ったことがなかったんで、Canvas外のことがよく分かってないんですよ。

普通はどうやってXに対応するんでしょう?

てかさっきのuGUIのやつも、みんなどうやってるんでしょうか?

 

非常に重要なことだと思うんですが、とりあえず僕は適当です。全然分かっておりませんw

Bitlyに癒やされる

 

URLを短縮するのにBitlyを使ってるんですよ。

https://bitly.com/

 

以前はGoogleのやつを使ってたんですが、終了するとのことなので、それでBitlyに乗り換えました。

グーグル、URL短縮サービス「goo.gl」終了へ--4月13日から新規短縮が一部不能に - CNET Japan

 

アプリにシェアボタン付けたときとか、短縮URLは重宝しますよね。

iOSAndroidもURLが長いんで、両方載せたら字数が長いし、見づらい感じになってしまいます。ここは短縮した方がスマートでしょう。

ツイッターの場合は字数制限もありますしね。

 

んで、このBitlyなんですけど、最近たまに落ちるんですよね。

Kindleマンガ無料仙人の原稿を毎日書いてるんですが、そのときに気付くんですよ。Bitly落ちてるって。

 

しかしこのBitlyの落ちてる画面が、妙に憎めない感じなんですよ。

 

f:id:gevvoihorry:20190307162809p:plain

 

正直に言えばあれです。

 

僕はこの画面が大好きですね

 

なんかゆる〜い感じで、癒やされちゃうんですよね。

一瞬でもイラッとした自分が、逆に恥ずかしくなってしまいますw

 

サービスに不具合が起きないことってないじゃないですか。

だからそんなときのために、こういう緩い画面を用意するのはありだなと思いました。

 

真面目にカッチリやろうとすればするほど怒られる。

ならば逆に緩い雰囲気を出すことで、むしろ相手を癒せるんじゃないでしょうか。

結構ガチで恥ずかしいやつ

 

こないだ、リリース間近のメモアプリに、レビューのお願いを出すシーンを作ってたんです。

これ自分なりのテンプレートがあるので、いつと同じやつを流用してるんですよ。

なのでこのときも、いつも通りの流れ作業で組んでいました。

 

でも、なんか画像が荒いんですよね。どう見ても荒い。

「おかしいな。他のアプリと同じ画像を使ってるのは間違いないのに、なんで今回だけ荒く出ちゃうんだろ?」なんて思ってたんですが、どうやら変なところにチェックを入れていた模様です。

 

 

画面比率を変更するところにある、Lowなんちゃらってやつですね。

こいつが悪さをしてるのに気付かず、小一時間くらい格闘しておりました。

一瞬自分の目が悪くなったことも疑ったんですが、そんなバカなことはなくて、安心しましたよw

 

いつの間にチェックを入れてたのか分かりませんが、まあこういうことってありますよね。

小一時間格闘するかは分かりませんが、UnityないしXcodeの変な機能が発動してしまい、なかなか直せないことってあると思うんです。

 

===

 

こういうことがあるたびに、「まだまだ全然Unity分かってないな。使ってる機能は2%くらいじゃないか?」なんて思うんですが、こないだ、さすがにそれは知っとけよってことがあったので、ちょっとカミングアウトしようと思います。

 

結論から書くとあれですね。

 

Unity製のアプリもXcodeのシュミレーター使えるってことを知りませんでした

 

これマジで知らなかったんですよ。

なんなら先日「じぇふさん」のブログ読んで知ったくらいですもん。

「ぐりぐり都道府県」のiOS版をリリースしました - ミライノ記録

 

「おおおお!!!マジか!!!使えるんかい!!!」って言いながら、スマホを持つ手が震えてたのは、ここだけの話にしておきましょう。

初めてビルドしたときに、Xcodeから実機しか選べなかったんで、てっきりシュミレーターは使えないものだと思ってたんですよね。

 

シュミレーターはあくまでもシュミレーターなんですが、手元にX系統の実機がないので、使えると知った今は重宝しています。

 

さすがにこれ、みんな知ってますよね?僕だけが知らなかったんだと思ってるんですが、全国には2人くらい同志がいると思うので、ちょっとやり方を紹介しておこうと思います。

 

結構恥ずかしいんで、フォントサイズ抑えめで書いていきますね。

 

f:id:gevvoihorry:20190306182608p:plain


ここですよ。このTarget SDKってことろで、Simulator SDKを選ぶだけです。

この状態でビルドすれば、Xcodeからシュミレーターを選択出来ますよ。

 

これ読みながら手が震えてることと思いますが、そこは落ち着いて確かめてもらえればと思います。