c# - 通过点击它来选择对象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 设备上进行了尝试。
解决方案
我注意到您正在比较“标签”。从您的文字中,我认为您想存储您选择的角色的标签?如果是这样,那么你可以这样做:
if(Physics.Raycast(raycast, out raycastHit){
data.selectedCharacter = raycastHit.transform.gameObject.tag;
}
如果这不是你的意思,那么我不明白你的问题。
推荐阅读
- python - 如何在有条件地排除某些字符串和数字的情况下计算列表的长度?Python
- javascript - 当我的函数似乎返回正确答案时,为什么 console.log() 未定义日志记录?
- list - 在 Haskell 中对列表进行三角化
- javascript - 在我添加箭头函数来调用我正在使用的函数后,onClick 事件不起作用
- javascript - 在 angularjs 中加载后如何将值传递给 html
- reactjs - 在 ReactJS 中选择性显示 JSON 数据
- reactjs - ELIFECYCLE 1 推送到 Heroku 时出错
- android - 当我的手机蓝牙在 Android 应用程序中关闭时,我可以识别信标吗?
- rust - 防止移动不可复制的结构
- reactjs - ExpectSaga put 断言因多个 put 效果而失败