首页 > 解决方案 > 通过点击它来选择对象unity2d c#

问题描述

我正在制作一个游戏,有两个角色,角色 1 和角色 2。当我点击一个角色时,该角色应该被选中(selectedCharacter变量应该存储角色的标签)。我试过这个,但它没有用

public void Update()
{
    if ((Input.touchCount > 0) && (Input.GetTouch(0).phase == TouchPhase.Began))
    {
        Ray raycast = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
        RaycastHit raycastHit;
        if (Physics.Raycast(raycast, out raycastHit))
        {
            if (raycastHit.collider.CompareTag(tag))
            {
                data.selectedCharacter = tag;
            }
        }
    }
}

注意:我的角色有 2Dcolliders,我还构建了游戏并在我的 android 设备上进行了尝试。

标签: c#androidunity3d

解决方案


我注意到您正在比较“标签”。从您的文字中,我认为您想存储您选择的角色的标签?如果是这样,那么你可以这样做:

if(Physics.Raycast(raycast, out raycastHit){
  data.selectedCharacter = raycastHit.transform.gameObject.tag;
}

如果这不是你的意思,那么我不明白你的问题。


推荐阅读