Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。2017.04.25今回はUnityにアセットをインポートした時に処理を実行したいと思います。インポートしたアセットの設定等をインポートした後に手動で変更するのではなく、スクリプトであらかじめ設定を変更しておく事が出来ます。スポンサーリンクインポート時に処理をするスクリプトの作成アセットのインポート前後に何らかの処理をさせるにはAssetPostprocessorクラスを継承して新しいクラスを作成します。{}AssetPostprocessorクラスにはアセットインポート時に実行されるメソッドがあるのでそれを使用します。作成したクラスはEditorフォルダの下に移動させます。アセットの種類で実行されるメソッドが変わるAssetPostprocessorクラスで定義されているメソッドはインポートするアセットの種類によって実行されるものが変わります。アセットの種類はモデル、アニメーション、テクスチャ、スプライト、音声等で変化します。それぞれインポート前(Pre)とインポート直後(Post)のメソッドが用意されていますが、アニメーションは前(Pre)のみになるようです。サンプルを作成し試してみましょう。("OnPreprocessAnimation");}}メソッドはOnの後にPreかPostで前後が変わり最後にインポートの種類で分かれています。今回のサンプルではモデルのインポート後(OnPostprocessModel)、テクスチャのインポート後(OnPostprocessTexutre)、アニメーションのインポート前(OnPreprocessAnimation)を使いました。OnPreprocessAnimationはモデルのインポート前に実行されるようでUnityのスクリプトリファレンスでもOnPreprocessModelと同じ説明がされています。実際にモデルだけ、アニメーションだけのfbxファイルを取りこんでみましたがどちらのメソッドも呼ばれました。OnPreprocessAnimationとOnPreprocessModelの違いはあるんでしょうか?今のところよくわかりません。OnPostprocessModelではAssetPostProcessorで定義されているassetImporterをキャストしModelImporter型に変換します。Factorを100にします。OnPostprocessModelではGameObject型の引数を受け取る事が出来るのでそれを使ってオブジェクトの名前を表示しています。OnPostprocessTextureはUnityにテクスチャをインポートした時に呼ばれます。今回はコンソールにメソッドが呼ばれた事を表示しているだけで何もしていません。サンプルが出来たのでモデルやテクスチャをUnityにインポートして試してみましょう。インポートはUnityにファイルをドラッグ&ドロップして確認してみます(Assetsフォルダで右クリックからインポートでもOK)。↑のようにモデル、テクスチャの種類によってコンソールに表示される文字列が変わっているのが確認出来ました。アセット操作時に何らかの処理をしたい先ほどはアセットのインポート前後で何らかの処理をしたい時に専用のメソッドを呼び出していましたが、アセットのインポート時だけでなくアセットの削除、アセットの移動時に処理をしたい事もあると思います。そんな時はクラスメソッドのOnPostprocessAllAssetsを使います。このクラスメソッドは第1引数でインポートするアセットのファイルパス配列、第2引数で削除するアセットのファイルパス配列、第3引数でアセットの移動先のファイルパス配列、第4引数でアセットの移動元のファイルパス配列を受け取ります。ファイルパスはAssetsからの相対パスになります。アセットの操作は複数選択して行う事もあるので配列としてファイルパスを受け取ることになります。AssetPostprocessorTestクラスにOnPostprocessAllAssetsを追加してみます。path);}}}受け取ったファイルパスが存在していればある分だけファイルパスを表示するようにしています。サンプルが出来たので確認してみましょう。↑のようになりました。インポート後、フォルダ移動、削除時にそれぞれコンソールにファイルパスが表示されているのが確認出来ます。終わりにアセットインポート前後でアセットの設定を操作したい事もあると思います。そんな時に今回のようなスクリプトを知っておくと便利ですね。コピーかめくめちゃんをフォローする7Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)関連記事プログラムUnityのアクションゲームで物理的な弾を飛ばして敵との当たり判定をするUnityのガンシューティングゲームなどで銃から弾を飛ばす場合にスクリプトで敵と接触したか判断するのではなく、物理的な弾を飛ばしその弾が当たったかどうかで判断させますプログラムUnityで武器のスロットから武器を切り替える機能Unityで持ち物画面で武器のスロットに武器を設定し、武器のスロットの中から武器を切り替える機能を作成していきます。プログラム敵にダメージを与えた時、部位によってアニメーションを変えるUnityのゲームで敵に攻撃を与えた時、与えた場所によって敵のダメージアニメーションを変更しますプログラムUnityでキャラクターのアイテムを管理するプログラムを作るUnityでキャラクターのアイテムを管理するプログラムを作る方法を考えます。プログラムUnityでキャラクターが乗ると沈み、降りると元の位置に戻るブロックを作成するUnityでキャラクターが乗ると沈んで、降りると元の位置に戻るブロックを作成していきます。プログラムUnityでバイオハザード風のヘッドショット機能を追加をするUnityのガンシューティングのゲームでバイオハザード風のヘッドショット機能を搭載してみますUnityのEditorを拡張して自前のメニュー項目を表示するFPSを作ってみよう14-銃を撃った時のエフェクトを追加する-ホームプログラムスポンサーリンクサイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事に関する質問は送らないでください、返信は期待しないでください(._.))。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?gametukurikata.com2019.06.21の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なアクションゲームや、TPSゲームの作成までが出来ます。自作タイピングゲームタイピングゲームを作りました。WebGL形式なのでPCのブラウザで遊べます。以下からプレイ出来ます。FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。gametukurikata.com2022.01.02お知らせ2023/01/24個人的にUnity2022.2.3f1をインストールしました。2022/10/14UnityのIKを使って足の位置と角度を地面に合わせる機能Unityのゲームでキャラクターの両足が別の高さの地面の上にある時にそれぞれの足をそれぞれの地面につけるようにする機能を作成しますgametukurikata.com2016.04.11機能を少し修正しました。2020/09/19コメント欄は閉鎖しました。今までコメントを投稿してくださった方はありがとうございました。(^^)/2018/08/07わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。gametukurikata.com2019.08.01Unityを使い始めたばかりの人がつまづきやすい点を解消するUnityを使い始めたばかりの人が結構な確率で陥る不具合や疑問点を解消していきます。基本的にはブログに寄せられた質問への回答という感じです。gametukurikata.com2018.12.04も参照してみてください。小・中学生によるデジタルコンテンツ開発の全国大会ですuycc.unity3d.jp2022年大会の先行エントリーが開始されているようです。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。記事の内容に質問がある方へUnityを使った3Dゲームの作り方(かめくめ)の歩き方UnityのJavaScriptとC#を読み替えてどちらでも対応出来るようにするホーム検索トップサイドバータイトルとURLをコピーしました。