tonomotohide
@tonomotohide

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

UdonSharpでの変数の取り扱いがわからない

解決したいこと

下記で掲載されているunitypackage内のLocal InputのCanvasの値を操作したいですが、想定通りに動きません。
https://hatuxes.hatenablog.jp/entry/2021/05/24/171942

掲載されているカウントアップについてはできました。
その後、キューブを新設し、

        _countData++;

        _countData--;

に変更したScriptを作成し、アタッチしました。これにより

  • _countData++をアタッチしているキューブをインタラクトしたときは、カウントアップ
  • _countData--をアタッチしているキューブをインタラクトすると、カウントダウン

する動作を想定していました。

しかし、カウントアップ側のキューブしか動作せず、カウントダウン側をインタラクトしても値が減りませんでした。

想定するような動作にするためにはどのようにすればよいか教えてください。

該当するソースコード

using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
using UnityEngine.UI;

public class count_up_local : UdonSharpBehaviour
{
    public Text DisplayDataText;  // データを表示するためのText

    private int _countData;       // データ本体

    void Update()
    {
        // 常時データをTextに出力する
        DisplayDataText.text = _countData.ToString();
    }

    // Cubeをインタラクトすることで、値を+1/-1する処理
    public override void Interact()
    {
        _countData++;     // 片方のキューブはこちら
        //_countData--;   // もう片方のキューブはこちら 
    }
}

自分で試したこと

  • _countData++側のUpdateを消すと、カウントアップ側が動かなくなり、カウントダウン側が動くようになりました。
  • DisplayDataText.text = _countData.ToString(); をInterect内の2行目に書くと、カウントアップ/ダウンはするものの、値が共有できていないようでした。(Up側5回インタラクトで1→2→…→5となり、続いてDown側インタラクトすると-1になり、再びUp側インタラクトすると6になる)

Pythonを普段使っているので、C#やUdonSharpの基礎的なことを理解できていない気がします。
ご教示、よろしくお願いいたします。

0

No Answers yet.

Your answer might help someone💌