问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

unity和vs2015怎么调试

发布网友 发布时间:2022-05-05 15:18

我来回答

1个回答

热心网友 时间:2022-06-27 16:24

调试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下的对应文件夹中,这个“同步”过程完全是自动的,你所做的就是“创建”、“编辑”、“保存”。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
武汉大学在职研究生考试科目有哪些 报考武汉大学在职研究生录取率高吗? 武汉大学mpa在职研究生好考吗 忘记车子买哪家保险 怎么查 67年的羊和什么生肖最配夫妻 67年的羊和69年鸡相配吗? 67年羊男与69年鸡女同是11月出生婚配如何? 67年9月和69年十月的结婚 “新菊亦侵篱”的出处是哪里 “闲绕篱头看菊花”的出处是哪里 荣威rx5电子驻车按钮按下去有时候不亮 是怎么回事? 荣威rx5故障码发动机没劲加速无力? 荣威rx5变速箱阀体盖是铁的吗? 荣威rx5故障灯我以解除了,但是开了不到一百公里又出现了? 急!凯迪kk9收音机问题。 荣威rx5阀体油怎么放油 凯迪牌KK908收音机没有声音,但用耳机有声音 荣威rx5这个故障灯是什么意思? 凯迪收音机打不开,上面显示一把小钥匙,怎么办啊!!! 如何关闭凯迪收音机的定时开机功能 造成荣威rx5出现P0016.P0026是什么原因? 凯迪牌kk9收音机普通版和超外差的区别 荣威rx5故障灯一览表 凯迪牌KK-9 超外差九波段电视伴音收音机FM波段 总出现989.3 是什么意思? 荣威rx5进气阀门控制电磁阀电路范围&#47;性能(第1排)故障严重吗?怎样处理? 凯迪牌KK-555型收音机为什么老是自动开机阿 荣威rx5出现油轨压力传感器信号超过阀值 kk9收音机功能怎么样 荣威Rx5碳罐电磁阀哒哒哒响怎么回事,正常吗? 谁能告诉我一下凯迪收音机官方网站 我年龄对男生撒谎,第一次问我我说97,隔了几个问我我说97? 鲍毓明性侵养女案出现了怎样的反转? 男生1997年12月8号 周岁17 虚岁18 应该属于那个星座?星座特征说下? 程晨是不是就是《史玉柱和他身后的女人》中那个化名为汪嫣的女的? 求一部老的武侠小说的书名 瞒的了初一,瞒不了十五,什么意思? 李可佳博士,这件事瞒不住,指的是什么事? 男朋友记忆力太好,每次吵架都是甘拜下风,几年前的事他都说的一清二楚怎么办? 热播电视扫黑风暴马帅死之前,到底隐瞒了李成阳什么样的事情? QQ靓号可以卖出去吗?我的意识是靓号已绑定的手机号怎么办,难道我还要把卡也卖给别人? 《假日暖洋洋》剧组发文道歉,究竟是因为何事才道歉的? 我刚在58上买了一个qq号7位数的,我已经绑定了我的手机号,卖qq的人还会成功把号申诉回去吗? 瞒不住了,孙一宁前任爆料,现实版“潘金莲”,是“受害者”形象要崩塌吗? 感统训练家校沟通怎么写? 肿瘤医院外天桥上:这对夫妻做了17年的事,终于“瞒不住”了,你怎么看? 数次隐瞒婚姻、曾称9年未碰异性,吴尊晒的谎言怎样揭穿? 小米浏览器设置下拉刷新 什么事感统,感统培训又是什么呢? 感统失调训练多久见效 帮另一个手机的QQ号以后开始后绑定的手机号已经卖了怎么办