Alpaca Tech Blog

ゲーム作る系 草食動物の備忘録

【Unity】Asset入れた時のエラー対応

アセットストアの物そのまま入れて起こったエラー対策備忘録。

今後ここに追記していく予定です。

 

error CS0103: The name `AnimationUtility' does not exist in the current context

AnimationUtilityが利用できなくてエラー出ている状態です。

AnimationUtilityは、エディタ上でしか動かないので、

iOS等のビルドにするとエラーが出ます。

 

最近、AssetStoreの物をインポートしているとたまに出てきます。

 

▼対応

#if UNITY_EDITOR

AnimationUtility.....

#endif

 

エディタ上でしか動かないので、

AnimationUtilityを利用している箇所を#if UNITY_EDITOR ~ #endif で囲みましょう。

 

 

 

error CS0102: The type ~ already contains a definition for `postProcessing'

(Location of the symbol related to previous error)

既に変数が定義されているエラーです。

同じ名前が無いか確認してください。

 

タイトルのエラー場合postProcessing関連です。

現在、POSTPROCESSINGは、V1とV2があります。

これを両対応するために

 

#if UNITY_5_6_OR_NEWER && UNITY_POST_PROCESSING_STACK_V1 && AQUAS_PRESENT
PostProcessingBehaviour postProcessing;
#endif

#if UNITY_5_6_OR_NEWER && UNITY_POST_PROCESSING_STACK_V2 && AQUAS_PRESENT
PostProcessLayer postProcessing;
PostProcessVolume postProcessingVolume;
#endif

のように両対応するコードが書かれています。

f:id:alpacatech:20180919122657p:plain

 

▼PostEffectの場合の対策

メニューの

Edit->Player->OtherSettings->Scripting Define Symbolsに

UNITY_POST_PROCESSING_STACK_V1; UNITY_POST_PROCESSING_STACK_V2

両方書かれている場合、

どちらか一方にしてください。

わからない場合はV2を残した方がいいかも。

 

 

 

【Unity】GamestrapUIで簡単UI作成【アドカレ2018】

この記事は、

Unity アセット真夏のアドベントカレンダー 2018 Summer!

8/29(wed) イベントの記事です。

 

 概要

GamestrapUIは、GUI素材集とスクリプトを合わせたアセットです。

 f:id:alpacatech:20180816181245p:plain

 素材だけでなくツールもついているので色々見ていきます。

 

AssetStore

 

紹介動画 

 www.youtube.com

ドキュメント

Gamestrap Unity Assets - UI, Editor Camera & Localization

 

 サンプルシーン

とりあえずサンプルシーンを見てみます

13種類のサンプルレイアウト

f:id:alpacatech:20180816190154g:plain

*1秒ごとにシーンが変わります(gifアニメ) 

一枚絵でなく配置された物です。

グラデーションの背景、ボタンは画像でなくスクリプトで表現されています。

  

ゲーム用サンプルシーン

 f:id:alpacatech:20180828151947g:plain

タイトル、設定、ゲームの一連の流れサンプルです。

フェードインアウトや外部サイトのリンクも対応しています。

設定の音声設定はシーンまたいで保存されていない&音声制御していないので別途必要です。

 

複数のシーンを切り替えしているのでシーンを追加する必要があります。

f:id:alpacatech:20180828152147p:plain

 

リアルタイムで見た目変更

 f:id:alpacatech:20180828170054g:plain

 ツール内でなく実行中にパターン変更できるようです。

素材紹介シーン

f:id:alpacatech:20180816190157g:plain

*1秒ごとにシーンが変わります(gifアニメ)  

シーン内に含まれない素材も多数あります。

 

 

 

素材

サンプルシーン以外にもたくさんありました。

形状

f:id:alpacatech:20180828153807p:plain

f:id:alpacatech:20180828153843p:plain

 他にも線の太さの違う円等があります

 

アイコン

f:id:alpacatech:20180828153741p:plain f:id:alpacatech:20180828154034p:plain

フォント

一部フォントは太さ違いも存在します。

海外製なので日本語未対応です。 

f:id:alpacatech:20180816190204p:plain

国旗素材

f:id:alpacatech:20180828153658p:plain

 

メニューから配色済みUIパーツ生成

f:id:alpacatech:20180828155054p:plain

メニューに配色済みGamestrapUIのUIパーツが登録されておりすぐに作れます。

標準UIにないアイコンボタンパターンなどもあります。

 

 

配色、エフェクト一括変更機能

このアセットの売りの一つです。

簡単にUIの配色やエフェクトを変更できます。

調整ウィンドウ表示

メニュー→Window→Gamestrap UI Kit で設定ウィンドウが出ます。

f:id:alpacatech:20180828160002p:plain

 

基本的な変更方法

一括色変更・選択

f:id:alpacatech:20180828163427g:plain

Hierarchyのオブジェクトを選択して、

色を選択してSelectedで一括変更。

  

一括色変更・タグ指定

ウィンドウのColorDetailsのTagとオブジェクトのタグが同じ

オブジェクトは、Tagボタンを押すと一括変更されます。

f:id:alpacatech:20180828162458g:plain

 

 

これらは、動画じゃ説明できてないのですが、

単色だけでなく、ボタン等に利用される複数種類(Normal/Highlighted/Pressed...)も

変更されます。

 

エフェクト

色だけでなくエフェクトも指定できます。

f:id:alpacatech:20180828165043g:plain

・Gradient ... グラデーション

・Shadow ... 影

・Radial Gradient ... 円グラデーション?(値の指定がわからなかった)

・mirror ... ミラー。水面に映ったような。FF5のタイトルのようなのもできそう

・skew ... 変形(パースや傾き)

が指定できます。

注意:適応する順番によってかかり方が変わるので注意

(Shadow→Gradientの順番だとグラデーションがかからなかった)

 

色自動作成

Normal/Highlihted/Pressed/Dissabled等、

複数ある色を指定するのは大変です。

 

GamestrapUIでの色指定は、

・あらかじめ準備された色や

f:id:alpacatech:20180828165747g:plain

 

・パターン生成から選べます

f:id:alpacatech:20180828165805g:plain

 ↑ベースの水色から様々なパターンで色が生成される。

 

 

 

他にもフォント一括指定等、機能はありそうですが

今回は以上です。

 

 

素材集としても配色ツールとしても優秀なアセットだと思います。

 

 

 

 

 明日8/30の担当は、

COREVALE (@corevale_com) さん の

First Person Exploration Kit を使って脱出ゲーム制作

です。

宜しくお願い致します。

 

 

itch.ioにアプリ登録してみました

itch.ioとは

steamみたいなゲーム配信サイトです

Download the latest indie games - itch.io

開発者は無料で登録が出来、自由に値段を設定できます。

値段を無料にして寄付を受け付けることもできます。

 

登録した物

alpacatech.itch.io

NVIDIA FleXを利用した砂場遊びツールです。

マウスで砂を掘って遊びます。

(ゲームじゃなくてシミュレーターみたいな物なんですが)

WindowsのみでPCの要求スペック高めです。
(数年後のPCだと簡単に動く事を信じて先行アップ) 

youtu.be


登録方法

itch.coにフリーゲームを登録してみた。登録までの流れ/~飛竜翔の活動報告日記~

このサイト様を参考と

日本語翻訳を活用して埋めていきました。


寄付画面が出てこない

アカウント設定の寄付設定してませんでした。 

f:id:alpacatech:20180827152829p:plain

 

左が、itchが受け付けて後で受け取る
右が、直接受け取る
左の方お勧めされてたのでとりあえず左で。


登録結果

5時間後の結果です><

f:id:alpacatech:20180827171742p:plain

半分以上が自分でクリックしてる。

何人かダウンロードしてもらえてました(たぶん)

寄付は自分で確認用のやつ。

  

メモ

せっかく作ったのに誰も見てくれないのは悲しい

対策と反省

itch

スクリーンショットやアイコンはgifアニメでも表示できるのでgif作成して登録。

アメリカとの時差は13時間(今回深夜にアップした)


twitter動画ツイート

twitterは流れが速いので、動画の開始3秒で見るか見ないか判断される感じです。

ので、

・最初数秒はインパクトのあるシーンをもってくる。

・サムネ(最初のフレーム)は、見てわかるもの。

YouTubeの動画そのまま持ってきたのでフェードインの黒画面になってしまってた

・タグつける

月末は避ける?
→パケット死んでて動画見れない(自分)

 

最後に

とりあえずitch.ioデビュー出来ました。うれしい。

次はスマホアプリデビューします。

 

 

 

【Unity】Camera.mainにアクセスしようとすると例外が発生する

例外が発生

NullReferenceException: Object reference not set to an instance of an object
PlayerTest.Update () (at Assets/Game/PlayerTest.cs:32)

ソース

var cameraForward = Camera.main.transform.forward;

Camera.mainにアクセスしていました。

 

原因

カメラのTagがUntagged

f:id:alpacatech:20180820194905p:plain

 

tagをMainCameraに変更

f:id:alpacatech:20180820194840p:plain

 

Camera.mainアクセスが問題なくなりました。

 

【Unity】PC版作成時のアイコンやスプラッシュスクリーンの設定

PC版を作成した際のバナーやアイコンとかの設定メモ

 

概要

f:id:alpacatech:20180806041615p:plain

スプラッシュスクリーンは、このような起動時のダイアログ画面です。

そこで表示されるバナー解像度等の情報がなかったので調べた&書きました。

 

 設定場所

アイコンやバナーは以下の場所を設定する必要があります。

メニューの

Edit->Project Settings->Player

f:id:alpacatech:20180806034215p:plain

 

 

 

 

 

モジュールのアイコン

f:id:alpacatech:20180806033854p:plain

このようなexeのアイコンです。

 

Default Iconを設定します。

解像度別は、Iconタブで確認できます。

 

 

 

 

 

起動時のダイアログ

f:id:alpacatech:20180806041615p:plain

このような起動時の解像度やInputの設定変更するダイアログです。

 

バナー設定と解像度

SplashImage→

Application Config Dialog Banner(バージョンによってはConfig Dialog Banner

です。

 バナーの解像度は432x163がフィットするらしいです。

 (Mac版未確認)

バナーが汚くならない為の対応

そのままの設定の場合、引き延ばされたり圧縮で劣化して表示されます。

設定を変更します。

TextureType  ... Sprite2DでNPOT(2のべき乗拡大を廃止)

Compression ... None(非圧縮)

f:id:alpacatech:20180806040439p:plain

 

 

※実際に1ドット間隔のグリッド画像を432x163で表示してみました。

f:id:alpacatech:20180806033120p:plain

 引き延ばされることもなくきれいに表示されています。

たぶんこれであってる。

 

 

起動時にダイアログを表示したくない

もしダイアログを表示したくなければ

Display Resolution Dialog を 変更します。

Disabled (無効)

Enabled (有効)

Hidden by Default (デフォルトで非表示。起動時に Alt キーを長押しした場合にのみダイアログが表示される

f:id:alpacatech:20180806040909p:plain

 

非表示時の解像度は、他の設定を変更します。

スタンドアロンのプレイヤー設定 - Unity マニュアル

docs.unity3d.com

 

 

 

起動時のロゴ

Logosで設定。

アニメーションの時間設定や色を指定できます。

[Preview]ボタンで確認できます

 

  

 

参考

公式の設定マニュアル version 2018.1

docs.unity3d.com

 

 

解像度について

what is the config dialog banner splash image size - Unity Answers

 

 

【Unity】using System.Windows.Formsを利用する(Windowsモジュール限定)

概要

UnityでWindowsのフォームやダイアログを利用する場合、

using System.Windows.Forms;

を宣言すると利用できます。

 

エラー

そのまま宣言しても、

The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?

というエラーが出ます。

 

System.Windows.Formsを利用するには

1.Api Compatibility Levelを .Net 2.0にする

メニューのEdit -> Project Settings -> Player -> Other Settings

 

f:id:alpacatech:20180725010542p:plain

Api Compatibility Levelを .Net 2.0にします(Subsetじゃないほう)

 

2.PluginsフォルダにSystem.Windows.Forms.dllをコピー

AssetsフォルダにPluginsフォルダを生成します。

f:id:alpacatech:20180725010511p:plain

 

C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0

から、

System.Windows.Forms.dll
をコピーします。

必要であれば、
System.Drawing.dll
System.Data.dll

等もコピーします。

 

これで利用できます。

 

おまけ

ファイルを開くダイアログ
    var dlg = new OpenFileDialog();
    dlg.Filter = "json(*.json)|*.json|All files(*.*)|*.*";
    dlg.CheckFileExists = false;
    if (dlg.ShowDialog() == DialogResult.OK)
    {
        //  ...
        MessageBox.Show(dlg.FileName);
    }
ファイルを保存ダイアログ
    var dlg = new SaveFileDialog();
    dlg.Filter = "json(*.json)|*.json|All files(*.*)|*.*";
    dlg.CheckFileExists = false;
    if (dlg.ShowDialog() == DialogResult.OK)
    {
        //  ...
        MessageBox.Show(dlg.FileName);
    }

 

 

参考

設定

scribble/README.md at master · i-saint/scribble · GitHub

 

ファイルを開くダイアログ

[Unity] OpenFileDialogをWindowsアプリ(exe)で使う

 

 

 

 

【Unity】PackageManagerでUpdateが適応されない

 結論

根本的な理由がわからなかったので、

キャッシュ消して再インストールしました。

 (普通の再インストールでは駄目だった)

 

概要

共同で作成しているプロジェクトで、

自分の所だけPostprocessing関係で例外が出まくる。

 

PackageManager確認したら最新じゃなかったので

f:id:alpacatech:20180707143600p:plain

最新版にUpdateしようと 

Updateボタンを押しても反映されませんでした。(2.0.7にならない)

 

jsonファイル等を触ってみたり色々試したけど解決できませんでした。

ネットにも情報がなかったりと解決策が見つからなかったので、

再インストールすることにしました。

(5.XX時代から上書きインストールを重ねていたフォルダ)

 

再インストール

普通にインストールしなおしだと解決しなかったので、

色々綺麗にしてインストールしなおしました。

 

手順

アンインストール以外にキャッシュ消したりしているので自己責任でお願いします

アンインストール

f:id:alpacatech:20180707144450p:plain

Assetのキャッシュデータを削除

C:\Users\[USER_NAME]\AppData\Roaming\Unity\
C:\Users\[USER_NAME]\AppData\Local\Unity\

を削除(念のためリネーム)

 

再インストール

インストーラーでインストール。

 

インストール後

f:id:alpacatech:20180707144626p:plain

2.0.7になっていました。