zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CEPH篇 目录
    kubernetes篇 容器用户权限控制
    深度学习篇-如何理解置信区间
    Mac软件安装篇 for Mac
    JAVA进阶篇 内存模型
    负载均衡篇 不同层次的负载均衡(2/3/4/7)
    NETTY篇 一篇文章看懂NETTY
    base64加密后无法解密
    Spring-Cloud-Gateway 从升级到放弃
    spring gateway 截取response 长度缺失
  • 原文地址:https://www.cnblogs.com/darrenji/p/4587842.html
Copyright © 2011-2022 走看看