尝试使用C#和Unity实例化对象
所以我对编码是新手,我正在使用一本叫做“通过在Unity 2019中开发游戏学习C#-第四版。在其中一个练习中,当我试图实例化一个对象时,它会要求实例化一个对象,该对象的类在另一个.cs文件中声明,但它不起作用。我以为这是因为一个using语句,但也不是这样。这是我的密码尝试使用C#和Unity实例化对象,c#,unity3d,C#,Unity3d,所以我对编码是新手,我正在使用一本叫做“通过在Unity 2019中开发游戏学习C#-第四版。在其中一个练习中,当我试图实例化一个对象时,它会要求实例化一个对象,该对象的类在另一个.cs文件中声明,但它不起作用。我以为这是因为一个using语句,但也不是这样。这是我的密码 //LearningCurve.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class L
//LearningCurve.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LearningCurve : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Character hero = new Character();
}
// Update is called once per frame
void Update()
{
}
}
//Character.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Character
{
}
您的
角色
实例肯定会被创建,但似乎无法在代码中确认。UnityMonoBehavior
脚本在作为组件附加到实际游戏对象时开始工作。尝试此启动功能:
void Start()
{
Character hero = new Character();
if (hero != null) Debug.Log("Hello, Hero");
}
这意味着,如果您的角色实例创建得很好,那么它将在Unity控制台中记录“Hello,Hero”
然后将LearningCurve.cs
连接到场景中的任何现有游戏对象(例如,照相机),然后启动游戏,仔细观察控制台。什么是“不工作”?在您的代码中,hero
是Start()
函数中的局部变量,该函数在第一次Update()
调用之前调用,如前所述。我的意思是,当我键入“Character”并将变量命名为“hero”并将其赋值为“new Character()”;“我的印象是,如果我将鼠标悬停在“英雄”上,它会告诉我“英雄”确实是“角色”类型的变量,但它会显示“?”?hero“据我所知,当我创建它时,它通常会变成某种颜色。在本例中,它不会。我稍后会看一看,但感谢您的帮助OK,因此我更新了Character类以从MonoBehavior继承,添加了它,它允许您的代码工作,但我的问题是,我一直看到“Character”“以与变量相同的颜色显示,而不是更改,当我将鼠标悬停在它上面时,它至少现在显示为“字符”类型,但当我进行新的关键点工作并创建“新字符”时,我会得到一个大的红色圆圈,圆圈内有一个x。知道那是什么吗?