93
87

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

かなりいい加減なUnityエラー解決方法

Last updated at Posted at 2013-12-04

warning CS0618: UnityEngine.GameObject.active' is obsolete: GameObject.active is obsolete. Use GameObject.SetActive(), GameObject.activeSelf or GameObject.activeInHierarchy.'
Unity 4 から "active"プロパティが"activeSelf" に変更されたので該当箇所を修正する。


error CS0200: Property or indexer `UnityEngine.GameObject.activeSelf' cannot be assigned to (it is read only)
activeSelfは読み取り専用なので、"gameobject.activeSelf = true"とかは無理。
書き込む場合はgameobject.SetActive(true)などを使う。


Error building Player: UnityException: Bundle Identifier has not been set up correctly
ビルドしたときに発生した。
File -> Build Settingsで下記画面を開く。

Unity_bild_settings.png

したの方にある
Player Settings... -> Others Settings -> Bundle Identifier
を適当な名前に変更する。


An object reference is required to access non-static member
staticをつけたメソッドからメンバ変数にアクセスしようとしたら起きた。
とりあえずメソッドのstaticを外して解消。


There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.
ひとつのシーンにカメラが複数台あって、そのカメラたちがAudio Listenerコンポーネントを別々にもっているの怒られている。ひとつだけ有効にする。


You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all
とあるスクリプトのインスタンス生成しようとしたら発生。原因はMonoBehaviourを継承したクラスのインスタンスをnewで生成しようとするのは駄目。AddComponentを使おう!!
以下、サンプル

test.cs
using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {}
test2.cs
using UnityEngine;
using System.Collections;

public class test2 : MonoBehaviour {
	void Start () {
		test ttt = new test();
	}
}

上記だとnewでインスタンス生成しようとしているので警告となる。

test2.cs
using UnityEngine;
using System.Collections;

public class test2 : MonoBehaviour {
	void Start () {
		GameObject obj = new GameObject("Cube");
		test ttt = obj.AddComponent<test>();
		Debug.Log (ttt);
	}
}

で上記のように修正するとOK。Cubeはtestをアタッチした適当なゲームオブジェクト。MonoBehaviourはGamgeObjectに依存しているのでこういう風に一度ゲームオブジェクトをとらないと駄目らしい。


Getting control 1's position in a group with only 1 controls when doing Repaint
なんかよくわからないけど、再描画(トグルで閉じたり開いたりするとか)の仕方がまずいらしい。

Test.cs
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {}
Editor/TestInspector.cs
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestInspector : Editor {

	public override void OnInspectorGUI() {
		string key = "flg";

		bool flg = EditorPrefs.GetBool(key, true);
		
		if (flg){
			GUI.backgroundColor = Color.yellow;
		}else{
			GUI.backgroundColor = Color.white;
		}

		if (GUILayout.Toggle(true, "Toggle", "dragtab", GUILayout.MinWidth(20f)))
			EditorPrefs.SetBool(key, !flg);

		if (flg){
			GUILayout.BeginVertical();
			GUILayout.EndVertical();
		}
	}

}

これでトグルで切り替えて背景色の変更とVerticalなエリアの表示・非表示の切り替えをしようとしたがダメだった。
下記のようにGUI.changedの値で確認したて切り替えたらOKでした。意味がよくわかりません。。。

Editor/TestInspector.cs
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestInspector : Editor {

	public override void OnInspectorGUI() {
		string key = "flg";

		bool flg = EditorPrefs.GetBool(key, true);
		
		if (flg){
			GUI.backgroundColor = Color.yellow;
		}else{
			GUI.backgroundColor = Color.white;
		}

		GUI.changed = false;

		if (GUILayout.Toggle(true, "Toggle", "dragtab", GUILayout.MinWidth(20f)))
			flg = !flg;

		if (GUI.changed) EditorPrefs.SetBool(key, !flg);

		if (flg){
			GUILayout.BeginVertical();
			GUILayout.EndVertical();
		}
	}
}

Error while importing package: Couldn't decompress package
なんかimportできなかった。。 インポートするpackageの設置場所が悪いらしい。
Cドライブ直下に配置したらできるようになった。


Unexpected symbol `
全角文字列が混入していたっぽい


Only assignment, call, increment, decrement, and new object expressions can be used as a statement

Input.touches[0].position

とやったとき発生。

Debug.Log(Input.touches[0].position);

とやるとでなくった。とりあえず、なんかに使えということだろうか。。。


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

変数宣言がおそらくされていない。


AnimationEvent has no function name specified!

アニメーションクリップにイベントを指定しているのに関数が割り当てられていない。animation_event_no_function.png
青いやつを消すとなくなる


cant_add_script.png
UnityでGameObjectにアタッチするScriptクラスには、MonoBehaviourを継承する必要がある模様。


error CS0117: System.IO.File' does not contain a definition for WriteAllBytes'
なんかPlatfomrがWebプレイヤーだとおきるみたい。別のにした。


UnassignedReferenceException
pulic変数を宣言して、Inspectorからそこになりもいれていないとよく起こる。


Level 'HogeHoge' (-1) couldn't be loaded because it has not been added to the build settings.
To add a level to the build settings use the menu File->Build Settings...
UnityEngine.Application:LoadLevelAsync(String)

Application.LoadLevelAsync ("HogeHoge");

とやったらエラーでた。「File」-「Build Settings」でロードするSceneを入れればOK。
Scenes In BuildのところにSceneをD&Dする。消すときは選択してDeleteキー。


error CS1627: Expression expected after yield return

IEnumeratorインターフェースメソッドでyield returnをしていない。もしくはreturn方法がまずい。


error CS0535: xxx' does not implement interface member System.IDisposable.Dispose()'

IDisposableインターフェースを継承した場合はDiposeメソッドを実装する必要があるみたいです。


Rejected because no crossdomain.xml policy file was found

File → Project Settings → Editor
InspectorのHost URLにアクセスするWebサーバなどのドメインを指定する


Building Asset Bundles requires Unity Advanced for iOSSupport

BuildPipeline.BuildAssetBundleをしたら発生。iOSとandroidを作成しようとしたのですが、Pro版のほか各ビルドライセンスが必要なようだ


Parent directory must exist before creating asset at

ファイルをつくるためのフォルダが存在しない。そのフォルダを手動でつくったら解決した。


Control cannot fall through from one case label to another

switchでdefaultにbreakを忘れていた


Sharing violation on path

オープン中にファイルにアクセスしようとした


The expression being assigned to `xxxxx' must be constant

定数に式などはいれらない


Error building Player: SystemException: 'System.Net.Sockets' are supported only with Unity Android Pro. Referenced from assembly 'Assembly-CSharp'.

Androidのライセンスないよ!


Can't add component 'NewBehaviourScript' because it doesn't exist. Check to see if the file name and class name match.

ファイル名とそのファイルの中に書かれているclass名が違う


IOException: Sharing violation on path...

あるファイルを開いたまま、そのファイルに書き込もうしたら怒られた。ちゃんと閉じたらよくなった。


Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption.

インスタンス化する前のオブジェクトに親を設定しようとした。
prefab化をインスタンス化する前によくやる


'C:/Program Files/Unity/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll' is in timestamps but is not known in guidmapper...

AssetsをReimport Allしたら直った


The best overloaded method match for `string.Split(params char[])' has some invalid arguments

Splitの引数を「","」とダブルクオーテーションで囲っているのがダメ。シングルクオーテーションで囲ったら直った
引数に問題があるときに出る模様


Set-up Android SDK path to make Android remote work

UnityにAndroidSDKの設定していない可能性あり


Use of unassigned local variable xxx

変数を初期化していないとか


There are inconsistent line endings in the 'Assets/Test.cs' script. Some are Mac OS X (UNIX) and some are Windows.
This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.

Test.csの改行コードがいろいろと混在してるよという警告.


This asset bundle 'test.assetbundle' was not created with UncompressedAssetBundle flag, expected id 'UnityRaw', got 'UnityWeb'

圧縮形式のAssetBundleをAssetBundle.CreateFromFile ("test.assetbundle")でロードしようとした


test.cs(5,13): error CS0101: The namespace global::' already contains a definition for Hoge'

同じ名前空間内に同じものを定義した


You are trying to load data from a www stream which had the following error when downloading.Cannot load cached AssetBundle. A file of the same name is already loaded from another AssetBundle.

アンロードをせずにロードしようとしたとき
例)
AssetBundle assetBundle;
assetBundle.Unload(false);
をせずに
WWW www;
www = WWW.LoadFromCacheOrDownload (test/test, 1);
www.assetBundle;


Test.cs(140,48): error CS0500: `Test.Hoge()' cannot declare a body because it is marked abstract

抽象メソッドに{}を定義したら発生
protected abstract Hoge() {};

で解消
protected abstract Hoge();


[CRIWARE]:Failed to create XAudio2 object.[E2009042301] The version of DirectX SDK might be different from Atom library's.

Windows7でUnityエディターで再生したらなんか上記エラー発生して音がでなかった。
DirectX End-User Runtimes (June 2010)をダウンロードしてインストしたら大丈夫になった。


ArgumentException: May only be called in OnPostProcessTexture

よくわからんが画像を壊れていたっぽく、差し替えたら治った
Reimportで治る可能性もあるか


Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.

Transform t = gameobject.transform;
//t.parent = parent.transform;
t.SetParent(parent.transform);

コメントアウトしてあるような親の設定を行うと警告がでる。どっかのバージョンそうなったもよう。


Couldn't create asset file!
UnityEditor.AssetDatabase:CreateAsset(Object, String)

AssetDatabase.CreateAsset(player, path);

のようなコードでpathにたどるまでのディレクトリとかがないときに発生。


Image.PNG
上記のような警告がでた
Image Type をSimpleにしたら消えた


error CS1612: Cannot modify a value type return value of `System.Collections.Generic.List.this[int]'. Consider storing the value in a temporary variable

public struct TestStruct
{
	public int i;
}

public class TestClass
{
	void Start()
	{
		List<TestStruct> tList = new List<TestStruct>();

		TestStruct t1 = new TestStruct();
		t1.i = 1;

		tList.Add(t1);

        // これはだめ!!
		// tList[0].i = 2;

        // これはOK!!
		TestStruct t2 = tList[0];
		t2.i = 2;
		tList[0] = t2;
	}

}

only pot textures can be compressed to etc1 format

64×64とか、2のべき乗でないサイズのときでる警告


event型に式をいれようとしたら発生

public event SendComplete sendComplete;

sendComplete = () => {}

Test.cs(92,42): error CS0070: The event xxx.sendComplete' can only appear on the left hand side of += or -= when used outside of the type xxx'-----------------

下記のようにいれたらOK

public event SendComplete sendComplete;

sendComplete += () => {}

error CS1061: Type System.IO.FileInfo' does not contain a definition for OpenRead' and no extension method OpenRead' of type System.IO.FileInfo' could be found (are you missing a using directive or an assembly reference?)

WebPlayerではOpenReadは使えない模様


Could not start compilationWin32Exception ...

Editor以下にスクリプトを作成したら発生。ウィルスソフトがウィルスと隔離した模様。ウィルスソフトの設定で復元したら大丈夫になった。
なぜにウィルス扱い?


GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)

scrollPosition = GUILayout.BeginScrollView(scrollPosition);
GUILayout.EndScrollView(); // ← この行がないときとかに発生.

GUILayoutの始まりと終わりでちゃんと囲えていない場合に発生。


キャプチャ.PNG

Editor拡張スクリプトでTextureをロードしまくったら発生。

EditorUtility.UnloadUnusedAssets();
EditorUtility.UnloadUnusedAssetsIgnoreManagedReferences();

をちょくちょく呼ぶようにしたら大丈夫になった。片方でも大丈夫かも。なお、Unity4系の話。5系は違うメソッドかもしれない。


Unsupported texture format - needs to be ARGB32, RGBA32, BGRA32, RGB24, Alpha8 or DXT

Texture ImpoterでARGB32, RGBA32, BGRA32, RGB24, Alpha8 or DXのどれかにしたら解決した。


キャプチャ.PNG

PARSE ERROR:
unsupported class file version 52.0

Androidのapkを作成するとき発生。
Androidのネイティブプラグイン(.jarファイル)を含んだものを作成しようとした。

Unityのバージョンは4.6.8f1
jdk 1.8.0
Android Studioでjarは作成した。

build.gradleの以下のようにしてjarファイル作成したら大丈夫になった。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    sourceCompatibility = 1.7 // ここ追加
    targetCompatibility = 1.7 // ここ追加
}

UnassignedReferenceException: The variable HogeButton of  HogeButtonScript has not been assigned.
You probably need to assign the HogeButton variable of the HogeButtonScript script in the inspector.

HogeScript.csでpublic変数で宣言したhogeButtonにinspectorから割当をせずに、それを使おうとした場合発生。

93
87
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
93
87

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?