FC2ブログ
06 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 08

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】Unityのバージョン変えたらデータのSerialize後にDesirializeができなくなった!そんな時の解決方法の一つ。 

こんにちは、坂内です。

みなさんご自分のアプリは64対応してますか?

うちのポケガはしていませんでした。

ってことで、64対応をしようとしたままドはまり中です。

まぁ その中で1点Serialize、Desirializeについて分かったことをご報告。


現在ポケットガールにて、保存するデータをシリアライズしてPlayerPrefabに保存とかしてます。
もちろんロード時にはデシリアライズしてます。

簡単にかつ「64ビット対応するなら新しいUnityにしちゃえ」ってことで、Unity2017⇒Unity2019を試していたら、起動時に以下のようなエラーが出て動かなくなりました。


SerializationException: The keys for this dictionary are missing.
System.Collections.Generic.Dictionary`2[TKey,TValue].OnDeserialization (System.Object sender) (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
System.Runtime.Serialization.ObjectManager.RaiseDeserializationEvent () (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize (System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Runtime.Serialization.Formatters.Binary.__BinaryParser serParser, System.Boolean fCheck, System.Boolean isCrossAppDomain, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Boolean fCheck, System.Boolean isCrossAppDomain, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Boolean fCheck, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage) (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Boolean fCheck) (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) (at <1f0c1ef1ad524c38bbc5536809c46b48>:0)
XXXXXXXXXXX.Load[T] (System.String prefKey) (at Assets/Scripts/DATA/XXXXXXXXXXX.cs:38)
XXXXXXXXXXX.load () (at Assets/Scripts/DATA/XXXXXXXXXXX.cs:73)
YYYYYYYYYY.Load () (at Assets/Scripts/DATA/YYYYYYYYYY.cs:220)
ZZZZZZZZZZZZ.Start () (at Assets/Scripts/TITLE/ZZZZZZZZZZZZ.cs:38)


え?ロードできない?

Unity2017でゲーム内保存⇒Unity2017でロード 〇
Unity2019でゲーム内保存⇒Unity2019でロード 〇
Unity2017でゲーム内保存⇒Unity2019でロード ×
Unity2019でゲーム内保存⇒Unity2017でロード ×

えーーーー!うっそでしょー!

バージョン変えたからって、ロードできなくなるなんて今までなかったよ!?

めっちゃ調べた結果、海外のフォーラム(どこか忘れた)で、以下のようなやり取りがあった。

「Script Runtime Version同じか?それが違うとシリアライズデシリアライズあわねえよ」

まじかー!!!

ってことで確認。

Unity2017 .NET 3.5 Equivalent

Unity2019 .NET 4.x Equivalent


あぁー違う!


ってことで、Unity2019の方を.NET3.5 に変えたらいけたー!!!


なんかRuntimeVersion違うとだめらしいんで、皆さんお気をつけをば!


さて、今日もビルドのトライアルアンドエラーの日々よ。
早く、ビルド作業終わらせたい・・・・あでゅ~ノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】3Dオブジェクトのワイヤーフレーム化。 

こんにちは。大坂です。

週末は3連休ですが天気が悪いようですね。

さて今週もちょいネタ。
3Dオブジェクトをワイヤーフレーム化するお話。
ちょっと使うことがあったので、ご紹介。

こんなのを書いて対象のオブジェクトにくっつけるだけなんですが。
    void Start()
{
MeshFilter meshFilter = GetComponent<MeshFilter>();
meshFilter.mesh.SetIndices(meshFilter.mesh.GetIndices(0), MeshTopology.LineStrip, 0);
}

実行するとこんな感じになりますね。


なんか影がついちゃってますね。
影がいらない場合は対象のmaterialを適当に変えてあげます。


全体が白くなりますね。

materialの色を変えたら色も変えられます。
        MeshRenderer meshRenderer = GetComponent<MeshRenderer>();
meshRenderer.material.color = Color.red;


という感じで簡単にできましたよってお話。
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】ListでほしいものをFindするときに、まとめてとる方法や、Findの複数条件が使えることについて 

こんにちは!坂内っす。

UnityでList使ってますか?

List<クラス>

で、指定クラスのオブジェクトがいっぱい入るリスト作れますよね。

よく使ってます。

例えばこんなクラスがあるとします。

【AAA.cs】

public class AAA
{
public int aaaNo;
public int aaaType;
public string aaaName;
}


で、こんな感じで3個のAAAオブジェクトがListに入れます。


using System.Collections.Generic;
using UnityEngine;

public class Scripts20190708 : MonoBehaviour
{
List aaaAry = new List();
void Start()
{
AAA a0 = new AAA();
a0.aaaNo = 0;
a0.aaaType = 0;
a0.aaaName = "あいうえお";
aaaAry.Add(a0);

AAA a1 = new AAA();
a1.aaaNo = 1;
a1.aaaType = 0;
a1.aaaName = "かきくけこ";
aaaAry.Add(a1);

AAA a2 = new AAA();
a2.aaaNo = 2;
a2.aaaType = 1;
a2.aaaName = "さしすせそ";
aaaAry.Add(a2);
}
}


以前の記事で、Findを使って1つのオブジェクトを取り出すっていうのはやっています。


例えば「aaa.Noが2のモノを取り出す」って場合はこんな感じ


AAA no2Object = aaaAry.Find(x => x.aaaNo == 2);


これで、a1として入れたものが取り出せます。

では「aaaTypeが0のモノをすべて」取り出すにはどうすればいいでしょうか?


List allType0Obj = aaaAry.FindAll(x => x.aaaType == 0);


こんな感じで複数のモノも取れます。

また、複数の検索条件ももちろん使うことができます。


AAA no2Type1Obj = aaaAry.Find(x => x.aaaNo == 2 && x.aaaType == 1);


これであなたもFindマスター(だったらいいよね)


ってことで、是非ListとFindをご使用ください。多様していいのか分かりませんが!

あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】今更ですがInspectorに計算式が書けます 

こんにちは。
大坂です。

今更な話題ですがInspectorの座標とかのところで計算式が使えます。
連続して一定の距離とか動かして配置したいときとかには便利ですかね?
UIならLayoutGroup系使ったらいいんですが。(HorizontalLayoutGroupとか)
まぁそれはそれとしてこんな感じで書けます。



Enter押してあげるとちゃんと計算した結果を出してくれますね。
1つのオブジェクトを1回やるだけなら普通に暗算したほうが早いんですが、
複数オブジェクトをやっていくとなると間違いも少なくなるので便利になるかもしれませんね!

今週も短いですがこれにてーノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Google Indie Games Festival 2019 ファイナルいってきたぞおおーー!!!! 

こんにちは、坂内っす。

6月29日はGoogle Indie Games Festival 2019 ファイナルイベントの日でした。
それってなーに?って方はこちら。

https://indiegamesshowcase.withgoogle.com/intl/ja_jp/


アプリ開発者の端くれということで、行ってまいりました。



こんなっ感じでトップ20が!

・10時開演
・13時まで各ブースで試遊したり投票したり
・14時くらいからトップ10の発表
・その後トップ10の人は、一人5分のプレゼンをし、トップ3を決める
といった流れでした。

まずは試遊っす。
全部は回ってないですが・・・











そして、ここがイベント会場!
人入る前にパシャリ



試遊するとスタンプがもらえるスタンプラリーをすると、投票用のコインとドロイド君人形がもらえます。


なんと!レアなやつが入ってました!




そしてトップ10の発表!



どれも素晴らしいアプリです!

その後10人のそれぞれのプレゼン。

最後にトップ3の発表です!



あ、なんかファイナルイベントの動画があるようなので、気になる方はそちらをチェック!

https://events.withgoogle.com/indie-games-festival-2019-japan-1/youtubelive/#content


その後の飲み会では、トップ20に入賞した方々も来たぞ!
・Infection - 感染 - CanvasSoftさん
・MeltLand - メルトランド - Masataka Hakozakiさん
・相撲巻 - SumoRoll 横綱への道 Studio Kingmoさん
・ペルセポネ - Rinaldさん
・なぞってたしてけすパズル タシテケス - mottekeさん

楽しい飲み会だった!
トップ20の皆様お疲れ様でした!

イベントとしてはとても楽しく素敵なイベントだった!
また来年も機会があれば行きたいっすね!

入賞?したいけど、来年のこの時期までにゲーム出来上がるかどうか・・・・


ではあでゅ~ノシ

Category: その他日記

tb 0 : cm 0