如何为GVRHead GoogleVR设置目标

3

我正在使用Unity 3D(版本5.3.2)中的Google Cardboard插件。我已经设置了一个C#脚本,应该从“GvrHead.cs”脚本访问变量“target”。这是脚本的一部分(它被称为“CrystalDrop.cs”):

        12. public Transform target2;
        13. private GameObject HeadObj;
        14. private GvrHead myScript;
        15.
        16.
        17. void Start () {
        18.     HeadObj = GameObject.Find ("GvrHeadObj");
        19.     myScript = HeadObj.GetComponent(GvrHead);
        20.     myScript.target = target2;
        21. }

但是当我在Unity中运行该项目时,出现以下错误:

Assets/CrystalDrop.cs(19,49): error CS0119: 表达式表示一个类型,而期望的是变量方法组

有人知道发生了什么吗?

3个回答

3
请使用以下内容:
    12. public Transform target2;
    13. private GameObject HeadObj;
    14. private GvrHead myScript;
    15.
    16.
    17. void Start () {
    18.     GvrHead.target = target2;
    21. }

你编辑之前的回答实际上是正确的。当它说:GvrHead.target = target2; 如果你改回去,我会将其标记为已接受的答案。 - Henry V
@HenryV 我现在改回来了。我不确定 target 变量是否是静态的。我刚刚查看了 GVR 的文档,发现它不是静态的,所以我把它改回来了。祝你玩得愉快 :) - Umair M
谢谢,我手动将其更改为静态。已接受并点赞! :) - Henry V
很高兴能够帮到您 :) 但是我不建议您更改SDK中包含的类的代码。 - Umair M

1
只需将 myScript = HeadObj.GetComponent(GvrHead); 改为 myScript = HeadObj.GetComponent<GvrHead>();,就能在Unity中使用C#获取组件。

哦,抱歉,没有看到那个。但是当我更改那部分时,它只会显示:Assets/CrystalDrop.cs(20,26): error CS0176: 静态成员“GvrHead.target”无法使用实例引用访问,请改用类型名称限定。 - Henry V
@HenryV,请检查我的答案。 - Umair M
@UmairM,你的答案和我的一样。你基本上发了我在答案中写的一样的东西。 - Programmer
@程序员 是的!有时从代码中获取意义比从文字中获取容易。 - Umair M
我不是在谈论你回答中的代码部分。我经常遇到这种情况,除非你告诉他们一些可以与他们已有知识相比较的东西,否则初学者很难理解。 :) - Umair M
显示剩余4条评论

1
将私有的GvrHead myScript; 改为公共的GvrHead myScript;,然后将带有GvrHead脚本的游戏对象拖放到其中。这可能有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接