Unity3D实践系列03,使用Visual Studio编写脚本与调试

 

在Unity3D中,只有把脚本赋予Scene中的GameObject,脚本才会得以执行。

 

添加Camera类型的GameObject。

 

Unity3D默认使用"MonoDevelop"编辑器,这里,我想使用Visual Studio作为编辑器。

 

依次点击"Edit","Preferences","External Tools",在"External Script Editor"项下选择"Visual Studio"作为编辑器。

 

在"Project"窗口下的"Asserts"中,创建名称为"_MyScripts"的文件夹。一旦创建名称以下划线开头的文件夹,该文件夹将排在默认文件夹的上方。

 

开始运行时执行脚本

 

右键"_MyScripts"文件夹,点击"Create"中的"C# Script",取名为"HelloWorld"。

 

双击"HelloWorld"类文件,将在"Visual Studio"中打开此文件。

 

在Visual Studio中编写如下:

 

using UnityEngine;

using System.Collections;

public class HelloWorld : MonoBehaviour {

    // Use this for initialization

    void Start () {

        print("Hello World");

    }

    

    // Update is called once per frame

    void Update () {

    

    }

}

 

保存。

 

如果在Unity3D软件界面中,暂没有"Console"窗口,依次点击"Window"菜单下的"Console",并把"Console"窗口移动至"Game"窗口的右侧。

 

此时,点击Unity3D软件上的播放按钮,"Console"窗口还没有显示任何信息。因为,现在还没有把脚本赋予给Scene中的GameObject。

 

点击"Hierarchy"窗口中的"Camera",随之"Inspector"窗口出现所有有关Camera的信息。

 

把"HelloWorld"这个类文件拖动到Camera对应的"Inspector"窗口的最下方,再次运行,可以看到脚本信息生效。

3


在Unity3D中,还有一种方法可以在控制台输出调试信息。那就是Debug.Log方法。修改HelloWorld类如下:

 

using UnityEngine;

using System.Collections;

public class HelloWorld : MonoBehaviour {

    // Use this for initialization

    void Start () {

        print("Hello World");

        Debug.Log("Hello World from Log");

    }

    

    // Update is called once per frame

    void Update () {

    

    }

}

 

保存。

 

先清空控制台内的调试信息。再次运行,可以看到通过Debug.Log方法生成的调试信息生效。

4

 

当然Debug还有其它静态方法,比如Debug.LogWarning, Debug.LogError,等等。

 

每过一帧执行脚本

 

在Update方法中,游戏每经过一帧都会执行这里的方法。修改HelloWorld类文件如下:

 

using UnityEngine;

using System.Collections;

public class HelloWorld : MonoBehaviour {

    // Use this for initialization

    void Start () {

        //print("Hello World");

        //Debug.Log("Hello World from Log");

    }

    

    // Update is called once per frame

    void Update () {

        print("Hello World");

    }

}

 

保存。

 

运行,看到print("Hello World")被执行了很多次。

 

5

你可能感兴趣的:(unity3d)