分类:Unity、C#、VS2015

创建日期:2016-04-16

一、简介

这一节先利用GUI显示一个简单的界面(以后还会专门介绍GUI),并解释如何在VS2015中调试C#脚本。

本节例子的运行效果如下:

二、调试C#脚本的方式

有以下方式:

(1)利用断点调试。断点设置和取消的办法与在控制台应用程序中利用断点调试C#代码的办法相同。

(2)通过Debug类提供的方法在后台输出调试信息。该办法会直接在VS2015输出窗口以及Unity的控制台(Console)中输出调试信息。

(3)在Unity的播放预览模式下,直接修改检视器(Inspector)中显示的变量的值,观察不同值的效果。

三、本节例子的设计步骤

1、运行Unity,新建ch06Demo工程。

2、在Project视图的Assets下添加一个名字为“6.2”的子文件夹,然后将默认的场景保存到该文件夹下,场景名称为“Scene2.unity”。

3、在Assets/6.2文件夹下鼠标右击添加一个文件名为ch06_2_1.cs的C#脚本,然后双击它在VS2015中打开该脚本,将其改为下面的内容:

using UnityEngine;
using System.Collections; public class ch06_2_1 : MonoBehaviour
{
public int age = 20;
private string text = "";
private string myName = ""; void OnGUI()
{
//用标签显示文本
GUILayout.Label(string.Format("你的年龄是:{0}\n", age));
GUILayout.Label("请输入你的名字:");
//在文本区域中输入名字
text = GUILayout.TextField(text);
//按钮
if (GUILayout.Button("提交"))
{
myName = text;
}
//当myName不为空的时候,说明我们已经提交了名字,则显示名字
if (!string.IsNullOrEmpty(myName))
{
GUILayout.Label("提交成功,名字:" + myName);
}
}
}

4、按<Ctrl>+S保存该脚本。

5、切换到Unity,观察Project下的文件夹,会发现6.2文件夹下有2个文件:

5、在层次视图中鼠标右击,添加一个空的GameObject:

6、选中GameObject,以便在检视器中观察它。然后将ch06_2_1.cs拖放到检视器中得到下面的结果:

这时你就会发现,脚本中声明为public的age变量,在GameObject的检视器视图中被自动封装成了Age属性,并显示在脚本的下面。

说明:这就是为什么我们在C#脚本中用小写字母开头的age来声明这个变量,因为Unity会将自动其封装为用大写字母开头的同名属性。

6、按【播放】按钮进入预览模式,即可看到运行效果:

7、在文本框中输入名字,单击【提交】按钮,就会在界面中的下一行显示出名字信息。

8、拖放检视器中【Age】属性的值(按住鼠标左右拖放),你就会发现该值在场景中也会跟着变化:

9、再次按【播放】按钮结束预览模式。

10、切换到VS2015,再要插入代码处鼠标右击,选择【Implement MonoBehabious】,在弹出的窗口中,勾选Start(),如下图所示:

单击【OK】,它就会自动在当前光标处添加Start()方法。

11、将Start()改为下面的代码:

public void Start()
{
Debug.Log("Age:"+age); //还可以输出下面的分类信息
Debug.Log("普通信息");
Debug.LogWarning("警告信息");
Debug.LogError("错误信息");
}

12、选择【Attach to Unity and Play】:

然后单击它,此时,它就会自动从VS2015切换到Unity,并在Unity的Console选项卡中输出下面的内容:

当然了,这样做只是为了演示如何在VS2015中直接启动Unity下的播放预览模式,并在Unity的Console中输出不同级别的信息(一般、警告、错误)。在实际的代码中肯定不会这样做,而是应该根据具体情况,决定在后台输出哪一类的调试信息。

13、单击Unity的【播放】按钮结束预览模式。

14、切换到VS2015,结束运行,然后注释掉Start()方法中的语句,单击【保存】或者【全部保存】:

好了,通过这个例子,你应该知道如何在VS2015中调试C#脚本了吧。

另外,你也可以直接在VS2015的解决方案资源管理器中项目的对应文件夹下添加新的C#脚本或者其他资源,或者创建新的子文件夹(VS2015中项目文件夹的结构和Unity工程中Project下文件夹的结构完全相同),保存后它都会自动将其同步到Unity的Assets下的对应文件夹中,这个“同步”过程完全是自动的,你所做的就是“创建”、“编辑”、“保存”。

【Unity】6.2 在VS2015中调试 C# 脚本的更多相关文章

  1. 【VS2017新特性】在VS中调试javascript脚本

    1   概述 VS2017可以调试JS,本篇文章简要概述VS2017关于启用和关闭VS调试功能. 2   具体内容 当开启VS2017JS调试功能时,我们用VS2017打开解决方案时,会出现如下界面: ...

  2. 在VS中调试javascript脚本

    https://blog.csdn.net/u010228798/article/details/78207375

  3. IE、chrome、火狐中如何调试javascript脚本

    1.  IE中点击"F12",在弹出页面中调试javascript脚本 2. chrome中点击"F12",在弹出页面中调试javascript脚本 3.  火 ...

  4. 【Unity】6.1 Unity中的C#脚本基础知识

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 1.常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型. (1)基本类型 int.float. ...

  5. Window10中利用Windbg与虚拟机(window7)中调试驱动建立方法

    想起自己的windbg配置就转载:eqera的windows内核调试配置,真的是获益良多希望他不会介意我转载他的博客,帮了我很多,记录下来给我也给大家, 其中我主要看的是VMWare的pipe建立,而 ...

  6. VS2015远程调试

    原文链接 VS2015远程调试   在PayPal支付时,PayPal回调函数一直报错,本地没有外网IP,没有办法在本地调试,需要远程调试: 1.找到远程调试的文件夹: 找到对应的服务器的型号:64位 ...

  7. 微信公众号开发 VS2015本地调试

    1.部署一个微信公众号服务在本地IIS: 2.下载一个ngrok 穿网工具,放到部署文件夹根目录: ngrok穿网 在部署路径下打开cmd,输入 ngrok http [端口号] 4.将映射的URL ...

  8. vs2015 远程调试web

    1.找到vs2015远程调试器 针对服务器版本选择 X64 .X86,把文件夹复制到服务器 2.在服务器中运行:msvsmon.exe 选择 工具->选项,修改成 无身份验证,允许任何用户进行调 ...

  9. VS2015 远程调试:Remote Debugger

    一.关于Remote Debugger 使用VS远程调试器Remote Debugger,我们可以调试部署在不同机器上的应用程序,如桌面应用程序和Asp.Net应用程序. 二.Remote Debug ...

随机推荐

  1. NTCPMSG 开源高性能TCP消息发送组件

    https://www.cnblogs.com/eaglet/archive/2013/01/07/2849010.html 目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能 ...

  2. rac安装_grid安装校验报错之grid未建立信任关系

    原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...

  3. html页面典型页面制作

    1.多列多行式 这种样式最好通过百分比来制作,因为不同手机浏览宽度是不一样的 像这种,中间图片的制作,html: <ul class="person-list"> &l ...

  4. Android中如何让DialogFragment全屏(DialogFragment fullscreen)

    这个问题很让人纠结,因为我要在popopwindows里面使用fragment,但是在popopwindows里面找不到它的父控件,于是转战使用DialogFragment,但是让它全屏是一件很头疼的 ...

  5. thunderbird中如何设置QQ邮箱

    thunderbird和其他客户端设置是类似的. 我们发现您尝试设置POP3/SMTP服务,但设置未成功. 您可以检查以下的细节来解决:  您是否在邮箱中开启了这项服务,如果尚未开启,请您在[邮箱设置 ...

  6. [转]图解分布式一致性协议Paxos

    Paxos协议/算法是分布式系统中比较重要的协议,它有多重要呢? <分布式系统的事务处理>: Google Chubby的作者MikeBurrows说过这个世界上只有一种一致性算法,那就是 ...

  7. 使用Thrift让Python为Java提供服务

    Thrift是基于TCP的,谷歌的GRPC是基于HTTP的.Thrift和GRPC都是比直接写个web接口进行调用更完美的方式,最明显的一点就是:我们可以定义结构体,避免了手动解析的过程. 但是,在将 ...

  8. 业务、架构、技术,我们应该关注什么 Java和.Net的优势劣势简单看法 市场经济决定,商业之道即是软件之道,市场的需求决定着软件技术的发展 利益决定着选择应用新技术

    业务.架构.技术,我们应该关注什么 一个企业存在的必然和前提就是获取企业生成的利润,怎么样合法合理取得利润呢,企业怎么样生存下去呢,很简单,为客户提供等值的产品与服务,客户支付你相应的报酬. 我们是从 ...

  9. C语言学习笔记 (001) - 常量指针与指针常量的区别(转帖)

    三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...

  10. VS2010编译Boost 1.56

    (1)首先下载源代码:http://softlayer-dal.dl.sourceforge.net/project/boost/boost/1.56.0/boost_1_56_0.zip 解压到某个 ...