Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击实例化对象并返回其编号C(UNITY)_C#_Unity3d - Fatal编程技术网

C# 单击实例化对象并返回其编号C(UNITY)

C# 单击实例化对象并返回其编号C(UNITY),c#,unity3d,C#,Unity3d,我不知道在谷歌上搜索什么,所以我直接来到这里,对此我很抱歉。我的问题是我已经实例化了这样的对象 public void InstantiateObject(){ //the list has 5 objects in it . for (int i = 0; i < list.Count; i++) { GameObject o = Instantiate(lobby_object) as GameObject; o.transform.SetParent(pos_

我不知道在谷歌上搜索什么,所以我直接来到这里,对此我很抱歉。我的问题是我已经实例化了这样的对象

public void InstantiateObject(){
//the list has 5 objects in it .
  for (int i = 0; i < list.Count; i++)
  {
    GameObject o = Instantiate(lobby_object) as GameObject;
    o.transform.SetParent(pos_lobby_object);
    o.transform.localScale = Vector3.one;

    o.transform.name = "spr_boards " + lobby_object_no;

    o.transform.localPosition = new Vector3(0, 0, 0);
    NGUITools.SetActive(o, true);
  }
}
然后将此对象拖动到inspector上的按钮

现在我想点击其中一个对象并返回它们的编号 但我不知道怎么做

编辑:

更多信息

如果我点击了实例化的spr_board 1,例如,这必须记录,例如a,这是对象1

然后,如果我单击spr_board 2,例如,这必须记录,例如a,这是对象2`

我试过这个

public void InstantiateTheObject(){
   Debug.Log("objects number is : " + lobby_object_no);
      fromAnotherScript.InstantiateObject();
}

但问题是它总是得到我的最后一个值的最后一个值。这并不取决于我在实例化对象上单击的内容。

如何从转换名称中获取编号:

RaycastHit hit;
 void Update()
 {
    if (Input.GetMouseButtonDown (0))
    {
       Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
       if(Physics.Raycast(ray, out hit))
       {
          GameObject ourObject = hit.collider.gameObject;

          string prefix = "spr_boards ";
          string txtNum = ourObject.transform.name.Remove(0, prefix.Length);
          int number = Int32.Parse(txtNum);

          Debug.Log ("this is object " + number);
       }
    }
 }

int number是从1到5的数字

好吧,你可以找到空格,然后从stringwell中得到后面的数字。你制作了5个相同的东西,并将它们放在彼此的顶部,所以我猜最后一个在顶部。我的列表顺序实际上是1,5,3,2,4,所以底部总是被选中的。所以它是4 always@BugFinder。那么,尽管删除了评论,你到底在挣扎什么呢?你的问题似乎是,点击你想要的东西时,你会得到一个不同的对象哇,谢谢你的程序员,这不会很抱歉的。但是谢谢你为什么不呢?这就是你从名字中得到一个数字的方法。你还需要得到这个对象吗?他们有指定的数字,先生。我已经编辑了答案-现在它还按照你的要求输出调试日志字符串
RaycastHit hit;
 void Update()
 {
    if (Input.GetMouseButtonDown (0))
    {
       Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
       if(Physics.Raycast(ray, out hit))
       {
          GameObject ourObject = hit.collider.gameObject;

          string prefix = "spr_boards ";
          string txtNum = ourObject.transform.name.Remove(0, prefix.Length);
          int number = Int32.Parse(txtNum);

          Debug.Log ("this is object " + number);
       }
    }
 }