ミドリ黄のプログラミングメモノート

主にUnity(C#)を中心としたプログラムの備忘録

Unity

Unity 画面タッチの検出

画面タッチをしたらif文で処理をする場合 コルーチンで画面タッチをするまで待機したいとき 画面タッチをしたらif文で処理をする場合 主にUpdate関数内で呼び出す場合は、こちらになります。 private void Update() { if (Input.GetMouseButtonDown(0)) { //…

Unity ボタンで選択肢の表示と結果の取得

概要 ソースコード 実装手順 1. Canvasの追加 2. 親オブジェクトの追加 3. ボタンの追加 4. スクリプトのアタッチ 5. 実行用スクリプトのアタッチ 実行結果 概要 RPGゲームなどによくある会話中の選択肢の表示と、選択結果による処理分岐をできるようにしま…

Unity コルーチン nフレーム待機

参考サイト コルーチンでの1フレーム待機 nフレーム待機の方法 概要 ソースコード 使用例(5フレームだけ待機) 参考サイト こちらの公式ドキュメントを参考にしました。 docs.unity3d.com コルーチンでの1フレーム待機 コルーチンで1フレーム待機する場合、 y…

Unity ボタンで音を鳴らした後に処理を行う

概要 手順 1. 音源ファイルの準備 2. AudioSourceの設定 3. UIボタンの追加 4. ボタン用スクリプトの作成 5. 呼び出し用スクリプトの作成 6. スクリプトのアタッチなど 動作確認 概要 以前の記事でボタンで音を鳴らす方法を紹介しました。 kiironomidori.hat…

Unity AnimationのLoopTimeをスクリプトから変更する

概要 結論 ソースコード 使用方法 概要 エディタ拡張でAnimationClipを生成したらこのように「Loop Time」にチェックが付かなかったのでその解決策を考えました。 結論 こちらの記事を参考に考えました。 AnimationClipSettingという型に「loopTime」という…

Unity 簡単な音が出るボタンの作成

概要 ボタンを離した瞬間に鳴らす場合 1. 音源ファイルの準備 2. AudioSourceの設定 3. UIボタンの追加 4. ボタンの設定 ボタンを押した瞬間に鳴らす場合 動作確認 1つ目の方法(ボタンを離した瞬間に鳴らす場合) 2つ目の方法(ボタンを押した瞬間に鳴らす場合…

Unity BGMとSE管理用クラスの作成

目的 作成したクラス 概要 ソースコード 使用例 オブジェクトの準備 操作用スクリプトの用意 操作用スクリプトの設定 目的 SEを重ねて鳴らすにはAudioSourceをSEの数だけ用意しなければならないけどいちいち準備するのは面倒 BGMの操作をいちいちaudioSource…

Unity シーンをまたいで存在するオブジェクトの作成

はじめに シーン切り替えても破棄しない方法 +α はじめに Unityではシーンを切り替えると原則として前のシーンのゲームオブジェクトは破棄されます。 しかし、スコアを保持するクラスなどシーンを切り替えても破棄したくないスクリプトもあります。 そこで、…

Unity SEが鳴り終わるまで待機する処理

はじめに 概要 サンプルコード はじめに ボタンを押す⇒音を鳴らす⇒メニューを開く などの処理をしたかったので、その方法をまとめました。 概要 実現するために必要なのはSEが鳴っていることを取得するという処理です。これは、 audioSource変数.isPlaying …

Unity Visual Scripting④(Unitの自作)

参考サイト 導入 概要 例 2つの文字列A, Bを結合する スクリプト Visual Scripting 実行結果 適当な関数を呼び出す スクリプト Visual Scripting 実行結果 yield return コルーチン スクリプト Visual Scripting 実行結果 参考サイト Unityの公式ページの方…

Unity コルーチンの再開

導入 解決策 導入 一度始めたコルーチンを中断したのち再開したいということが起こりました。 そこで次のようコルーチンで秒数を数えるスクリプトを作成しました。 (「A」でコルーチンを開始、「B」で中断) using System.Collections; using UnityEngine; pu…

Unity SceneAssetからシーンの切り替え

導入 SceneAssetのメリット・デメリット エディタ上以外(ビルト先)での利用方法 使用方法 導入 SceneManager.LoadScene("シーン名"); でシーンを切り替えるとシーンファイルの名称を変えた際にこの部分をすべて変更する手間が発生します。 そのため、本記事…

Unity シーン切り替え

概要 早速使ってみる 説明 シーンの作成 使用例 コルーチンでの利用 シーン名での切り替えの問題点 概要 UnityでのSceneManagerを用いることでシーンの切り替えができるので、利用方法を紹介します。 早速使ってみる 説明 SceneManagerは using UnityEngine.…

Unity Dotweenを利用したHPバーの作成

目的 使用するDotweenの関数 DOTween.To SetEase OnUpdate スクリプト 準備 HPバー テキスト スクリプトのアタッチと設定 実行例 目的 ゲームにおけるHPバーは100から0に一気に変化するのではなく徐々に変化していきます。 この「徐々に変化させるアニメーシ…

Unity DOTween.To

はじめに 詳細 使用例 ①指定した変数(a)を指定した値まで変化させる。 ② でxを変化させたときのyの値 ③コルーチンでの利用 応用例 はじめに DOTween.Toにより「変数を指定した時間にわたって徐々に変化させる」ということが可能になります。HPバーの作成など…

Unity Visual Scripting 変数の取り扱い

概要 変数の種類 Graph変数 Object変数(例:UIボタンの使用) 概要 今回はVisual Scipringにおける変数の扱いについてです。 変数の種類 種類 有効範囲 特徴 Graph グラフ内 C#スクリプトにおけるシリアライズ化していない変数に該当。 Object ゲームオブジェ…

Unity EditorWindowの保存

導入 ソースコード 使用例 導入 Editor Windowに記述した変数などはウィンドウを閉じると消えてしまいます。 そこで、データをjson形式で読み書きすることで保存が可能になるのでその方法を紹介します。 本記事は以下のUnity公式フォーラムを参考にしました…

Unity Visual Scripting②(キーボードからの入力を受け取り動かす)

目的 完成例 解説 入力を受け取る Time.deltaTimeを取得 乗算 実行結果 目的 Visual Scriptingにおいてキーボードからの入力を受け取りゲームオブジェクトを動かします。 具体的には次のようなスクリプトを実現します。 using UnityEngine; public class tes…

Unity VisualScripting Start・Update関数

概要 準備 Start関数の実装 Update関数の実装 使用例 ゲームオブジェクトの準備 実行結果の確認 概要 Visual ScriptingにおいてStart関数とUpdate関数を実装する方法を紹介します。 準備 アセットウィンドウ上で 「Create」⇒「Visual Scripting」⇒「Script G…

Unity Tilemapの作成の自動化

概要 使用するスクリプト 使用例 1. 画像の準備 2.スクリプトのアタッチと設定 3. 実行結果の確認 概要 以前の記事でTilemapの基本的な作成方法を紹介しました。 しかし、使用する画像がたくさんある場合はいちいちこの処理をするのは面倒です。 そこで、こ…

Unity Tilemap(タイルマップ)の使い方

使用方法 0. 素材の準備(インポート設定とSprite Editorでの処理) 1. タイルパレットの作成 2. Tilemapの作成 3. 描画などの操作 処理の自動化 使用方法 0. 素材の準備(インポート設定とSprite Editorでの処理) 自分はこちらの画像を使用して、SpriteEditor…

Unity Shaderホーム

概要 2D 3D 概要 本記事は当ブログに散在するUnityのShaderについての記事をまとめたものです。 2D 基本(色反転・グレースケール) 座標(v2f.uv)を用いた処理(画像の右半分だけ白くするなど) 画像にストライプの模様をつける pngファイルの透過処理 SpriteEdi…

Unity SpriteEditorでの画像分割を自動化

はじめに スクリプト 使用例 参考 はじめに 以前の記事でSpriteEditorを利用した画像の分割方法についてまとめました。 しかし、この処理は 画像ファイルのインポート設定(Sprite Modeの変更など) SpriteEditorでの分割方法の指定 変更を適用 とする必要があ…

Unity Shader2D RPGゲームにありそうなパワーをためているアニメーション

はじめに 当記事で使用している画像について 目標 準備 プログラム はじめに この記事は前回の記事の続きになっているので、こちらも参考にしてみてください。 kiironomidori.hatenablog.com アセット内がこのようになっている前提で記事を進めていきます。 …

Unity Shader2D SpriteEditorで分割したpngファイルに対する処理

リンク v2f.uvを用いた処理の際に生じたトラブル 不具合の原因 改善策 リンク この記事は前回の記事の続きになっているので、こちらも参考にしてみてください。 kiironomidori.hatenablog.com Shaderについてのまとめ記事はこちら kiironomidori.hatenablog.…

Unity Shader2D pngファイルの透過処理

当記事で使用している画像について 素材の準備 透過処理(失敗例) 原因探索 関連記事 当記事で使用している画像について ぴぽや倉庫様(https://pipoya.net/)のものを使用させて頂きました。 今回利用したのは、「キャラクターチップ1」⇒「ハロウィンキャラク…

Unity アニメーション③(2Dの移動アニメーション)

関連記事 はじめに 参考資料 素材について 実装手順 ①ファイルの準備と画像の分割 ②Animation Clipの作成 ③Animation Clipの作成 ④スクリプトの作成 完成 関連記事 アニメーションの基本 kiironomidori.hatenablog.com Animation Eventについて kiironomidor…

Unity Shader2D 座標(v2f.uv)を用いた処理

使用した素材 v2f.uv 画像の一部分を特定の色で塗りつぶす処理 v2f.uvの座標系 指定した範囲を任意の色で塗りつぶす 関連記事 使用した素材 前回と同様に使用した素材はベイツ・イメージズ様のものです。素材のリンクは以下の通りです。 スプラッシュペイン…

Unity アニメーション② (ウィンドウからのAnimation Eventの追加)

はじめに Animation Eventについて 詳細説明 1. スクリプトの設定 2. Animation Eventの設定(引数なしの関数の設定) 2. Animation Eventの設定(引数ありの関数の設定) 3. 実行 はじめに 今回はアニメーションにおけるEventの処理についてやります。 この記事…

Unity Shader2D 画像にストライプの模様をつける

使用した素材 画像にストライプを付ける プログラムの解説 ストライプを動かす 関連記事 使用した素材 前回と同様に使用した素材はベイツ・イメージズ様のものです。素材のリンクは以下の通りです。 スプラッシュペイントと黒背景の壁紙 これをアセット内に…