ページ 1 / 1
【Unity】Unity側ではエラーが出ないのにビルドするとエラーが出る
Posted: 2017年1月16日(月) 18:58
by プラム
現在Unityでオンラインゲームを作っている者です。
Unity側では通常通り実行できるのに
ビルドして実行すると、途中で動作が上手くいかなくなります
原因を調べた結果、Unity側ではNullになってないpublicオブジェクトがビルドして実行した倍はNullになっています。
そのオブジェクトはゲームの核となるオブジェクトで、dontdestroyonloadに設定しています。
ちなみにそのNullとなるオブジェクトは

こんな感じで設定しています
なぜビルドした場合だけNullになるのか、全く原因がわかりません。
Re: 【Unity】Unity側ではエラーが出ないのにビルドするとエラーが出る
Posted: 2017年1月16日(月) 21:34
by と成りのトトロ
う~ん。これだけでは何の事か分かりませんね。
>Unity側では通常通り実行できるのに
>ビルドして実行すると、途中で動作が上手くいかなくなります
>原因を調べた結果、Unity側ではNullになってない
>publicオブジェクトがビルドして実行した倍はNullになっています。
Unity側出ないのは例えばゲーム機?どの様にしてNullを調べた。
>そのオブジェクトはゲームの核となるオブジェクトで、dontdestroyonloadに設定しています。
これは詳しく教えてください。
>ちなみにそのNullとなるオブジェクトは
そのオブジェクトはなに?何のプロパティがNullになるのか?
あとスクリプト全体とスクリプトをアタッチしたオブジェクトは何か提示して下さい。それとUnityのVersionとVisualStudioとOS
ルール
http://dixq.net/board/board.htmlに則った書き方にして下さい。
Re: 【Unity】Unity側ではエラーが出ないのにビルドするとエラーが出る
Posted: 2017年1月16日(月) 22:17
by プラム
語彙力なさ過ぎて伝わりませんでした。すみません
Unityのバージョンは5.4です。
Unity側って言うのは、UnityEditor側のGameViewのことです。
ビルドして動かしているのはPCです。
UnityのAssetのLogViewerというAssetを使ってNullになっていることを調べました。
ゲームの核となる部分というのは、シーン間の情報流通。ネットワーク処理。システムデータが保存されているオブジェクトです。
Nullとなるオブジェクトというか、ゲームの核となるオブジェクトの中に保存されているPublic変数のことです。すみません。
Unity側では
dontdestroyonloadに指定しているオブジェクトのpublic変数がnullにならず通常通り運行できるのですが。
ビルドして実行すると
dontdestroyonloadに指定しているオブジェクトのDate.csのpublic変数がすべてnullになります(ヒエラルキー側で指定しているのに)
Date.csの中身はこちら
コード:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[CreateAssetMenu]
public class CardDate:ScriptableObject{
public int type;
public int bangou;
public int ranc;
public string name;
public Sprite sprit;
}
//[CreateAssetMenu]
public class Card{
public int exp;
public int num;
public int lv;
public bool deck=false;
}
//[CreateAssetMenu]
public class Weapon{
public string Weaponname;
public int senzaikouka1;
public int senzaikouka2;
public int attack;
public Weapon(){
Weaponname = "";
senzaikouka1 = 0;
senzaikouka2 = 0;
attack = 100;
}
}
[CreateAssetMenu]
public class EnemyDate:ScriptableObject{
public int hp=0;
public int attack=0;
public int defens=0;
public string prefabname="";
}
[CreateAssetMenu]
public class EnemyInitDate:ScriptableObject{
public int mapnum;
public Vector3 position;
public EnemyDate enemydate;
}
[CreateAssetMenu]
public class QuestDate:ScriptableObject{
public int ranc;
public GameObject prefab;
public string names;
}
public class Date : MonoBehaviour {
public QuestDate[] questdate; //これと
public QuestDate[] questdate2; //これと
public CardDate[] carddate; //これすべてがnullになる
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
Re: 【Unity】Unity側ではエラーが出ないのにビルドするとエラーが出る
Posted: 2017年1月19日(木) 15:42
by 預言者
非常識な投稿だったので、内容を削除しました
(by 管理人)