LemonteaのUnity部屋

UnityとかC#のおはなしです~

スクリプト

Unity 日付・時刻の取得とDateTimeのToString 1

こんにちは。レモンティーです。別にUnityに限った話ではないのですが 今回は日付と時刻を取得して それをstringに変換するときの話です。 現在の日付や時刻を取得するには Datetime.Nowをつかいます。 たとえばSFよろしく 「今は西暦何年だ!?」 というと…

Unity InputFieldで得た文字列を数値に変換する(string→intとか)

こんにちは。レモンティーです今回はタイトルの通りの内容です。UnityにはInputFieldというのがあって、 プレイヤーが入力した文字列を受け取れるのですが…入力された数値をstringではなくintとか 数値として扱いたいことってありませんか?たぶんInputField…

Unity Resource内のtextファイルを読み込む

こんにちは。レモンティーです。以前、音ゲーの作り方で、ファイルの読み込み方を紹介した時、 File.ReadAllText(Filepath)を使いましたよね。 sawalemounity.hatenablog.com しかし、Android向けにビルドすると… なぜかこれが動いてくれなかったんですよ。…

Unity 音ゲー記事の組み合わせでつくったコンギョ

こんにちは。レモンティーです。今まで音ゲーを作りながら それについての記事をたらたら書いていましたが 想定していた発表機会がおじゃんになったので ここに~↓youtu.be 使っているのはこれらの記事の内容ですsawalemounity.hatenablog.com sawalemounity…

Unity GetSpectrumDataで音ゲーの譜面を自動生成(2)

こんにちは。レモンティーです。前回、思いつきで適当な自動譜面作成をやりましたよね。 sawalemounity.hatenablog.comあれが意外と進化しそうだったので、 今回はレベルメータの転用ではなく 普通に作ってみました。やり方としては ・GetSpectrumDataでデー…

Unity GetSpectrumDataで音ゲーの譜面を自動生成

こんにちは。レモンティーです。 __________ この記事のすこし改善版↓の方を推奨します sawalemounity.hatenablog.com __________ 今朝、GetSpectrumDataを使って レベルメータもどきをつくりましたが… Unity GetSpectrumData でレベル…

Unity GetSpectrumData でレベルメータをつくる

こんにちは。レモンティーです。今回は、以前チラッとつかったっきりだった GetSpectrumDataをもうちょっと弄ってみようと思います。この前は一番大きい音の音程をとりましたが、 その逆を見つけました。こちら↓の記事では y9uni.hatenablog.com 複数の周波…

Unity 音ゲー 長押しノートを作る

こんにちは。レモンティーです。最近の記事で、Json形式で譜面を作りましたよね。 あのやり方では、自分が曲に合わせてボタンを押すことで 譜面を作りました。 Unity JsonUtilityでつくった音ゲーの譜面を読みこんで音符を流す - LemonteaのUnity部屋 Unity …

Unity JsonUtilityでつくった音ゲーの譜面を読みこんで音符を流す

こんにちは。レモンティーです。前回、Json形式で音ゲーの楽譜を作成しました。 sawalemounity.hatenablog.com今回は、それを読み込んで、 実際に音譜を生成してみます。やり方は・ファイルを読み込む ・音を流しながら時間をはかる ・タイミングがきたら音…

Unity 音ゲーの譜面をJsonUtilityで作成

こんにちは。レモンティーです。今日は音ゲー記事の続きです。 前回↓説明したJson形式でファイルを読み書きする方法を使い、 sawalemounity.hatenablog.com自分の好きなタイミングで好きな種類の音符を流すように 楽譜をつくってみたいと思います。もしかし…

Unity Json形式とファイルへの書き出し・読み込み

こんにちは。レモンティーです。昨日音ゲーの記事を書くと言いました。今回は、その準備として、楽譜を書き出すのに 必要な三点の記事を書きます。①Json形式にしたり、戻したり ②ファイルへの書き出し ③ファイルの読み込みです。_____________…

Unity GetSpectrumDataを使う

こんにちは。レモンティーです。今回は、 AudioSourceのGetSpectrumDataをつかってみたいと思います。GetSpectrumDataというのは、その名の通り ある瞬間のBGMのスペクトラムデータを取得できるものです。これでなにをするかというと… BGMの音程にあわせて上…

Unity CollisionモジュールでParticlesystemとオブジェクトの当たり判定

こんにちは。レモンティーです。今回は、Collisionモジュールの Send Collision Messageを使って パーティクルとObjectの当たり判定をとってみます。今回用意したのは ↓のような三つのキューブと一つのパーティクルシステムです (キューブは一つでいいので…

Unity 知らなくて損していた MonoBehaviourの関数

こんにちは。レモンティーです。Unityでスクリプトを作ると、public class ~ : MonoBehaviour {みたいになっています。自動的にMonoBehaviorクラスから派生しているわけですね。実際、StartやUpdate、OnCollisionEnterなどはよく使っています。そこで今回は…

Unity Input.Touches[n].positionでピンチ操作

こんにちは。レモンティーです。Unityのマルチタップを 今まであまり使っていなかったので、 今回はマルチタップの試しに 二本指の代表的操作…ピンチ操作をつくってみます。参考にしたのはここです tasogare-games.hatenablog.jp 今回は、カメラを動かすこと…

Unity 3DSoundsで離れると聞こえなくするandドップラー効果

こんにちは。レモンティーです。ゲームの音楽って、均一に聞こえて欲しいときと、 音源との距離に応じて大きく聞こえたり小さく聞こえたりして欲しい時 両方ありますよね。今回は、距離に応じて音量を変化させたい場合の方法です。AudioSourceコンポーネント…

初めてのスクリプト(9) BGM・効果音の再生

こんにちは。レモンティーです。今回は、BGMとSEについてです。これらはAudioSourceコンポーネントというのをつかって再生します。ですが、ずっと鳴ってる一曲のBGMで良い場合と、 任意のタイミングで鳴らしたい場合で 楽な手順が違う(やってることは同じ)…

Unity 当たり判定 RigidbodyとIsTriggerの実験

こんにちは。レモンティーです。Unityの当たり判定はコライダーで勝手にやってくれてとても便利です。しかし、Colliderだけではダメで、Rigidbodyもついてないといけないらしいのですが、 最低限どれにつけておけばいいのかわからなくて試してみました。また…

Unity 【改良版】コルーチンのタップ待ち処理 会話やリザルト

こんにちは。レモンティーです。数日前にコチラの記事で、コルーチンによるタップ待ちを書きました。 sawalemounity.hatenablog.comそのとき、 yield return new WaitUntil(Tap); yield return new WaitWhile(Tap);という同じ処理が何度も登場していたので、…

Unity フェードイン・フェードアウトをコルーチンでつくる(シーン遷移とか場面転換)

youtu.beこんにちは。レモンティーです。今回は、コルーチンでフェードアウトをつくってみようと思います。PanelのColorのアルファ値をフレームごとに増やしてつくります。さっそくやってみます。 まず、Canvasをスッポリ覆う大きさのPanelをつくります。次…

初めてのスクリプト(8) Unityの親子関係 形成・解除・取得

こんにちは。レモンティーです。今回はタイトルの通り、親子関係をスクリプトで弄ってみます。 AやBはGameObjectです。 publicで宣言してインスペクターで指定すると簡単です。 親子関係の形成 BをAの親に設定したい場合は Aのtransform.parentに、Bのtransf…

Unity Coroutineでタップ待ち処理 会話やリザルトなど

youtu.be こんにちは。レモンティーです。ゲームを作っていると、タップ待ちしたいことがあると思います。いままで、Update内でInput.AnyKeyDownの条件分岐をしたり、 EventTriggerで判定して、何回目のタップかで条件分岐したり していました。私は詳しくな…

初めてのスクリプト(7) 任意の物体の周りをRatateAroundで回転させる

こんにちは。レモンティーです。ステージギミックとかで、特定のルートまたは物体の周りを クルクル回って欲しいことってありませんか?そんなとき、sinやcosを使わなくても 自動で回転移動させてくれるのがtransform.RotateAroundです。こんなふうに使いま…

VisualStudioのスニペットでスクリプトを書く手間を端折る!

こんにちは。レモンティーです。スクリプトを書いていると、何度も同じ構文をかくことがあります。 大体はVisualStudioの補完機能のおかげでそれほど苦にはなりませんが…中には面倒な輩もいます。そこで今回は、スクリプトを書く手間を端折る方法を調べまし…

初めてのスクリプト(6) GetAxis(Mouse X)でフリックorドラッグ

youtu.be こんにちは。レモンティーです。今回は、久々のスクリプト系です。 Input.GetAxis("Mouse X")を使って、マウスの動きを取得します。フリックやドラッグといえばInput.MousePositionを使うことが多いですが、 その場合はスクリーン座標をワールド座…

初めてのスクリプト(5) シーン遷移

こんにちは。レモンティーです。今回は、シーン遷移について書きたいと思います。シーン遷移というと堅苦しいですが、要は別のシーンにジャンプ(移動)することです。シーン遷移で必要なのは次の三つです。①遷移先をScenes In Buildに追加 ②スクリプトの冒…

初めてのスクリプト(4) Instantiateで複製・大量生産

こんにちは。レモンティーです。今回は、オブジェクトの複製です。これによって、無限わきの敵キャラを実装したり、 自動でステージを生成したりできるようになります。 今回つかうのは、Instantiateです。以下、複製したいgameObjectをXというgameObject型…

初めてのスクリプト(3) Inputの続き クリックした座標の取得 傾け操作

こんにちは。レモンティーです。今回は、これの続きです。 sawalemounity.hatenablog.com今回は、タップ(クリック)した座標の取得 スマホを傾けて操作するのふたつを紹介します。 タップ(クリック)した座標の取得 タップ位置の取得には Input.mousePosit…

初めてのスクリプト(2) Inputで キー入力 タップ クリック を判定

こんにちは。レモンティーです。ゲームを作る上で欠かせないのが、プレイヤーさんの行動を認識することですね。 それがなかったら映画みたいになりますし…Unityではその大事な役割をInputが担っています。今回はInputについてです。 キー入力 キー入力の取得…

初めてのスクリプト(1)オブジェクトの移動

こんにちは。レモンティーです。今回から、後回していたスクリプトをみていきましょう。まずは、オブジェクトの移動です。オブジェクトを動かすやり方として、今回は (A)transformを直接いじる (B)Rigidbodyで力を加えて演算するの二種類を紹介します。 …