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

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

Unity

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

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

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

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

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 画像にストライプの模様をつける

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

Unity アニメーション① (Spriteアニメーターの作成)

はじめに 準備(画像ファイルのインポートと分割) AnimationClipの準備 Animator Controllerの準備 ゲームオブジェクトの準備 Animation Clipの編集 Animationウィンドウでの動作確認 次の記事 はじめに UnityのAnimationの基本的な使い方を学びたかったのでS…

Unity 音楽再生アプリの改善(スライダーから再生位置の変更)

はじめに 解決案 プログラムの書き換え 実行 はじめに 以前の記事で作成した下の音楽再生アプリもどきでは再生位置をスライダーにより変更ができなかったので本記事でその方法を紹介します。Unityで作成した音楽再生アプリみたいなやつ#Unity pic.twitter.co…

Unity SpriteEditorを利用した画像の分割

はじめに 画像ファイルの設定 SpriteEditor上の設定 関連記事 はじめに SpriteEditorを利用した画像の分割方法についてまとめました。 画像ファイルの設定 使用する画像をプロジェクトにインポートしたら、インスペクター上でSpriteModeを「Multiple」に変更…

Unity UIボタンを押した(離した)瞬間の処理(Event Trigger)

UIのボタンの問題点 解決策と使用例 解決策 使用例(インスペクターから割り当て) 1. UIボタンの追加 2. Event Triggerの追加 3. Event Typeの追加 4. スクリプトの作成 5. 処理の割り当て 6. 実行 スクリプトから処理を割り当てる方法 UIのボタンの問題点 Un…

Unity Jsonファイルを利用したセーブ機能の実装

はじめに 用意したスクリプト Jsonファイルの書き込み・読み込みを行うクラス ゲーム開始と同時にデータを読み込み、終了と同時にセーブするためのクラス 使用例 用意するスクリプト ①セーブしたいクラス ②「SaveControllerTemplate」を書き換えたクラス 実…

Unity Shader2D 基本(色反転、グレースケール)

使用した素材 Shaderの使用方法 とりあえず使ってみる 先ほどのプログラムの解説 グレースケール化 使用した素材 使用した素材はベイツ・イメージズ様のものです。それぞれの素材のリンクは以下の通りです。 激しく燃え上がる赤い炎 スプラッシュペイントと…

Unity Shader3D 画像の貼り付けと色反転

画像の貼り付け 概要 プログラム 動作確認 張り付けた画像の色反転 画像の貼り付け 概要 テクスチャーを張り付けるにはShaderのProperiesで画像用の変数を用意する必要があります。宣言は _MainTex ("Texture", 2D) = "white" {} のようにする必要があります…

Unity Shader3D 基本とCubeの色変更

参考文献 Shaderの使用方法 Shaderファイルの基本構成 Properies Cubeの色の変更 プログラム 解説 fixed4 _Color; o.Albedo = _Color; 動作確認 参考文献 こちらの素晴らしすぎるサイトを参考にさせていただきました。 当記事より遥かに分かりやすいです! nn…

Unity スライダーの使い方

スライダーの追加と構成の説明 スライダクラス(スクリプト)の概要 Directionについて 色の変更方法 On Value Changedの使用 スクリプトからのスライダークラスの操作 スライダーの追加と構成の説明 Hierarchyで右クリック⇒「UI」⇒「Slider」でスライダーをCa…

Unity キーボードやマウスからの入力

キーボードからの入力 KeyCodeからの指定 文字列による指定 マウスからの入力 プログラム例 キーボードからの入力 InputクラスのGetKey or GetKeyDown or GetKeyUpにより入力の有無をbool型で受け取ることができるのでこれを利用します。 この3種類の関数の…

Unity 音楽再生アプリもどきの作成

はじめに 1. 準備 2. メインとなるスクリプトとゲームオブジェクトの作成 プログラム 3. 再生/停止ボタンの制御(②PauseButton) プログラム 4. 10秒戻り/進み機能(②BackButton、④ForwardButton) プログラム 5. 再生時刻の表示(⑤TimeText、⑥TimeSlider) プログ…

Unity Physics2D.OverlapBoxの使い方

目次 目次 Physics2D.OverlapBoxについて 概要 使用する関数の説明 使用例 準備 ①LayerMaskの指定なし スクリプト 設定 実行結果 ②LayerMaskの指定あり スクリプト 設定 実行結果 Physics2D.OverlapBoxについて 概要 衝突判定に使える。 検出対象にはBoxColl…

Unity 1つのpngファイルを分割して保存する

関連記事 使用するスクリプト 使用例 関連記事 複数のpngファイルを1枚に並べて保存する方法について 使用するスクリプト ウィンドウから操作できるように「EditorWindow」を継承しました。 using UnityEngine; using System.IO; using UnityEditor; public …

Unity CSVファイルの読み取り

UnityにおいてCSVファイルの内容をList形式で取得して利用する方法を紹介しています。また、リンクとしてCSVファイルからScriptableObjectを作成する方法やenumを再構築する方法も載せてあります。

Unity LayerMask.valueとgameObject.layer

目次 目次 前提 Layerを使っていたときのトラブル 解決法の模索 仮説 仮説の検証 仮説の原因 解決策 あとがき 前提 以下の説明ではUnityのLayersが以下のようになっていると仮定します。 Layerを使っていたときのトラブル LayerMaskに設定したLayerとゲーム…

Unity SpriteRendererの描画順の変更

2DでSpriteを使用するときによく生じる問題 解決策 Sorting Layerについて Order in Layerについて 2DでSpriteを使用するときによく生じる問題 例えば、下の画像のように画像が3枚あったとします(オブジェクト名と色が対応している)。ここで「red」を「green…

Unity 複数のpngファイルをまとめて1つのファイルとして出力する

概要 使用するスクリプト 使用例 概要 1つの画像を複数の画像に分割保存する方法などは調べると結構出てきたのですが、逆に結合する方法はあまり出てこなかったのでまとめてみました。 一応分割する方法の記事も作成しましたので、こちらもよろしくお願いし…

Unity Dropdownの使い方

目次 目次 概要 Dropdownの構成 インスペクター上での編集 文字列の変更 使用例 変更後の実行結果 ドロップダウン変更の検出 使用するスクリプト On Value Changeの編集 実行結果 スクリプトからの編集 概要 UnityではドロップダウンのためのUIが標準で搭載…

Unity シーン上に1つしか存在しないスクリプトへの効率よいアクセス方法(シングルトン)

目次 目次 導入 シングルトン 導入 例えば以下のようなクラス「GameController」があると仮定します。 using UnityEngine; using System; public class GameController : MonoBehaviour { public void DisplayYear() { int year = DateTime.Now.Year; Debug.…

Unity エディタ拡張(非publicリストの各要素に名前を付ける)

目次 目次 導入 作成したクラス Enemyクラス エディタ拡張のためのクラス プログラムの解説 [CustomEditor(typeof("編集したいクラス名"))] serializedObject serializedObject.FindProperty("編集する変数名") void OnEnable() SerializedProperty.arraySiz…

Unity エディタ拡張(PropertyAttributeによるstringの文字制限)

目次 目次 PropertyAttributeとは 今回作成するAttribute StringLengthAttributeクラス StringLengthDrawerクラス 使用例 PropertyAttributeとは Unityでは[SerializeField]やpublicをつけることで変数をinspector上に表示できるが、表示する変数に対して制…

Unity エディタ拡張(publicリストの各要素に名前を付ける)

目次 目次 概要 プログラム例 概要 リストや配列をインスペクター上に表示すると通常は「Element0」、「Element1」などのように表示されるがこの表示を変えられないかと考え、エディタ拡張を行った。 プログラム例 あるクラスでの英語のテストの点数を保存す…

Unity CSVファイルからエディタ上でEnumの再構築

UnityでCSVファイルを読み込み、エディタ上でスクリプト内のEnumの再構築する方法の備忘録