1. 继承之MonoBehaviour类
所有的行为脚本代码必须继承之MonoBehaviour类(直接或间接)。如果使用的是javascript的话会自动隐性的继承,如果使用的是 C#或Boo就必须明确地指定其继承于MonoBehaviour。如果你是在u3d中通过“Asset->Create->C Sharp Script/Boo Script”来创建了脚本代码文件的话,Unity3D的脚本创建模板将会提前将相关继承语句定义在脚本代码文件中。
2.使用Awake或Start方法进行初始化。
你需要在C#或Boo在使用Awake或Start方法。
Awake和Start之间的区别在于:Awake是当一个场景调入过程完成后会自动运行,而Start则是会在Update或FixedUpdate方法被第一次调用之前被运行。所有的Awake方法运行的优先级会高于任意的Start方法。
3. 文件中主类名必须与文件名相同。
在javascript脚本文件中,Unity3D虽然没有明确地定义主类,但事实上,u3d已经隐性地自动定义了主类,并将类名设置为等于脚本文件名(不包括扩展名)。
如果使用的是C#a或Boo脚本,那就必须得手动的将主类名设置为与文件同名。
4. 使用C#实现协同,在语法上会有一处不同。
Unity3D中的协同会同时用一个属于IEnumerator接口类型枚举的返回值和你使用的yield 返回值来替代yield
代码如下:
using System.Collections;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
// C# coroutine
IEnumerator SomeCoroutine () {
// Wait for one frame
yield return 0;
// Wait for two seconds
yield return new WaitForSeconds (2);
}
}
5.不要使用命名空间。
Unity3D目前不支持你在脚本中使用命名空间,这个需求会在未来的版本中实现。
6. 只有成员变量是可以在U3D程序的Inspector栏中会被以序列形式显示出来。
私有类型(private)和成员类型(protected)变量只能在专家模式(Expert Mode)下可见。
7. 避免使用构造函数
不要通过构造函数来初始化变量。这些工作可以使用第2条中的Awake方法和Start方法来替代(换句话来说就是在u3d中,Awake方法和 Start方法是每个脚本文件类中默认的构造函数)。Unity3D甚至可以在标准编辑模式下就调用它们。它们通常是直接汇编在脚本中,因为构造函数需要检索默认 脚本变量用于引用。Unity3D在任意的时候不光可以调用构造函数,还可能会调用预设物体或未被唤醒的游戏物体。
实例化C#脚本文件时,单脚本文件状态下使用自定义的构造函数可能会导致严重的后果,并且会产生引用为空的异常。
所以,如果你实例化C#脚本文件,单脚文件不要使用自定义的的构造函数,直接使用Awake方法替代即可,实在没有理由为一个继承之MonoBehaviour的文件类写任何的构造函数代码。
相关推荐
Genesis2000脚本接口是这样的一个工具,它允许开发者使用特定的语言,如C#,来创建自定义的脚本,以与Genesis2000系统进行交互。本文将深入探讨Genesis2000脚本接口和C#语言的结合使用,以及如何利用源码进行学习和...
ScriptTool允许用户直接编译C#脚本为可执行程序或库文件,这通常涉及到C#编译器API的使用,如Microsoft.CSharp命名空间下的CSharpCodeProvider。通过调用编译器服务,我们可以将源代码转换成中间语言(IL),再...
本人用C#实现的脚本引擎 支持基本的条件分支 跳转 循环和数学运算,可以扩展自己的控制函数。 主要用作于游戏脚本。 不了解其中的原理和作用的可以参见本人的本站上的技术博文:开发Window Phone 7下的Galgame(一...
1. **读取JS源代码**:使用C#的文件操作API读取JS脚本文件内容。 2. **语法解析**:通过JavaScript引擎提供的API,如Jurassic或ClearScript,解析JS代码,形成抽象语法树(AST)。AST是代码的结构化表示,可以从中...
在VisionPro中,通过集成的Cognex Scripter,用户可以利用C#语言来编写自定义脚本,实现更复杂的逻辑控制和功能扩展。下面我们将深入探讨如何在VisionPro中编写C#脚本。 首先,了解C#基础是必要的。C#是一种面向...
在C#中,我们可以使用`Microsoft.CSharp`和`System.CodeDom.Compiler`命名空间中的类来实现动态编译。主要涉及以下知识点: 1. **CSharpCodeProvider**:这是编译C#源代码的类,它实现了`ICodeCompiler`接口。通过...
在"类C#脚本解析"中,使用lambda进行代码拼接意味着我们可以创建动态的、基于上下文的代码片段,这些片段可以通过lambda表达式组合起来,形成更复杂的逻辑。这种方式比传统的字符串拼接或解释执行的方式更高效,因为...
一个常见的C#脚本引擎是Microsoft的JScript.NET,但它并不支持最新的JavaScript特性。为了处理现代JavaScript,开发者通常会采用开源项目,如Noesis.Javascript。Noesis.Javascript是一个用C#编写的高性能JavaScript...
【C#脚本运行工具】是一款专为C#开发者设计的应用程序,它允许用户执行用C#语言编写的脚本。这款工具的核心功能是提供一个平台,使得C#脚本的运行变得更加便捷,尤其适用于自动化任务,如自动下载和自动下发等场景。...
C#语言脚本文档主要涉及的是使用C#作为脚本语言进行编程的实践和技术。CS-Script是一个强大的工具,它允许开发者在.NET Framework环境中利用C#进行动态编译和执行,极大地扩展了C#的应用场景,使其不仅仅局限于传统...
大家经常看到一些视觉软件内嵌入一些脚本...下面使用c#实现代码脚本编辑器功能,给大家参考学习一下,可以下载源代码,导入自己的项目中,可以实现编译运行哦!可以说是缩小版vs,可以输出结果,编译错误提醒等等功能
SQL脚本可能包含多条命令,用分号";"隔开。可以使用`Split(';')`方法将其分割成多个命令字符串数组。 6. **逐条执行SQL命令**: 遍历命令字符串数组,对每个命令创建新的SqlCommand对象,并执行: ```csharp ...
在使用C#编写Unity3D脚本时,需要注意一些关键的问题,以便高效地开发和避免常见的错误。以下是一些编写Unity3D脚本时的重要知识点。 1. Unity3D项目结构理解:在开始编写C#脚本之前,开发者应熟悉Unity3D的项目...
使用C#脚本编辑器,开发者可以享受到诸如语法高亮、自动完成、错误检查、代码折叠等提升编程效率的特性。 C#脚本编辑器的核心特点包括: 1. **语法高亮**:编辑器会根据C#的语法规则对代码进行颜色标记,使代码更...
c#调用脚本语言Lua——简单Demo 配置: 1. 下载c#下的Lua支持类库。下载地址:http://files.luaforge.net/releases/luainterface/luainterface/2.0.3 将(lua51.dll\LuaInterface.dll)引用自己的项目中。 2. 修改...
本项目“C#利用脚本做了一个公式编辑器”是这样的一个创新实践,它将脚本的强大功能与用户友好的界面结合,实现了在程序内部对复杂逻辑进行动态管理。通过这个编辑器,用户可以方便地编辑和执行计算公式,特别是在...
这种执行程序使得用户能够在不接触源代码的情况下使用C#脚本引擎,只需提供C#脚本来执行。 5. **帮助文档**:`cs-scriptDocs.zip`很可能是C#脚本引擎的文档集合,包含了详细的使用指南、API参考、示例代码等,对于...
在使用Mdbg进行C#脚本代码调试时,首先我们需要确保代码已经被正确地编译。C#源代码需要通过编译器(如csc.exe)转换为中间语言(IL)或本地机器码。可以使用命令行参数指定编译选项,例如包含的文件、引用的库以及...
使用C#编写的VisionPro脚本,支持找边,找圆结果的传递和显示,VisionPro 8.2
本教程主要介绍了Unity3D中C#脚本的基础使用方法,包括脚本的基本结构、常用函数、时间控制、物体操作以及组件访问等方面。掌握这些基础知识可以帮助开发者更好地理解和运用Unity3D中的脚本功能,为后续更复杂的游戏...