質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.94%

他のスクリプトから値を取得したい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 673

score 10

前提・実現したいこと

脳波計のデータを使って球体を大小変化させるプログラムを作りたいと思っています。
その段階で、脳波計の数値を別スクリプトで表示させたいのですがエラーが出てしまいます。
最近、プログラムを始めたばかりで苦戦しております、どうか力を貸してください。

発生している問題・エラーメッセージ

NullReferenceException: Object reference not set to an instance of an object
biggerball.Start () (at Assets/NeuroSkyAssets/NeuroSkyScripts/biggerball.cs:14)

該当のソースコード

using UnityEngine;
using System.Collections;
using System.IO;
using System.Text;

public class DisplayData : MonoBehaviour
{
    public Texture2D[] signalIcons;

    private int indexSignalIcons = 1;

    TGCConnectionController controller;

    private int poorSignal1;
    private int attention1;
    private int meditation1;
    private float delta;
    private float theta;
    private float lowalpha;
    private float highalpha;
    private float lowbeta;
    private float highbeta;
    private float lowgamma;
    private float highgamma;

    public int GetBulletCount()
    {
        return attention1;
    }
    void Start()
    {

        controller = GameObject.Find("NeuroSkyTGCController").GetComponent<TGCConnectionController>();

        controller.UpdatePoorSignalEvent += OnUpdatePoorSignal;
        controller.UpdateAttentionEvent += OnUpdateAttention;
        controller.UpdateMeditationEvent += OnUpdateMeditation;
        controller.UpdateThetaEvent += OnUpdateTheta;
        controller.UpdateLowAlphaEvent += OnUpdateLowAlpha;
        controller.UpdateHighAlphaEvent += OnUpdateHighAlpha;
        controller.UpdateLowBetaEvent += OnUpdateLowBeta;
        controller.UpdateHighBetaEvent += OnUpdateHighBeta;
        controller.UpdateLowGammaEvent += OnUpdateLowGamma;
        controller.UpdateHighGammaEvent += OnUpdateHighGamma;

        controller.UpdateDeltaEvent += OnUpdateDelta;

    }


    void OnUpdatePoorSignal(int value)
    {
        poorSignal1 = value;
        if (value < 25)
        {
            indexSignalIcons = 0;
        }
        else if (value >= 25 && value < 51)
        {
            indexSignalIcons = 4;
        }
        else if (value >= 51 && value < 78)
        {
            indexSignalIcons = 3;
        }
        else if (value >= 78 && value < 107)
        {
            indexSignalIcons = 2;
        }
        else if (value >= 107)
        {
            indexSignalIcons = 1;
        }
    }
    void OnUpdateAttention(int value)
    {

       // SphereCollider myCollider;
        //myCollider = GetComponent<SphereCollider>();

        attention1 = value;
        /*value = 0;
        if (value >= 50 && value < 60)

        {
            this.transform.localScale = new Vector3(2, 2, 2);
            myCollider.radius += 2f;
            Debug.Log("1");
        }
        else if (value >= 60 && value < 70)
        {
           myCollider.radius += 5f;

            Debug.Log("2");
        }
        else if (value >= 70 && value < 100)
        {
            Debug.Log("3");
        }
        else if (value >= 100)
        {
            Debug.Log("4");
        }
        */
        /*StreamWriter sw = new StreamWriter(@"attentionData.txt", true, Encoding.GetEncoding("Shift_JIS"));
        sw.WriteLine(attention1);
        sw.Close();
        */
    }
    void OnUpdateMeditation(int value)
    {
        meditation1 = value;
        /*StreamWriter sw = new StreamWriter(@"meditationData.txt", true, Encoding.GetEncoding("Shift_JIS"));
        sw.WriteLine(meditation1);
        sw.Close();
        */
    }
    void OnUpdateDelta(float value)
    {
        delta = value;
        /* StreamWriter sw = new StreamWriter(@"deltaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
         sw.WriteLine(delta);
         sw.Close();
         */
    }
    void OnUpdateTheta(float value)
    {
        theta = value;
        /* StreamWriter sw = new StreamWriter(@"thetaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
         sw.WriteLine(theta);
         sw.Close();
         */
    }
    void OnUpdateLowAlpha(float value)
    {
        lowalpha = value;
        /*StreamWriter sw = new StreamWriter(@"lowalphaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
        sw.WriteLine(lowalpha);
        sw.Close();
        */
    }
    void OnUpdateHighAlpha(float value)
    {
        highalpha = value;
        /* StreamWriter sw = new StreamWriter(@"highalphaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
         sw.WriteLine(highalpha);
         sw.Close();
         */
    }
    void OnUpdateLowBeta(float value)
    {
        lowbeta = value;
        /* StreamWriter sw = new StreamWriter(@"lowbetaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
         sw.WriteLine(lowbeta);
         sw.Close();
         */
    }
    void OnUpdateHighBeta(float value)
    {
        highbeta = value;
        /* StreamWriter sw = new StreamWriter(@"highbetaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
         sw.WriteLine(highbeta);
         sw.Close();
         */
    }
    void OnUpdateLowGamma(float value)
    {
        lowgamma = value;
        /*StreamWriter sw = new StreamWriter(@"lowgammaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
        sw.WriteLine(lowgamma);
        sw.Close();
        */
    }
    void OnUpdateHighGamma(float value)
    {
        highgamma = value;
        /*StreamWriter sw = new StreamWriter(@"highgammaData.txt", true, Encoding.GetEncoding("Shift_JIS"));
        sw.WriteLine(highgamma);
        sw.Close();
        */
    }



    void OnGUI()
    {
        GUILayout.BeginHorizontal();


        if (GUILayout.Button("Connect"))
        {
            controller.Connect();
        }
        if (GUILayout.Button("DisConnect"))
        {
            controller.Disconnect();
            indexSignalIcons = 1;
        }

        GUILayout.Space(Screen.width - 250);
        GUILayout.Label(signalIcons[indexSignalIcons]);
        GUILayout.EndHorizontal();
        GUILayout.Label("PoorSignal1:" + poorSignal1);
        GUILayout.Label("Attention1:" + attention1);
        GUILayout.Label("Meditation1:" + meditation1);
        GUILayout.Label("Delta:" + delta);
        GUILayout.Label("theta:" + theta);
        GUILayout.Label("lowAlpha:" + lowalpha);
        GUILayout.Label("highAlpha:" + highalpha);
        GUILayout.Label("lowBeta:" + lowbeta);
        GUILayout.Label("highBeta:" + highbeta);
        GUILayout.Label("lowGamma:" + lowgamma);
        GUILayout.Label("highGamma:" + highgamma);

        //Debug.Log(attention1,meditation1,delta,theta,lowalpha,highalpha,lowbeta,highbeta,lowgamma,highgamma);
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class biggerball : MonoBehaviour {

    public DisplayData display;


    // Use this for initialization
    void Start () {

        int value ;
        value = display.GetBulletCount();
        Debug.Log(value);
    }
    // Update is called once per frame
    void Update () {

    }
}

試したこと

取得用の関数をつくり、その関数に数値が出力させるようにした。
また、publicを使ってやってみましたが、同様のエラーが出てしまいました。

補足情報(FW/ツールのバージョンなど)

unity(2017.1.1f1)
ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

Script error (biggerball): Update() can not take parameters.

update()からはパラメータを得ることはできません
というエラーです

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/10/24 13:01

    ご回答ありがとうございます。
    NullReferenceException: Object reference not set to an instance of an object
    biggerball.Start () (at Assets/NeuroSkyAssets/NeuroSkyScripts/biggerball.cs:14)というエラーが出てしまったのですが、これはオブジェクトにアタッチしてないというエラーですか。何度も質問してしまいごめんなさい。

    キャンセル

  • 2019/10/24 13:05

    NullReferenceExceptionってのは、nullの変数になにかした、というエラーなので、
    それが出た行(あるいはその前の行)に書いてある変数やクラスの値を調べて、nullかどうかをみてみましょう

    #たいがい、生成に失敗したとか該当がないとかでnullが返されますな

    キャンセル

  • 2019/10/24 17:27

    ご回答ありがとうございます。
    無事に実行できました。

    キャンセル

0

StartもUpdateも引数はありません
以下のように、int value の部分を消してください

void Start ()
void Update ()

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/10/24 12:56

    回答ありがとうございます。
    int valueを消したらUpdate() can not take parameters.というエラーはなくなりましたが次にこのようなエラーが出てしまいました。
    NullReferenceException: Object reference not set to an instance of an object
    biggerball.Start () (at Assets/NeuroSkyAssets/NeuroSkyScripts/biggerball.cs:14)
    このエラーはオブジェクトにアタッチしてないというエラーですか。
    何度も質問してしまいごめんなさい。

    キャンセル

  • 2019/10/24 13:38

    14行目にエラーがあります
    多分、NeuroSkyTGCController がないんだと思います
    具体的にどのように設定するのか、というのはそのシステムのドキュメントなりサンプルなりをよく読んで確認するしかないと思います

    キャンセル

  • 2019/10/24 17:27

    ご回答ありがとうございます。
    無事に実行できました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.94%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る