

C#初心者です。  
やりたいことは、  
『任意の３Ｄオブジェクトをクリック→「削除ボタン」が表示される。  
「削除ボタン」クリック→その３Ｄオブジェクトが削除される。』  
というようなことです。

Unityで３ＤオブジェクトとボタンにはEventTriggerの設定をしてあります。  
現状では３Ｄオブジェクトをクリックすると、ボタンが表示され、「３Ｄオブジェクトの値」も取得はできているようです。  
その「３Ｄオブジェクトの値」を次の「削除するメソッド」で使いたいのです。  
よろしくお願いします。

[code]

    public class ButtonController : MonoBehaviour
    {
      //3Dオブジェクトをクリックしたら下記のメソッドが呼び出され、
      //そのオブジェクトを削除するかどうかを訊ねる「ボタン」が表示される。
      public void OpenDelPanel()
      {
        GameObject Selobj = this.gameObject;
        Debug.Log(Selobj);//Unityのコンソールに3Dオブジェクトの名前が表示された
    
        GameObject Pop_Delete = GameObject.Find("Pop_Delete");
        Pop_Delete.SendMessage("PopDelStartAnimation");
      }
    
    
      //上記で画面に表示させた「削除ボタン」をクリックしたら、3Dオブジェクトを削除したい。
      public void DelObj()
      {
        //「***」にクリックした３Ｄオブジェクトの値を入れたいのですが...
        Destroy(***);
      }
    }
    
[/code]


CC BY-SA 4.0
2018-08-13T07:20:20.040
47483
2019-11-22T00:01:25.460
29711
question
c# unity3d
Unity, C#で、クリックしたオブジェクトの値を保持して、他のメソッドで使いたい


メソッド内で定義した変数名はそのメソッド内でしか使えなかったような気がします。なのでまずはフィールド内で変数名を定義したほうがいいかもしれません。

[code]

    public class ButtonController : MonoBehaviour
    {
     GameObject Pop_Delete;
     // こんな感じで
    
     public void OpenDelPanel()
     {
      GameObject Selobj = this.gameObject;
      Debug.Log(Selobj);//Unityのコンソールに3Dオブジェクトの名前が表示された
    
      GameObject Pop_Delete = GameObject.Find("Pop_Delete");
      Pop_Delete.SendMessage("PopDelStartAnimation");
     }
    
    
     //上記で画面に表示させた「削除ボタン」をクリックしたら、3Dオブジェクトを削除したい。
    public void DelObj()
    {
      //「***」にクリックした３Ｄオブジェクトの値を入れたいのですが...
      Destroy(***);
     }
    }
    
[/code]


CC BY-SA 4.0
2018-09-14T04:08:13.697
48377
2018-09-14T04:08:13.697
30059
47483
answer