unity脚本开发:一些重要的类和类间的关系图

Unity 常用类间的关系图


image.png

Unity 任何要绑定在 GameObject 上的脚本都必须继承自 MonoBehaviour. 许多常用的类都属于组件, 如 Transform,Camera,Light 和 Animation 等. 所有的 GameObject 上都绑定了一个 Transform 组件, 且该组件无法被删除.
MonoBehaviour 常用方法


image.png

Object 体系结构图
image.png

重要的类

Transfrom
Object
GameObject
Component
Time
Animation

一、Component 找组件

属性:

GameObject
tag
transfromg

函数:

GetComponment
GetComponmentInChildren
GetComponmentInParent
GetComponmenstInChildren
GetComponmentsInParent

二、Transfrom

对物体进行位置,大小,缩放的改变,找孩子

变量:

position:The position of the transfrom in world space.在世界空间坐标transform的位置。
localposition: The position of the transfrom relative to parent transfrom.相对于父级的变换的位置。
LossyScale:相对于模型的,物体的全局缩放(只读)。
LocalScale:相对于父级物体变换的缩放。

函数:

Translate:function Translate (translation : Vector3, relativeTo : Space = Space.Self) : void
移动transform在translation的方向和距离。

function Update() {
    // Move the object forward along its z axis 1 unit/second.
    //沿着z轴1单位/秒,向前移动物体
    transform.Translate(Vector3.forward * Time.deltaTime);

    // Move the object upward in world space 1 unit/second.
    //在世界坐标沿着y轴1单位/秒,向上移动物体
    transform.Translate(Vector3.up * Time.deltaTime, Space.World);
}

function Translate (x : float, y : float, z : float, relativeTo : Space = Space.Self) : void

function Update() {
    // Move the object forward along its z axis 1 unit/second.
    //沿着z轴每秒1单位向前移动物体
    transform.Translate(0, 0, Time.deltaTime);

    // Move the object upward in world space 1 unit/second.
    //在世界坐标每秒1单位向上移动物体
    transform.Translate(0, Time.deltaTime, 0, Space.World);
}

• function Translate (translation : Vector3, relativeTo : Transform) : void

function Update() {
    // Move the object to the right relative to the camera 1 unit/second.
    //相对于摄像机每秒1单位向右移动物体
    transform.Translate(Vector3.right * Time.deltaTime, Camera.main.transform);
}

function Translate (x : float, y : float, z : float, relativeTo : Transform) : void

function Update() {
    // Move the object to the right relative to the camera 1 unit/second.
    //相对于摄像机每秒1单位向右移动物体
    transform.Translate(Time.deltaTime, 0, 0, Camera.main.transform);
}

Roate:
RoateAround
LookAt:注视旋转
Find:通过名字找

function Update() {
    aFinger = transform.Find("LeftShoulder/Arm/Hand/Finger");
    aFinger.Rotate(Time.deltaTime*20, 0, 0);
}

GitChild:Git Child(int index)根据索引查找
DetachChildren :解除父子关系

transform.DetachChildren();
Destroy(gameObject);

SetParent:

三、GameObject

变量:

active 是否活动

//使游戏物体不活动.
gameObject.active = false;

isStatic 是否静态

函数:

AddComponent

gameObject.AddComponent ("FoobarScript");

GetComponent

curTransform = gameObject.GetComponent(Transform);

Find

//这将返回名为Hand 的游戏物体
hand = GameObject.Find("Hand");

FindWithTag

//在标签为"Respawn"的游戏物体的位置实例化一个respawnPrefab.
var respawnPrefab : GameObject;
var respawn = GameObject.FindWithTag ("Respawn");
Instantiate (respawnPrefab, respawn.transform.position, respawn.transform.rotation);

FindGameObjectsWithTag

var respawns = GameObject.FindGameObjectsWithTag ("Respawn");

SetActive

四、Object

变量:

函数:

FindObjectOfType查找首个Type物体

// Search for any object of Type GUITexture, 
// if found print its name, else print a message that says that it was not found. 
//搜索任意GUITexture类型的物体
 //如果发现打印它的名字,否则打印一条消息说没有发现 
function Start() 
{ 
    var s : GUITexture = FindObjectOfType(GUITexture);
    if(s) 
        Debug.Log("GUITexture object found: " + s.name);
    else 
        Debug.Log("No GUITexture object could be found");
 }

FindObjectsOfType查找Type物体

// When clicking on the object, it will disable all springs on all hinges in the scene.
//当点击物体,它将禁用场景中所有铰链中的弹簧
function OnMouseDown () {
var hinges : HingeJoint[] = FindObjectsOfType(HingeJoint) as HingeJoint[];
for (var hinge : HingeJoint in hinges) {
        hinge.useSpring = false;
    }
}

Destroy 销毁

// Kills the game object
//销毁游戏物体
Destroy (gameObject);

// Removes this script instance from the game object
//从游戏物体删除该脚本实例
Destroy (this);

// Removes the rigidbody from the game object
//从游戏物体删除刚体
Destroy (rigidbody);

// Kills the game object in 5 seconds after loading the object
//加载物体5秒后销毁游戏物体
Destroy (gameObject, 5);

Instantiate 实例

var clone : Missile;
clone = Instantiate(projectile, transform.position, transform.rotation);

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容