Unity2D的游戏脚本可以使用3中开发语言来编写:C#,JavaScript和BOO。你可以选择你熟悉的编程语言来编写,通常C#语言的编程功能会更加强大一些,成为首选的语言。在Unity2D中使用C#是基于mono框架来实现的,mono是一个跨平台的C#框架,通过这个框架基本上可以将C#的程序运行在各大主流的操作系统上。

    Unity2D的游戏脚本是跟具体的游戏对象关联的,无论是作用在一个具体的场景物体还是管理着批量的物体,脚本首先必须依附于场景中的一个元素才能被执行。脚本属于游戏对象的一个组件(component),给一个游戏对象添加一个脚本就是通过添加组件的方式来添加。一个C#的脚本如下所示:
using UnityEngine;
using System.Collections; public class NewBehaviourScript : MonoBehaviour { // Use this for initialization
void Start () { } // Update is called once per frame
void Update () { }
}

一个脚本通过实现一个派生自”MonoBehaviour”的类来与unity的内部工作机制建立联系。可以将新创建的组件类型的类作为一个蓝图,该类作为一个新类型的组件被附加到游戏对象。每次将一个脚本组件附加到游戏对象,都会创建一个该蓝图定义的对象的实例。创建的脚本文件的文件名必须与里面的类名相同,这样才能将其附加到游戏对象上。

需要注意到的主要事情是,该类中定义的两个函数。Update函数处理游戏对象的帧更新相关的操作。这个可能包括移动,触发动作以及对用户输入的反馈,基本上在游戏过程期间需要处理的任何事情都可以在这里面处理。Start函数在游戏开始前被unity调用(例如,在Update被第一次调用之前),因而是一个进行初始化操作的理想位置。

可能会疑惑为什么不把初始化操作放在类的构造函数中,这是因为对象的构造是由编辑器处理的,在游戏开始的时候并不如想象中那样会发生。如果为一个脚本组件定义构造器,它会和unity的正常操作发生干扰从而导致一些问题。

脚本被创建之后是处于不激活状态的,只有将它的一个实例附加到一个游戏对象之后代码才会被激活。同时,一个游戏对象的一个类型的组件只能有一个,也就是可以附加到游戏对象的脚本组件不能超过一个。

 
根据脚本使用的情况,可以有以下做法:
1.脚本位于同一个物体上。
可直接使用泛型或者类型转换语法调用。
如:someScript = GetComponent<ExampleScript>();
2.脚本位于不同物体上。
需要使用Find或相关的搜索函数,取得指定名称的物体信息后,再+”.GetComponent”函数。如:GameObject.Find("stone").GetComponent<ExampleScript>()。
3.脚本位于同一路径或者被调用脚本位于主脚本的路径及以下(脚本是否被物体使用都可)。
将被调用脚本中的成员(变量或方法)使用static标识,然后可以通过”脚本.成员”的格式直接调用。例如:
ScriptA.CS
public static mm();
ScriptB.CS
ScriptA.mm();

[Unity2D]脚本的使用规则的更多相关文章

  1. [Unity2D]脚本基类MonoBehaviour介绍

    Unity中的脚本都是继承自MonoBehaviour. MonoBehaviour 表示一个单一的行为.Unity中用户对游戏对象的操作被分割成若干个单一行为.每个单一行为都作为一个MonoBeha ...

  2. PCB 规则引擎之脚本语言JavaScript应用评测

    世界上没有好做的软件,觉得好做,只是你的系统简单而已,而不是哪个行业简单,特别像我们PCB制造企业务逻辑的很复杂的,仅仅靠决策树中的每个节点布置决策逻辑是不能满足要求的,所以我们在制作PCB规则引擎必 ...

  3. shll脚本常用格式和规则使用

    shll脚本格式和规则 脚本文件必须已 .sh 结尾(yuan.sh) 脚本第一行必须是:#!/bin/bash 激活脚本的二种方式(sh yuan.sh)(给脚本X权限,以绝对路径执行脚本) 逻辑与 ...

  4. Nmap源码分析(脚本引擎)

    Nmap提供了强大的脚本引擎(NSE),以支持通过Lua编程来扩展Nmap的功能.目前脚本库已经包含300多个常用的Lua脚本,辅助完成Nmap的主机发现.端口扫描.服务侦测.操作系统侦测四个基本功能 ...

  5. [转] Linux下防火墙iptables用法规则详及其防火墙配置

    from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...

  6. Shell脚本编程的常识

    (这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d            目录                                       ...

  7. U3D——Unity3D的脚本-script入门

     Unity3D的基本操作非常easy就能掌握了,接下来就是游戏系统的核心部分:脚本. 什么是Script(脚本)?简而言之,就是使用代码来运行一系列动作命令的特殊文本,它须要编译器来从新解读.U ...

  8. shell脚本编程常识

    (这些往往是经常用到,但是各种网络上的材料都语焉不详的东西,个人认为比较有用) 七种文件类型 d            目录                                       ...

  9. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

随机推荐

  1. Linux rpm安装问题解决

    1.安装时提示:warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105b9de: NOKEY 解决的方法就是在rpm 语句后面加上 ...

  2. users

    NAME users - print the user names of users currently logged in to the current host SYNOPSIS users [O ...

  3. 【leetcode】Interleaving String

    Interleaving String Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. Fo ...

  4. 72 [面试题]如果不使用if-else和比较运算符,你知道如何求解2个数字中的较大一个吗?

    [本文链接] http://www.cnblogs.com/hellogiser/p/max-of-numbers-without-comparations.html [题目] 不使用if-else和 ...

  5. 铺地毯(luogu 1003)

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  6. kmv xml 文件配置vnc 端口冲突 会无法启动

    <graphics type=' autoport='no' listen='0.0.0.0'> 如果有多个虛机用相同vnc port的话,只能有一个可以启动,所以vnc port号是唯一 ...

  7. -- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

    [root@DB ~]# mysqldump -uroot -p123 --flush-logs --all-databases >fullbackup_sunday_11_PM.sql -- ...

  8. 【ASP.NET MVC】个人复习整理

    1.为 Action 标注 Attribute 限制访问 public class HomeController : Controller { [HttpPost] public ActionResu ...

  9. 菜鸟学Linux命令:grep配合ls等使用

    linux grep命令 (global search regular expression(RE) and print out the line )是一种强大的文本搜索工具,它能使用正则表达式搜索文 ...

  10. IntelliJ IDEA快捷键和常用设置

    一   快捷键的使用       1.文本编辑删除 ctr + y复制 ctr + D2.智能提示提示 ctr + space智能提示 ctr + shift + space完成当前语句 ctr + ...