为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
心有法竹 2021-10-24 19:13:20
我实际上不知道在 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 1spr_boards 2spr_boards 3spr_boards 4spr_boards 5顺便说一下,我在另一个脚本上有一个点击事件public void InstantiateTheObject(){      fromAnotherScript.InstantiateObject();}然后将其拖到InstantiateTheObject检查器上的按钮上现在我想单击此对象之一并返回它们的编号,但我不知道该怎么做。编辑:更多信息例如,如果我单击实例化spr_board 1,则必须记录例如“这是对象 1”;然后,如果我单击spr_board 2例如这必须记录例如“这是对象 2`;我试过这个public void InstantiateTheObject(){   Debug.Log("objects number is : " + lobby_object_no);      fromAnotherScript.InstantiateObject();}但问题是它总是得到我 last 的最后一个值。这不取决于我单击实例化对象的内容。
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

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


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


查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 216 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信