C# 编写Unity脚本及调试方法

标题C# 编写Unity脚本及调试方法

参考文献:Unity脚本设计/(美) Alan Thorm著 刘君译
(1)新建一个简单的脚本,命名为DebugTest,代码如下,当与某一对象进行绑定时,可获得场景中全部对象的列表(包括自身),当启动关卡(Scene)并执行Start()时,可将对象位置设置在世界原点位置处,即(0,0,0)。

using UnityEngine;
using System.Collections;

public class DebugTest : MonoBehaviour 
{
	// Use this for initialization
	void Start () 
	{
		//Get all game objects in scene
		Transform[] Objs = Object.FindObjectsOfType<Transform>();

		//Cycle through all objects
		for(int i=0; i<Objs.Length; i++)
		{
			//Set object to world origin
			Objs[i].position = Vector3.zero;
		}
	}
}

(2)将DebugTest.cs与某一对象进行绑定,假设与场景中的Cube绑定,即成为Cube的组件;
在这里插入图片描述

(3)在VS中设置断点;
在Assets中双击DebugTest.cs,在VS中设置断点;若没有把VS2017设置为默认的脚本编辑器,可单击编辑器菜单栏中的Edit按钮,再单击下拉菜单中的“Preference……”按钮,进入参数设置界面,单击“External Tools",进入外部设置界面,查看第一项”External ScriptEditor“外部脚本编辑器选中项是否为Visual Studio,若不是,则单击”Browse……“选择Visual Studio的安装路径。
在这里插入图片描述
(4)调试→附加Unity调试程序;选择项目,按确定;此时在VS底部弹出局部变量框,输出框;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5)回到Unity中,点击Play按钮;若到达断点,则Unity的执行过程处于停止状态(中断模式)。然后会自动跳转到VS中的断点行,且断点呈现黄色高亮显示,并以此显示当前执行步骤。
在这里插入图片描述
在这里插入图片描述
此时可在局部变量框中查看处于活动状态的变量值;
在这里插入图片描述
当处于中断状态时,一种快速添加查看的方式是,将鼠标指针悬停在高亮显示的代码行上,稍后将自动弹出一个窗口,该窗口将显示某一变量的完整查看信息。
(6)按F5、F10、F11等进行调试;
(7)调用堆栈
调用堆栈窗口可用于查看函数之间的调用关系;将上述代码稍作改进,类中包含多个函数,并于其中调用其他函数。

using UnityEngine;
using System.Collections;

public class DebugTest : MonoBehaviour 
{
	// Use this for initialization
	void Start () 
	{
		//Get all game objects in scene
		Transform[] Objs = Object.FindObjectsOfType<Transform>();

		//Cycle through all objects
		for(int i=0; i<Objs.Length; i++)
		{
			//Set object to world origin
			Objs[i].position = Vector3.zero;
		}

		//Enter Function 01
		Func01();
	}
	//-------------------------------------
	//Function calls func2
	void Func01()
	{
		Func02();
	}
	//-------------------------------------
	//Function calls func3
	void Func02()
	{
		Func03();
	}
	//-------------------------------------
	//Function prints message
	void Func03()
	{
		Debug.Log ("Entered Function 3");
	}
	//-------------------------------------
}

将断点设置在38行;
在这里插入图片描述
按上述步骤执行调试,当到达该行时,执行流程将处于暂停状态。在 调用堆栈窗口,可以发现,调用堆栈窗口将以逆序方式列出函数名称。具体而言就是活动函数或近期函数位于栈顶,并向下至早期或首个被调用的函数。双击某个函数,可在源代码中查看具体情况。
在这里插入图片描述
(8)调用层次结构
鼠标指针置于Func02()内,右击选择查看调用层次结构
在这里插入图片描述
在底部弹出调用层次结构,可以看到Func02()的前后调用函数关系;
在这里插入图片描述
(9)追踪点
在16行设置断点;
在这里插入图片描述
右击断点选择操作;
在这里插入图片描述
在将消息记录到输出窗口中输入i:{i}
在这里插入图片描述
此时圆形的断点标志变成菱形;
按之前调试方法调试,在调试时游戏将直接在Unity Editor中以常规模式运行,当遇到跟踪点时,程序并不会像断点那样处于暂停状态或进入中断模式。而是向窗口输出对应语句;
在这里插入图片描述

### 回答1: 在Unity中,可以在"Project"面板中的"Assets"文件夹内写脚本。通常,我们会在"Assets"文件夹中新建一个文件夹来存放脚本,例如"Scripts"文件夹。然后,右键点击文件夹,选择"Create"->"C# Script",就可以在文件夹内新建一个脚本了。新建完成后,双击该脚本就可以在Unity内编辑脚本了。 ### 回答2: Unity脚本可以在Unity编辑器中的许多不同地方编写。下面是一些常见的地方: 1. 游戏对象(GameObject):在Unity的层次结构中,可以选择一个游戏对象,并在Inspector面板中添加一个新的脚本组件。这将使您能够在选定的游戏对象上添加和编辑脚本。 2. C#脚本文件:您可以在Unity编辑器外部使用任何文本编辑器编写C#脚本文件。然后,您可以将这些脚本文件拖放到Unity项目的Assets文件夹中。这将使您能够在Unity编辑器中将这些脚本文件拖放到需要它们的游戏对象上。 3. Unity的内置脚本Unity提供了一些内置组件,您可以使用这些组件来编写脚本。例如,您可以使用Unity的Animator组件来创建动画,并使用Animator Controller来管理动画播放。 4. 实现接口(Interface):如果您的脚本需要实现Unity的某个接口(Interface),则可以将该脚本放置在Unity编辑器的任何位置。Unity将自动检测到该脚本,并在相关的对象上使用相应的接口。 无论您选择在哪里编写Unity脚本,都可以通过点击Unity编辑器中的Play按钮来测试和执行这些脚本。 ### 回答3: Unity脚本主要是在Unity编辑器中编写的。 Unity编辑器是Unity引擎的一部分,为游戏开发者提供一个可视化的环境来创建、编辑和管理游戏资源。在Unity编辑器中,可以创建游戏对象并在场景中摆放,设置它们的属性和行为。脚本是用来实现这些游戏对象的逻辑和功能的代码。 在Unity编辑器中,可以选择在不同的地方来编写和管理脚本。最常见的是在项目窗口中的“Scripts”文件夹中创建脚本文件。可以右键点击该文件夹,选择“Create”然后选择“C# Script”来创建一个新的脚本文件。然后,双击创建的脚本文件就可以在Unity内置的代码编辑器中开始编写脚本。 除了在项目窗口中创建脚本文件外,还可以在Unity编辑器中的场景视图或层次视图中直接创建空的游戏对象,并在其上添加脚本组件。这样,可以直接在Inspector面板中编辑该脚本的代码,快速进行逻辑的实现。 此外,Unity还支持使用外部的代码编辑器来编写脚本,比如Visual Studio、Visual Studio Code等。可以在Unity编辑器的“Edit”菜单下选择“Preferences”,然后在“External Tools”选项卡中设置外部编辑器。通过在外部编辑器中打开脚本文件,编写代码后,保存并切回Unity编辑器,就可以看到脚本的变化。 总之,Unity脚本可以在Unity编辑器中的“Scripts”文件夹中创建并编辑,也可以直接在场景视图或层次视图中添加脚本组件,并在Inspector面板中编辑代码。同样,也可以选择在外部编辑器中编写脚本代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值