首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能隐式地将类型`UnityEngine.GameObject‘转换为ScriptName

不能隐式地将类型`UnityEngine.GameObject‘转换为ScriptName
EN

Stack Overflow用户
提问于 2017-11-04 07:22:32
回答 1查看 7.6K关注 0票数 0

GameManager.cs

代码语言:javascript
复制
public class GameManager : MonoBehaviour
{
    public static GameManager instance;

    public SlingShot slingshot;


    // Use this for initialization
    void Start()
    {

        int character = PlayerPrefs.GetInt ("CharacterSelected", 0);
            if(character==0)
            {
                slingshot = GameObject.Find ("slingshot");
            }

    }

弹弓是SlingShot.cs的一个实例,使用上面的代码,我试图在用户从菜单中选择时动态地设置弹弓。我找不到这里面有什么问题,但它给了我错误Assets/Scripts/GameManager.cs(50,28): error CS0029: Cannot implicitly convert typeUnityEngine.GameObject‘to SlingShot'

请帮我解决这个问题。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-04 07:26:04

SlingShot是一个脚本,而不是GameObject

GameObject.Find返回GameObject而不是SlingShot。您需要使用GetComponent函数从SlingShot函数返回的GameObject中获取GameObject.Find组件。

代码语言:javascript
复制
slingshot = GameObject.Find ("slingshot").GetComponent<SlingShot>();

您还可以将其分解为:

代码语言:javascript
复制
//Find the slingshot GameOject
GameObject slingObj = GameObject.Find("slingshot");
//Get the SlingShot script that is attached to the slingshot GameObject
slingshot = slingObj.GetComponent<SlingShot>();
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47108473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档