みなさんプログラミングの勉強どうやって進めていますか?? 私のおすすめは断然これ!
友人から教えてもらったのですが、一流講師の講座が時間を選ばず受けられます。 セール時には1000円台から受講できるので本を買うより安くコスパ最強です。 エンジニアにマンツーマンで教えてもらおうと思うと、 質問し放題に加えて、30日間返金保障なので安心して購入できます。
Udemyでは細かくセクションごとに分かれ探しやすくなっていますが、 私が実際に役に立ったUdemyのおすすめ講座を紹介します。
Unity ゲーム開発:インディーゲームクリエイターが教える C#の基礎からゲームリリースまで【スタジオしまづ】
【感想】
Unity3D入門の決定版!RPG開発の基本をUnityインストラクターと共に進めるハンズオンコース【スタジオしまづ】
【感想】
Unityゲーム開発入門:Unityインストラクターが教えるマリオ風2Dアクションゲームを作成する方法【スタジオしまづ】
【感想】
[初心者向け] Blender 2.8でアニメーションを作成して Unity で動かすまでの30分講座
【感想】
Unity2Dパズルゲーム開発入門:Admob広告実装と高速にスマホゲームを量産する実践テクニック講座【スタジオしまづ】
【感想】
Unityインストラクターが教えるシャドウバースのような本格2Dカードゲーム開発コース【スタジオしまづ】
【感想】
【iOS13対応】未経験者がiPhoneアプリ開発者になるための全て iOS Boot Camp
【感想】 Unity教材全部スタジオしまづやないか!と思いました?
はじめに
Udemy
です。
1時間2500円が相場なので、それを考えると定価で購入してもお得だと思ってます。
とはいうものの、副業するならコストはできるだけ抑えたいので購入はセール時が狙い目です。
Udemyというか動画教材の欠点としては、
あとで見返すときに「確認したいところがわからない」
ということがあるので、Qiitaやブログなどでメモを残しておくと良いかもしれません。
それでも不思議、私は探す笑Unity教材
Unity ゲーム開発:インディーゲームクリエイターが教える C#の基礎からゲームリリースまで【スタジオしまづ】
Unity教材で迷ったらこれで間違いなし!
marumaro7.hatenablog.com
↑こちらの記事でも紹介しましたが、Unityの基礎だけでなく、
超つまづきやすいAndroidとiOSのリリース手順まで解説しています。
なんですかこれ、、、神ですか?Unity3D入門の決定版!RPG開発の基本をUnityインストラクターと共に進めるハンズオンコース【スタジオしまづ】
Unityで3Dをやりたいならこれ!
基礎から学ぶので初心者でも安心♪Unityゲーム開発入門:Unityインストラクターが教えるマリオ風2Dアクションゲームを作成する方法【スタジオしまづ】
自分でマリオみたいなゲームが作れる幸せ!
マリオメーカーよりも自由に![初心者向け] Blender 2.8でアニメーションを作成して Unity で動かすまでの30分講座
3Dモデルに命を吹き込む!
Unity×Blenderで制作の幅が広がります。
Blenderのインストールは事前に必要です。Unity2Dパズルゲーム開発入門:Admob広告実装と高速にスマホゲームを量産する実践テクニック講座【スタジオしまづ】
とにかく量を作る!
なるほど量産テクニックです。Unityインストラクターが教えるシャドウバースのような本格2Dカードゲーム開発コース【スタジオしまづ】
Unityのチュートリアルをなにかしらやったことある人向けです。
カードゲームの基礎はここに。iOS教材
【iOS13対応】未経験者がiPhoneアプリ開発者になるための全て iOS Boot Camp
ベストセラーだけあって初心者でもわかりやすい
Firebaseとの連携も解説されているのが個人的に嬉しいポイントです。おわりに
だってわかりやすいんだもの、、、
【Unity】DOTweenまとめ
いつも忘れるのでDOTweenの自分用まとめ
- DOTweenとは
- DOTweenでできるアニメーションのイメージ
- 初期設定
- 公式ドキュメント
- DOTweenを使うにはusing設定必須
- 1つのアニメーションにオプションをつける
- 順番にアニメーション
- 任意のタイミングでアニメーション
- 魅力的なUIノウハウ
- おわりに
DOTweenとは
unity-yuji.xyz
面倒な処理も1行でかける
DOTweenでできるアニメーションのイメージ
初期設定
DOTweenの使い方 Tweenアニメーション入門【Unity】|アマガミナブログ
公式ドキュメント
DOTweenを使うにはusing設定必須
using DG.Tweening;
1つのアニメーションにオプションをつける
transform.DOLocalMove(new Vector3(10f, 0, 0), 1.0f)//ローカル座標移動 座標,移動にかける時間 .SetDelay(1f)//SetDelay(待機時間/秒) .SetRelative()//SetRelative() 相対的に移動する 例:Tween前の座標が(5, 0, 0)の時に(15, 0, 0)へ動くようになる .SetLoops(2, LoopType.Incremental)//SetLoops(ループ回数, LoopType) ループ回数は-1で永久ループ //Incremental:前回の位置を基準にしながら差分移動 //Restart:同じ動きを繰り返す //Yoyo:ヨーヨーのように、進んでは戻るを繰り返す .SetEase(Ease.OutQuad);//SetEase(Ease or AnimationCurve) アニメーションの進み具合を指定する。 //DOTweenで用意されているEase型で指定するか、Unity標準のAnimationCurve型を渡します。 //Ease型なら https://easings.net から選ぶ
順番にアニメーション
Sequence sequence = DOTween.Sequence()//Sequence型の変数 sequenceを宣言 .Append(transform.DOScale(1.1f, 1.0f) .SetEase(Ease.OutQuart) .SetLoops(4, LoopType.Restart))//オプション付きアニメーション .Append(transform.DOScale(1.0f, 0.8f))//オプション無しアニメーション .OnComplete(() => Debug.Log("全部終了"));//完了のコールバック //Tweenの追加 //Append() 前のTweenが終わってから実行 //Join() 前のTweenと同時に実行 //Prepend() 再生済のものを除いて、先頭に追加 //注意!オプションはAppend()などのカッコの中に書かないとsequence全体に適用されてしまう //オプションおさらい //SetDelay(待機時間/秒) //SetRelative() 相対的に移動する 例:Tween前の座標が(5, 0, 0)の時に(15, 0, 0)へ動くようになる //SetLoops(ループ回数, LoopType) ループ回数は-1で永久ループ //Incremental:前回の位置を基準にしながら差分移動 //Restart:同じ動きを繰り返す //Yoyo:ヨーヨーのように、進んでは戻るを繰り返す //SetEase(Ease or AnimationCurve) アニメーションの進み具合を指定する。 //DOTweenで用意されているEase型で指定するか、Unity標準のAnimationCurve型を渡します。 //Ease型なら https://easings.net から選ぶ //等速ならEase.Linear
任意のタイミングでアニメーション
using UnityEngine; using DG.Tweening; public class ButtonAnime : MonoBehaviour { private Tween t; void Start() { t = transform.DOScale(1.1f, 0.8f) .SetEase(Ease.OutQuart)//オプション .SetLoops(-1, LoopType.Restart);//-1で無限ループ t.Play();//再生 } //ボタンにこの関数を割り当て public void AnimeStop() { t.Kill();//アニメの破棄 無限ループはKillで破棄する transform.DOScale(1.0f, 0);//元のスケールに戻す } }
//一時停止 t.Pause(); // 最初から再生 t.Restart(); //終了(無限ループの終了には使えない) t.Complete();
任意のタイミングでアニメーションストップ pic.twitter.com/JiiMjOAWyk
— まる@毎日アプリ開発 ダンスドリームMV【公式】 (@Maru60014236) 2021年1月17日
魅力的なUIノウハウ
おわりに
ゆーじさん天才
【Unity】AdMobのUnityAdsメディエーションでiOSリリース直後から広告を表示する
前提
AdMobの広告を実装できている方向け
GoogleMobileAds-v5.4.0
GoogleMobileAdsUnityAdsMediation-2.5.1
はじめに
AdMobの広告を使用する上で、
iOS版は2020年11月頃からアプリリンクしないと広告が表示されなくなりました。
この影響でAppleの審査が落ちるという事態も発生しているようです。
このAppleの審査を通す対策として、2つの方法があります。
①「広告無しで審査を通す→AdMob上でアプリリンクする→広告実装する」
メリット
簡単
デメリット
・再審査が面倒
・広告前提の構成の場合、審査のためにアプリの構成を調整する必要がある
・アプリリンク5日以上かかるため、もやもやする
②AdMobメディエーションを使用しAdMob以外の広告ソースから広告を表示する
メリット
・メディエーションを使用することで、単価が高い広告が表示されるようになる。
・リリース直後からiOS版でも広告表示が可能になる。
デメリット
①の方法より手間がかかる
今回はタイトルにもあるように
②の方法(広告ソースはUnityAdsを使用)で
iOSリリース直後から広告を表示できるようにします。
この記事では、私がメディエーション設定を実装した際の
"つまづいたこと"を中心に書いていきます!
前準備
メディエーション設定をするうえで、8割は公式の説明書を順に追っていくだけでいけました。
説明書
Integrating Unity Ads with Mediation | Google Developers
ただ、英語で書いてあるので英語ができない私には非常に読みにくかったです。
そこで、Chromeのページ全体を翻訳機能を使って読み進めました。
Chrome拡張機能実装手順
ChromeでGoogle翻訳の拡張機能を使おう。英語サイトも怖くないぞ!
つまづいたポイント
1.eCPMいくらでいれたらいいかわからない問題
説明書の項目<UnityAdsを広告ソースとして追加する>のところで
eCPMを自動で調整する設定にしていても、最初は入力する必要があります。
youtubeで調べたら2ドルで入れていたので、真似して2ドルで設定しました。
(よくわかってない)
2.xmlファイル編集方法わからない問題
説明書のこちらの内容は次の方法で設定します。
説明書に書いてある通り、こちらのファイルを開きます。
Assets/GoogleMobileAds/Editor/UnityMediationDependencies.xml
開くとこちらのようになっていると思います。
<dependencies> <androidPackages> <androidPackage spec="com.google.ads.mediation:unity:3.5.1.1"> <repositories> <repository>https://jcenter.bintray.com/</repository> </repositories> </androidPackage> <!-- If using the Unity Ads Service from Unity3D, use this dependency instead to exclude the Unity Ads SDK and avoid conflicting dependency issues. --> <!-- <androidPackage spec="com.google.ads.mediation:unity-adapter-only:3.5.1.1"> <repositories> <repository>https://jcenter.bintray.com/</repository> <repository>https://google.bintray.com/mobile-ads-adapters-android</repository> </repositories> </androidPackage> --> </androidPackages> <iosPods> <iosPod name="GoogleMobileAdsMediationUnity" version="3.5.1.1"> <sources> <source>https://github.com/CocoaPods/Specs</source> </sources> </iosPod> </iosPods> </dependencies>
次のように変更します。
<dependencies> <androidPackages> <!--ここから <androidPackage spec="com.google.ads.mediation:unity:3.5.1.1"> <repositories> <repository>https://jcenter.bintray.com/</repository> </repositories> </androidPackage> ここまで無効--> <!-- If using the Unity Ads Service from Unity3D, use this dependency instead to exclude the Unity Ads SDK and avoid conflicting dependency issues. --> <!--ここから--> <androidPackage spec="com.google.ads.mediation:unity-adapter-only:3.5.1.1"> <repositories> <repository>https://jcenter.bintray.com/</repository> <repository>https://google.bintray.com/mobile-ads-adapters-android</repository> </repositories> </androidPackage> <!--ここまで有効--> </androidPackages> <iosPods> <iosPod name="GoogleMobileAdsMediationUnity" version="3.5.1.1"> <sources> <source>https://github.com/CocoaPods/Specs</source> </sources> </iosPod> </iosPods> </dependencies>
やっていることは
xmlコメントアウトとコメントアウトの解除だけです。
<!--コメントアウトする内容-->
おわりに
xmlの編集方法を調べる良い機会になりました。
最近「ダンスドリームMV」というダンスアプリをリリースしました。
もしこの記事が役に立ったら、このアプリの⭐️5評価お願いします!(懇願)
iOS
http://urx3.nu/QvFa
Android
http://urx3.nu/iRcv
ダンスドリームMV Press kit
Press kit (ver1.0.2/update 2021-01-10)
リリース内容:Release
ダンスシミュレーションアプリ
「ダンスドリームMV」
をiOS / Androidにてリリース致しました。
アプリ内容:Description
有名キャラクター夢の共演!あなただけのダンスステージがここに
ニコニコ動画等でMikuMikuDance(通称MMD)のコンテンツがありますが、
自分で動画を作るとなると相当敷居が高い現状です。
そこで、MMDの世界を手軽に体験していただきたいと思いこのアプリを開発しました!
キャラクター・ダンス・音楽・ステージ・背景・エフェクトを自由に組み合わせ、
思い通りのダンスステージを作ることが可能です!
各要素の数は豊富に用意しているため組み合わせパターンは無限大です!
料金:無料 (広告、App内課金モデル)
カテゴリ:エンタメ
apps.apple.com
Screenshots










Logo
512×512.png
Download
Profile
連絡先:zre142g18985@utopia.ocn.ne.jp
開発アプリ一覧
【Unity】returnに"?" 条件演算子とは
returnに"?"マークあるんですけど????
ブログを見ていたら
returnに"?"が書いてあって、内容が理解できなかったのでメモ
正体は条件演算子
結論として条件演算子というみたいで、
こちらの情報で解決しました。
"?"と":" のセットで使うみたいですね。
組込み演算子 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
具体例
あとから見たときにまたわからなくなりそうなので、 具体例書いておきます。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { private string a;//string型の変数aを宣言 private bool c;//bool型の変数cを宣言 private string b;//string型の変数bを宣言 void Start() { a = "あ";//変数aに文字列 あ を代入 b=AAA();//関数AAA()を実行し、その返り値を変数bに代入 Debug.Log(b);//コンソールに変数bの文字列を表示 } //返り値の型がstring型の関数AAAを作成 private string AAA() { if (a == "あ") { c = true;//aの文字列が あ だったら変数cをtrueにする } else { c = false;//aの文字列が あ ではなかったら変数cをfalseにする } //cがtrueなら返り値は "変数aには あ が入っています。" になる //cがfalseなら返り値は "変数aには あ は入っていません。" になる return c ? "変数aには あ が入っています。" : "変数aには あ は入っていません。"; } }
このスクリプトを"空のオブジェクト"にセットして
実行すると 関数AAA()の返り値の値は
「"変数aには あ が入っています。"」
が返ってきていることがわかります。
おわりに
return A ? B : C
のBとCには"返り値のある関数"を入れることもできるようです。
私が初めてみたのは関数が入っていたので、大混乱でしたー!!
【Unity】iOSアプリ申請 却下理由と対策 メモ
iOSのアプリ却下理由と対策をメモとして残していきます。
※まだ対策していない内容も含まれます。
1.Guideline 3.1.1 - Business - Payments - In-App Purchase
題名
0.1.9 バイナリでの却下 2020年12月18日 AppReview Guideline 3.1.1 - Business - Payments - In-App Purchase Your app uses intermediary currency to purchase items that function as
訳:AppReview ガイドライン3.1.1-ビジネス-支払い-アプリ内購入アプリは、中間通貨を使用して、次のように機能するアイテムを購入します。
本文
Guideline 3.1.1 - Business - Payments - In-App Purchase
Your app uses intermediary currency to purchase items that function as non-consumable products but does not include a restore mechanism.
Users restore transactions to maintain access to content that they've already purchased.
Next Steps
To resolve this issue, please modify your app to include an optional user-registration feature that allows users to restore their purchases to all of their iOS devices.
We recommend indicating that account registration is necessary to restore previously purchased in-app purchase products and providing a way for users to register later if they wish to access this content in the future.
Please see attached screenshot for details.
訳:ガイドライン3.1.1-ビジネス-支払い-アプリ内購入
アプリは中間通貨を使用して、非消耗品として機能するアイテムを購入しますが、復元メカニズムは含まれていません。
ユーザーはトランザクションを復元して、購入済みのコンテンツへのアクセスを維持します。
次のステップ
この問題を解決するには、アプリを変更して、ユーザーが購入したものをすべてのiOSデバイスに復元できるオプションのユーザー登録機能を含めるようにしてください。
以前に購入したアプリ内購入商品を復元するにはアカウント登録が必要であることを示し、ユーザーが将来このコンテンツにアクセスしたい場合に後で登録する方法を提供することをお勧めします。
詳細については、添付のスクリーンショットを参照してください。
添付のスクリーンショット
内容解釈
今回のアプリではコイン(無課金で取得可)を使用し、
アプリ内のショップで買い切りのアイテムを販売しています。
この買い切りアイテムの購入データは端末に保存していますが、
それだけではダメで、購入データとユーザーを特定できる仕組みを
用意しないといけないということでしょうか?
ユーザー登録の仕組みって難しくないですか(汗)
とりあえずダメ元で問い合わせ
お世話になります。
審査ありがとうございます。
ご指摘の無課金で購入できる買い切りアイテムについて、
こちらの購入データはアンインストール後、
再インストールしても端末のデータから情報が復元されるのですが、
この設計では問題があるということなのでしょうか?
お忙しいところ恐れ入りますが、ご回答よろしくお願い致します。
Apple返信
Hello,
Thank you for providing this information.
Regarding 3.1.1, we found that your app allows the user to unlock non-consumable items such as characters, using an intermediary currency, but does not include a restore mechanism.
To resolve this issue, please modify your app to include an optional user-registration feature that allows users to restore their purchases to all of their iOS devices.
We look forward to reviewing your resubmitted app.
Best regards,
App Store Review
訳:こんにちは、
この情報を提供していただきありがとうございます。
3.1.1に関しては、アプリでユーザーが中間通貨を使用してキャラクターなどの非消耗品のロックを解除できることがわかりましたが、復元メカニズムは含まれていません。
この問題を解決するには、アプリを変更して、ユーザーが購入したものをすべてのiOSデバイスに復元できるオプションのユーザー登録機能を含めるようにしてください。
再送信されたアプリを確認することを楽しみにしています。
宜しくお願いします、
AppStoreレビュー
【Unity】課金設定 Unity IAPにGoogle 公開鍵を設定する
Unity IAPへのGoogle公開鍵設定ではまったのでメモ
前提条件
・Google Play Consoleにapkファイルがアップロードされている
・Unity IAPが有効になっている
1.Google Play Console上で公開鍵の取得
2.Unity IAPで公開鍵を設定する
注意 Unity上からは設定できない
Optionsのところで入力欄がありますが、入力しても無効となってはじかれます。
2-1 Unity Analyticsへ移動
Unity IAP画面右上の Go to Dashboardをクリック
2-2 公開鍵を入力
Settings
→Analytics Settings
→Google License Keyに公開鍵を入力
→保存ボタンを押す
2-3 Unityへ戻って公開鍵を反映
Unity IAPへ戻って入力欄に公開鍵を入力してVerfyボタンを押す
設定完了!
おわりに
課金設定なにがなんやらわからんですねー。
参考
DanceDreamMV プライバシーポリシー
制定日:2021/1/1
このページは、Maruyu Apps(以下「私」と言います。)が提供するスマートフォンアプリ「DanceDreamMV」(以下「本アプリ」と言います。)における利用者情報の取扱いについて、以下のとおりアプリケーション・プライバシーポリシー(以下「本ポリシー」といいます。)を定め、公表しております。本アプリをインストールする前に本ポリシーをご確認いただき、内容をご理解の上で本アプリをご利用下さい。
なお、本ポリシーにおいて、「利用者情報」とは、お客様の識別に係る情報、通信サービス上の行動履歴、その他お客様のスマートフォンにおいてお客様と結びついた形で生成、利用又は蓄積されている情報であって、本ポリシーに基づき当社が取得するものを意味するものとします。
本アプリが利用する利用者情報
本アプリが利用する利用者情報は、下記の3つです。
- アプリの広告表示のためにお客様の情報の一部を送信する可能性があります。
- アプリではアクセス解析ツールを用いてアプリの利用状況を収集しております。
- 問い合わせの際に利用者情報の一部を送信します。
- アプリの広告表示本アプリは広告表示のためにお客様の情報の一部を送信する可能性があります。広告表示は、下記2社のサービスを利用しており、本アプリは2社に利用者情報の提供を行います。それぞれのサービスが利用している利用者情報と目的については各社のサービスのプライバシーポリシーをご確認ください。
2.アプリのアクセス解析
本アプリではアクセス解析ツールを用いてアプリの利用状況を収集しております。
アクセス解析はGoogle Analyticsを利用しております。
本アプリは画面遷移を行った際に、画面IDと利用者情報をGoogle Analytics社
に送付します。
- 問い合わせ
本アプリでは問い合わせの際に利用者情報の一部を送信します。
問い合わせはメールで行い、メール本文に下記情報が埋め込まれます。また、メールで送信されるため、メールアドレスも送信されます。 - 名前、メールアドレス
- 端末名、OSバージョン、その他端末情報(画面サイズ、ピクセル密度、利用可能ヒープメモリ量)
- アドオン購入状況
利用目的
- 第三者の広告の配信・表示のため
- 当社のサービスに関連して、個人を識別できない形式に加工した統計データを作成するため
- 本アプリに関するご案内、お問い合せ等への対応のため