Mono Develop脚本编辑器介绍
来源:互联网 发布:adobe ps mac 破解版 编辑:程序博客网 时间:2024/06/12 21:27
Mono Develop脚本编辑器介绍
(Unity 自带脚本编辑器)
1、Unity3d目前支持三种语言的脚本程序,包括c#,JavaScript,boo;其中使用最多为c#。
2、注意:
(1)项目运行过程中的修改不会保存
(2)脚本只能依附于游戏对象或由其他脚本调用才能运行
(3)一个脚本可以放在多个游戏对象上面,是多个实例
(4)一个脚本的多个实例和其他脚本之间互不干扰
3、初始化不要放在构造函数中,而是放在start()方法中。
4、放到游戏对象中的脚本(实例化)可以在Inspector中修改属性,get/set写法属性不被识别,直接public字段就能当属性用,不写修饰符就是私有private
创建、克隆、销毁游戏对象
程序(动态)创建游戏对象
eg:
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.name = "cube1";//设定名字
cube.renderer.material.color = Color.red;
程序(动态)克隆对象
eg:
GameObject obj = (GameObject)Instantiate(cube);
程序(动态)销毁对象
eg:
Destroy(obj,1);
特点:
1、动态创建出来的对象运行时在Hierarchy中可以看到。
2、克隆游戏对象产生复制对象的效率高,调用instantiate来生成对象,Destroy(obj)是立即销毁游戏对象。
3、动态添加脚本的方法:只要把脚本名称传给AddComponen即可
给游戏对象添加名称、刚体、碰撞器
1、给游戏物体添加名为FoobarScript的脚本
GameObject.AddComponent ("FoobarScript");
2、给游戏物体添加刚体
Rigidbody rb = GameObject.AddComponent ("Rigidbody");
3、给游戏物体添加球体碰撞器
SphereCollider sc = GameObject.AddComponent ("SphereCollider");
常用核心类
GameObject类
GameObject是Unity中一个很重要的角色。对GameObject学习能够让我们更好的进行Unity开发,今天我们就来学习一下GameObject这个概念——
在我们的Unity游戏中每一个对象都是一个GameObject,但是没有我们的指示,这些GameObject对象不会自己做任何事情。GameObject就像一个可以由我们自己定义的容器,我们让它包含什么样的属性,它就是一种什么样的GameObject——一个角色或者一个特效等等。
好的,这里就有一个问题了,既然游戏中的每个对象都是一个GameObject,我们又是如何来区分它们呢?
前面我们已经说过,GameObject就是一个容器。在这个空箱子中放不同的东西(属性),就组成了不同的对象类型。也就是说,游戏中需要什么的元素,我们都可以通过向GameObject中添加组件(Component)的方式来实现,当然,我们还可以通过脚本(Script)来创建自定义的组件。
本类包括了游戏对象所需要的属性和方法。
例如 :
属性:transform、renderer、 isStatic 等。
方法:Find()、FindWithTag()、FindGameObejctWithTag()、GetComponent()、AddComponent()方法等。
获取游戏对象:
1)通过名称来查找游戏对象:
GameObject player = new GameObject("Player");
GameObject go=GameObject.Find(“Player”);
2)通过tag标签获取单个游戏对象:
GameObject go=GameObject.FindWithTag(“Player”);
GameObject go=GameObject..FindGameObjectWithTag (“Player”);
3)通过游戏标签获取多组游戏对象:
GameObject[] go=GameObject.FindGameObjectsWithTag (“Player”);
//这个操作比较耗时,把此操作放到Start()
Time类
属性: deltaTime
说明:
方法Update(): 受当前渲染效率的影响,有时快有时慢,帧率会变化,Update被调用的时间间隔就发生变化,Time. deltaTime获得自上次Update一来经历的时间,只应该在Update()中使用deltaTime ,OnGUI、FiexedUpdate等里面不要用。
示例:
using UnityEngine;
using System.Collections;
public class Time1 : MonoBehaviour {
float a=5.0f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (a>=0) {
a -= Time.deltaTime;
print(a);
}
}
}
Yield
Yield语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。
可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行。
示例:
void Start () {
print("Start开始");
StartCoroutine(Do());
print("Do调用后");
}
IEnumerator Do()
{
print("Do开始");
yield return new WaitForSeconds(3.0f);
print("暂停3秒后");
}
消息传递函数:
Message相关有3条指令:
SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的Script
BroadcastMessage ("函数名",参数,SendMessageOptions) //自身和子Object的Script
SendMessageUpwards ("函数名",参数,SendMessageOptions) //自身和父Object的Script
用于向某个GameObject发送一条信息,让它完成特定功能。
其实本质是调用那个GameObject里面的Script里面的函数,可以跨语言的,例如Javascript可以调用C#的函数,我已实验成功。
另外,如果GameObject本身有两个脚本,例如“move1”和“move2”,两个脚本内有同名函数例如“moveMe()”,会两个函数都执行一次。
更多精彩请点击 http://www.gopedu.com/article
- Mono Develop脚本编辑器介绍
- Unity3D【Mono Develop脚本编辑器介绍】
- unity3D—Mono Develop脚本编辑器
- unity3D学习之Mono Develop脚本编辑器和常用核心类
- 使用 Mono Develop 调试 U3D 脚本
- mono develop-unity 编译脚本失败
- unity3d--脚本编辑器介绍
- Mono介绍
- Mono介绍
- mono无法编辑脚本
- Unity Mono脚本 加密
- unity使用mono编辑器调试
- SSH框架介绍(JavaWeb Develop)
- #develop
- Feekood开发环境介绍(4)-- 脚本编辑器
- Unity3D与Mono编辑器的调试
- 脚本编辑器
- unity 脚本 function 生命周期 MonoBehaviour Mono行为
- c++组合设计模式
- 顺序栈 链栈
- 设计模式7——桥接模式
- 有个函数:char* reverse(char *buf)
- Java中hashCode()的使用
- Mono Develop脚本编辑器介绍
- 杭电2818
- 当自定义leftBarButtonItem(s)左边缘滑动失效时
- 【剑指Offer面试编程题】题目1387:斐波那契数列--九度OJ
- java传值与传引用的三种情况
- 自定义的AsyncTaskLoader类使用指南
- java中synchronized的用法详解
- C++ 根据操作系统版本调用不同的动态链接库
- 怎么判断两个工程师谁的代码能力强?【改编】