2016-10-19 10 views
-1

私はプロジェクトを行っていますが、すべてが標準アセットから外れています。だから私はこのすべてのフォルダとアイテムを標準資産フォルダに移動する必要があります。すべてのファイルとフォルダを標準アセットに移動すると、null参照エラーが返されます。ファイルを標準資産に移動した後のヌルエラー

プロジェクトに名前空間があります。この名前空間にアクセスしようとすると、nullエラーが発生します。ここで

は私の名前空間コード

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Assets.Scripts 
{ 
    public interface IInputDetector 
    { 
    InputDirection? DetectInputDirection(); 
} 

    public enum InputDirection 
{ 
    Left, Right, Top, Bottom 

    } 
} 

、ここでそれは私にエラーを与えるUpdateメソッドでは、それは

IInputDetector inputDetector = null; 

とstartメソッドで

void Start(){ 
    inputDetector = GetComponent<IInputDetector>(); 
} 

アクセスを取得するためのコードです

var inputDirection = inputDetector.DetectInputDirection(); // Line 222 

エラーは次のようである..

とNullReferenceException:オブジェクト参照オブジェクト ControllerMovement.DetectJumpOrSwipeLeftRight()のインスタンスに設定されていない(資産/スクリプト/ ControllerMovement.cs時:222) ControllerMovement.Update() (資産/スクリプト/ ControllerMovement.csで:106)

ライン22は、VARラインより上..です

と106行目は、私がupdate()メソッドで呼び出しています方法です。ライン222で

void Update(){ 
    DetectJumpOrSwipeLeftRight(); // line 106 
} 
+0

DetectJumpOrSwipeLeftRightが呼び出されたときに、ControllerMovement型のオブジェクトがnullであるように見えます。しかし、コードスニペットは、なぜこれが当てはまるかを確認するには不十分です。 detectInputs()が何をしているかは、エラーが起きていることを少なくとも示す必要があります。 – Nebr

+0

ohh申し訳ありませんが、私はDetectJumpOrSwipeLeftRight()を呼び出しています。 Update()で更新します。 – mahesh

+0

ContollerMovementが私のクラス名です。 "var inputDirection = inputDetector.DetectInputDirection(); // Line 222" @Nebr – mahesh

答えて

2

あなたのオブジェクトinputdetectorよう

がnullであるように思われます。 nullオブジェクトにDetectInputDirection()を呼び出すとNullReferenceExceptionになります。したがって、

1)Start()ライン222に到達する前に呼び出されていない。inputdetectorが最初にNULLに設定され、唯一の方法Start()によって異なる値に設定されているので

、二つの可能な選択肢がありますinputdetectorはまだnullです。

2.)Start()が呼び出されますが、GetComponent<IInputDetector>()はnullを返します。

現在のコードのスニペットから、実際に起こっていることを言うことはできません。

+0

私は、明らかにStart()がUpdate()の前に来るので、1)は不可能だと思います。 – mahesh

+0

Start()が呼び出されたときを見ることができないので、私にとっては明らかではありません。これを行うには、inputDetector = GetComponent ();行にブレークポイントを設定します。メソッドが返す値を確認します。また、GetComponent()が実際に何をしているかを示すことも有用です。 – Nebr

+0

私は理由を知りませんが、標準の資産とその作業からすべてのファイルとフォルダを出しています。 – mahesh

関連する問題