【问题标题】:C# in Unity, SetActive several gameObjects from player entering trigger areaUnity中的C#,SetActive从玩家进入触发区域的几个游戏对象
【发布时间】:2018-11-28 19:09:36
【问题描述】:

C# 和 Unity 的全新用户。请不要客气,我整晚都在这。我穷过的每个教程都说将对象从不可见更改为可见就像将游戏对象设置为打开一样简单。然而,当我在这个脚本中声明一个游戏对象时,Unity 给了我一个错误。目标是,当输入触发器时,几个名为“spawn”的游戏对象将变得可见。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class collider : MonoBehaviour 
{

    public gameObject Spawn; // I get error On this line that type is expected, 
                             //not property. It wants a Transform>
    private Rigidbody rb;
    void Start () 
    {
        rb = GetComponent<Rigidbody>();

    }



    void OnTriggerEnter(BoxCollider other)
    {


        if (other.gameObject.CompareTag("Player"))
        {
            Spawn.SetActive(true);

        }
    }

}

【问题讨论】:

  • edit您的问题并附上它给您的错误文本。

标签: c# unity3d gameobject


【解决方案1】:

gameObject 不是类型,但 GameObject 是。

去掉public gameObject Spawn; 并使用public GameObject Spawn; 来声明一个名为SpawnGameObject 属性

【讨论】:

  • Assets/collider.cs(23,10): error CS1061: Type UnityEngine.GameObject' does not contain a definition for GameObject' 并且找不到扩展方法GameObject' of type UnityEngine.GameObject'。您是否缺少程序集参考?
  • @Mattonio 好的,第 23 行是什么?您的问题在第 23 行有 Spawn.SetActive(true);,但这与错误所指的内容不符。你可能在某个时候使用Spawn.GameObject.xyz,而你应该使用Spawn.xyz
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多