えんの付箋紙と小さなダンボールの中

LOLとかスマホゲームとかたまに開発も サモナーネーム: enpel

Unity2018.1.0b2 ShadeGraph のプレビューが表示されないときの対策

Unity2018についにシェーダーのノードエディタが搭載される! - えんの付箋紙と小さなダンボールの中の続き

Unity2018.1からShaderのノードエディタが追加されるらしくこちらの記事で導入方法を書きました。

さて、この方法で導入した方困ってませんか? 僕はちょっと困ってました。 なぜなら

f:id:enpel715:20180111221812p:plain

Previewがでない!

対応方法

ProjectSettings/GraphicsSetting にあるScriptableRenderPipelineSettingsにファイルを追加する。

f:id:enpel715:20180111222049p:plain

ScriptableRenderPipelineSettingsがない場合。

Assets/Create/RenderPipeline/Lightweight/PipelineAsset から作成することができます。(右クリックからでも可能)

f:id:enpel715:20180111222251p:plain

無事表示されるようになりました。

f:id:enpel715:20180111222424p:plain

Unity2018についにシェーダーのノードエディタが搭載される!(追記アリ

こっちは久しぶりの更新。 雑な更新は えんのアレ – 主にUnityな話 でやってます。

さて、本題。

blogs.unity3d.com

ついにUnityにもノードベースのシェーダーエディタが搭載されるみたいです!やったね!

導入手順

f:id:enpel715:20180111033500p:plain

UnityPackageManagerのmanifest.jsonに以下を追加するだけ

{
    "registry": "https://staging-packages.unity.com",
    "dependencies": {
        "com.unity.render-pipelines.lightweight" : "0.1.21",
        "com.unity.shadergraph" : "0.1.9"
    }
}

使い方とかは後日まとめますが、取り急ぎ触ってみたい人はぜひ~~

追記

ShaderGraphのプレビューが表示されない事案が発生したため対応方法を追記しました

enpel.hatenablog.com

FF14 3度目の復帰

steamcommunity.com

知人のいるAtomosで、新規で1からやってます。

今までFirstNameを自分の名前にしてたけど 今度のキャラはFirstNameはこの子の名前。FamilyNameは自分の名前にしました。

銃打てるようになりたいけど白魔導士にもなりたい そんな娘です。

サバクのネズミ団

FTL系ゲームらしい

時間を忘れてというか寝るのを忘れるほどずっとやってた。

Shaderを学ぶ

これを見ている人のうちどれだけがUnityのマニュアルを見たのだろう

Unity - マニュアル: シェーダーリファレンス

C91 Day1 お疲れさまでした。Unibook7と総集編を頒布してきた。

当初予定していた内容ではない内容をUnibook7には載せてます。

ライト周りとかは次回かなぁ・・・

最近元気になってきたので個人でも何か出したいなって思いつつ来年頑張る感じで…!

👇らへんを気にしてる。(栄光さんはUnibook7で使ってるところ

コンカ | ダウンロードカード・ミュージックカード製作サービス

同人誌 印刷|株式会社 栄光|栄光情報最前線

Unibookはどうしても福袋感があるので自分で作るとしたらEditor拡張のやつとかかなー

とりまそんな感じで1日目お疲れさまでした!!

2日目は西の-16aで売り子してます。 もしお近くを通ったらぜひお声がけください!

あと技術書典も気になってる techbookfest.org

InvalidOperationException: The operation is not possible when moved past all properties (Next returned false)

というわけで表題のエラーの話

今回はEditorGUI.PropertyFieldでVector3型を表示しようとしてできなかったので対応した話。

// ここで表題のエラーが出る
EditorGUI.PropertyField(rect, action.FindPropertyRelative("targetPosition"));

action.FindPropertyRelative("targetPosition")はVector3型が格納されている action.FindPropertyRelative("targetPosition").vector3value等を見ると正常に取れている事がわかる

EditorGUI.PropertyField(rect, action.FindPropertyRelative("targetPosition")); を使いたいけど表題のエラーが出てうまくいかない場合は以下のように直す事で解決ができる。

action.FindPropertyRelative("targetPosition").vector3Value = EditorGUI.Vector3Field(rect, "hoge", action.FindPropertyRelative("targetPosition").vector3Value);

しかし厳密な解決じゃないというか 例えば

var properties = new string[] { "hoge", "fuga", "targetPosition" };
foreach (var p in properties)
{
    EditorGUI.PropertyField(rect, action.FindPropertyRelative(p));
}

のようにしたい場合にこまるかもしれない。 1つ2つの例外ならいいかもしれないけどそうもいかないとおもう。

そこについては解決したらまたなんか描きます

追記

var properties = new string[]{"hoge", "fuga", "targetPosition"};

foreach (var p in properties)
{
    var property = action.FindPropertyRelative(p);
    switch(property.propertyType)
    {
        case SerializedPropertyType.Vector3:
            property.vector3Value = EditorGUI.Vector3Field(rect, property.displayName, property.vector3Value);
            break;
        default:
            EditorGUI.PropertyField(rect, property);
            break;
    }
}

これで良さそう