【问题标题】:Click Instantiated Object and Return What it's number C#(UNITY) [duplicate]单击实例化对象并返回它的编号 C#(UNITY) [重复]
【发布时间】:2018-07-24 09:22:16
【问题描述】:

我实际上不知道在 google 上搜索什么,所以我直接到这里,对此我很抱歉。我的问题是我有 Instantiate() 这样的对象

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);
  }
}

结果是

spr_boards 1

spr_boards 2

spr_boards 3

spr_boards 4

spr_boards 5

顺便说一句,我在另一个脚本上有一个点击事件

public void InstantiateTheObject(){
      fromAnotherScript.InstantiateObject();
}

然后将这个InstantiateTheObject拖到inspector上的按钮

现在我想单击其中一个对象并返回它们是什么数字 但我不知道该怎么做。

编辑:

更多信息

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

然后,如果我单击 spr_board 2,例如,这必须记录例如“这是对象 2”;

我试过了

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

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

【问题讨论】:

  • 好吧,你可以随便找个空格,然后从一个字符串中得到它后面的数字
  • 你正在制作 5 个相同的东西并将它们放在彼此的顶部,所以我猜最后一个在顶部
  • 我实际上拥有的列表顺序是1,5,3,2,4,所以总是选择底部。所以它总是 4 @BugFinder。
  • 那么你到底在挣扎什么(尽管已删除评论)似乎你的问题是你在点击你期望的东西时得到了一个不同的对象
  • 哇,谢谢程序员

标签: c# unity3d


【解决方案1】:

如何从变换名称中获取数字:

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 的数字

【讨论】:

  • 这不会对不起。不过谢谢
  • 为什么不呢?这就是您从名称中获取数字的方式
  • 你还需要获取对象吗?
  • 他们已经指定了号码,先生。
  • 我已经编辑了答案 - 现在它还按照您的要求输出调试日志字符串
猜你喜欢
  • 2020-11-19
  • 2016-11-05
  • 2016-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 2017-06-03
相关资源
最近更新 更多