Fiona_ming 2021-12-02 14:10 采纳率: 66.7%
浏览 538
已结题

GameObject[]未包含.GetComponent定义怎么办

using UnityEngine;
using VRStandardAssets.Utils;//引用此脚本
using UnityEngine.UI;//使用image类型添加脚本

public class VRManger : MonoBehaviour
{
   private Image ring;
    VRInteractiveItem vrItem;
    private void Awake()
    {
        vrItem = GetComponent<VRInteractiveItem>() ??
            gameObject.AddComponent<VRInteractiveItem>();//先判断是否有组件如果没有则加上,有就不加,并且加上后赋值给veitem
        ring = GameObject.FindGameObjectsWithTag("ring")
            .GetComponent<Image>();//查找ring,获得image组件
  
    }

提示:Assets\Scripts\VRManger.cs(16,14): error CS1061: 'GameObject[]' does not contain a definition for 'GetComponent' and no accessible extension method 'GetComponent' accepting a first argument of type 'GameObject[]' could be found (are you missing a using directive or an assembly reference?)怎么办

  • 写回答

1条回答 默认 最新

  • 於黾 2021-12-02 14:53
    关注

    GameObject[]是个数组啊,你要先遍历它,取得里面的每个GameObject,再访问它的属性
    GameObject.FindGameObjectsWithTag("ring"),因为你是通过标签来获取物体,标签是可以重复的,那么获取到的一定是个集合
    -=-=-=
    其实如果你能够确定,你场景中的每个物体都有一个不同的标签,那么你完全可以这样写
    ring = GameObject.FindGameObjectsWithTag("ring")[0].GetComponent();
    但是不建议。最好还是先获取到GameObject.FindGameObjectsWithTag("ring")之后,判断一下数量,非0再继续操作,以免忘记放物体或者写错标签名字造成崩溃。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月10日
  • 已采纳回答 12月2日
  • 创建了问题 12月2日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度