分类:Unity、C#、VS2015

创建日期:2016-03-31

一、简介

用VS2015编辑C#脚本时,如果让其“显示所有文件”,就会看到VS2015解决方案资源管理器中项目的文件夹结构和Unity的Project下的文件夹结构完全相同:

这样一来,你就可以在VS2015中直接打开编辑不同的C# 脚本文件了,而且还可以直接创建新的C# 脚本,而不必在Unity和VS2015间来回切换。

1、与Unity的深度集成

如果你仍然不得不一直在Unity编辑器和VS2015之间来回切换,则VS2015 Tools for Unity 就不是一个提升效率的工具了。之所以借助VS2015 Tools for Unity,是因为可以轻松地在无需离开VS2015的情况下保持工作,这是它能提升开发效率的主要原因。

•VS2015中呈现的项目层次结构和在Unity编辑器中显示的层次结构相同。

•VS2015会自动将来自Unity控制台的输出显示在VS2015的错误窗口内的右侧。

•调试游戏时,无需切换回Unity,只需按F5。

无论是独立运行还是在Unity编辑器中运行,VS2015强大的调试器都会连接到你的Unity游戏以调试C#脚本和DLL。

• 断点,包括条件断点。

• 计算“监视”窗口中的复杂表达式。

• 检查和修改变量和参数的值。

• 深化到复杂的对象和数据结构。

你甚至可以当Unity游戏在网络上的另一台计算机上运行时对其进行调试。

2、MonoBehavior向导

在VS2015的.cs代码编辑器中,将光标放置在你可能要插入方法的位置,然后鼠标右击选择【Implement MonoBehaviors】:

此时就会出现下面的选项:

选择要重载的方法,单击【确定】按钮,它就会自动生成对应的代码。

当你需要重载不熟悉的方法时,MonoBehavior 向导尤其有用。

3、可直接编辑Shader

Unity的 ShaderLab语言的语法着色可帮助你在着色器中的错误变成bug之前发现它们。你只需在VS2015中打开并编辑ShaderLab文件。

4、Unity 错误列表

连接到 Unity 实例时,可以从 Visual Studio 内部的 Unity 控制台查看消息。 这包括 Unity 中的错误和警告。 消息将显示在 Visual Studio 的“错误列表”窗口中;Unity 中的错误消息将显示在“错误”选项卡上,警告消息将显示在“警告”选项卡,而其他消息(比如通过使用 Debug.Log Unity API 发送的消息)将显示在“消息”选项卡上。

为了查看消息,必须正确配置 Unity 项目以支持脚本调试并导入适用于你的 Visual Studio 版本的 Visual Studio Tools for Unity 包,并且 Visual Studio 必须连接到 Unity。

如果不想在 Visual Studio 的“错误列表”窗口中看到 Unity 中的错误、警告和消息,则可在“配置”菜单中禁用它们。

二、需要注意的问题

在Unity中使用C#编写脚本时需要注意以下规则:

1、变量的定义

在Unity中,C#脚本的变量不是用属性来声明,而是直接用public、protected、private来声明该变量可访问的范围,格式为:

访问修饰符 变量类型 变量名;

例如:

public int x = 3;

private string s="abc";

其中,声明为public的变量会自动显示在Unity编辑器的Inspector视图中,并可以在Inspector视图中直接编辑该变量的值。

此规定仅限添加到游戏对象的C# 脚本类,即从MonoBehauour类继承的子类中定义的变量,其他类没有此限制。

2、脚本类必须是MonoBehauour类的子类

凡是需要添加到游戏对象的C# 脚本类,都必须直接或间接地从MonoBehauour类继承。对于在Unity编辑器中新建的C# 脚本,Unity会自动帮助开发者完成继承的相关代码。

不需要添加到游戏对象的C#类没有此限制。

3、脚本子类不要使用构造函数

对于脚本子类(从MonoBehauour类继承的类),应该在Start()方法或者Awake()方法中处理初始化的工作,一定不要在MonoBehauour子类中用构造函数做初始化工作,这是因为Unity无法确定何时调用该子类的构造函数。

不是MonoBehauour的子类没有此限制。

4、脚本类名要和脚本文件名相同

对于从MonoBehauour类继承的类,类名一定要与脚本文件名相同,否则添加脚本到游戏对象时会提示错误。

不是MonoBehauour的子类没有此限制。

5、静态变量

建议不要在对象引用中使用静态变量,以确保未使用的对象能够从内存中删除。

【Unity】2.10 利用VS2015编辑Unity的C#脚本的更多相关文章

  1. 【Unity】10.1 类人动画的导入和设置

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.制作或购买类人模型 为了充分使用 Mecanim 类人动画系统和类人动画的动画重定位功能,需要先使用其他3D建模软件(例如3d ...

  2. 【Unity】10.4 类人动画角色的控制

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 导入角色网格和动画及设置 Avatar 之后,就可以准备开始在游戏中使用它们了.以下部分涵盖 Mecanim 提供的.用 ...

  3. 【Unity】10.3 创建类人动画角色

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 Mecanim 动画系统 (Mecanim Animation System) 特别适合使用类人骨架动画.由于类人骨架非 ...

  4. 【Unity】10.2 通用动画的导入和设置

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 使用类人动画时,Mecanim 的强大之处最明显.但是,尽管没有 Avatar 系统和其他功能,非类人动画也仍然受Mec ...

  5. 升级MAC OS到10.13, 10.14系统后UNITY工程无法加载资源的解决办法

    升级MAC OS到10.13, 10.14系统后,出现UNITY工程无法加载资源的情况: Unity项目中Asset目录显示为空! 解决办法一: 打开Launchpad中的磁盘工具 (也就是实用工具下 ...

  6. 利用Microsoft.Practices.Unity的拦截技术,实现.NET中的AOP

    1.记住这个单词的意思:Interception(拦截) 2.首先说一下原理和背景 原理:所谓的AOP就是面向切面编程,这里不多说,百度搜索. 目的:个人认为是为了解耦,部分代码跟业务代码分离,业务代 ...

  7. 【Unity Shaders】使用Unity Render Textures实现画面特效——建立画面特效脚本系统

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  8. 【VS开发】利用VS2015的工程文件来复制另外一个工程的配置的使用说明

    [VS开发]利用VS2015的工程文件来复制另外一个工程的配置的使用说明 标签:[VS开发] 说明:总是有时候会遇到这样的问题,在一个工程中完成了对某些PKG包的包含,包括头文件和库等都能发现,但是我 ...

  9. Unity优化之GC——合理优化Unity的GC

      转载请标明出处http://www.cnblogs.com/zblade/ 最近有点繁忙,白天干活晚上抽空写点翻译,还要运动,所以翻译工作进行的有点缓慢 =.= PS: 最近重新回来更新了一遍,文 ...

随机推荐

  1. grep命令-v参数过滤以井号、分号开头的注释信息行及空白行

    grep命令-v参数(反向选择)分别去掉所有以#(井号)和;(分号)开头的注释信息行,对于剩余的空白行可以再用^$来表示并反选过滤 [root@rhel7 samba]# cat smb.conf | ...

  2. sikuli 如何 清空文本框中的内容??解决方法!

    Screen s = new Screen(); s.click("name.png"); s.type("a",KeyModifier.CTRL); s.ty ...

  3. 【LeetCode】224. Basic Calculator

    Basic Calculator Implement a basic calculator to evaluate a simple expression string. The expression ...

  4. Spring使用内存数据库

    有时候为了做些测试需要创建数据库及相关表,安装MySQL等轻量数据库虽然简单但还是有点麻烦?而且用于自己临时测试的数据库对象一般不会被多次使用,还是浪费?内存数据库结合ORM可以很好解决这个问题. H ...

  5. 保证java的jar包在后台运行

    nohup  java -jar XX.jar >temp.text &

  6. 简单几步让CentOS系统时间同步(转)

    在使用CentOS系统的时候,我们可能会遇到时间不准的问题,那我们如何解决这个我问题呢,下面就来教大家一个CentOS系统时间同步的方法,希望大家可以解决自己所存在的疑问. CentOS系统时间同步的 ...

  7. Java使用Itext5.5.10进行pdf签章

    说到PDF数字签名签章,这个其实也是数字证书信息安全的应用范畴,关于数字证书和数字签名,网上有很多解释说明,但讲解都多不够详细准确,这边推荐一篇大神的博文,讲解浅显易懂形象数字证书 数字签名 数据加密 ...

  8. 【Servlet】web.xml中url-pattern的用法

    目录结构: contents structure [+] url-pattern的三种写法 servlet匹配原则 filter匹配原则 语法错误的后果 参考文章 一.url-pattern的三种写法 ...

  9. 【MySQL】MySQL的常规操作

    MySQL的常规知识 标准的SQL语句通常可分为如下的几种类型: 1,DCL(Database Control Language) :数据控制语言,主要由grant和revoke关键字组成. 2.DD ...

  10. SQL Server中临时表与表变量的区别

    我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候 ...