Untiy3D toolkit2d使用技巧


 Unity函数:

function Start(){ }  

function Update() { }

function OnGUI() { GUI.xxx }

如果在Update()函数里创建UI,会有如下报错: You can only call GUI functions form inside OnGUI。

 

隐藏鼠标指针 : Screen.showCursor = false;

 

局部变量不用声明可直接定义。

 

删除自己 Destroy(gameObject);

 

prefab物件的创建 Instantiate(obj,position,rotaion);

射线检测

1.射线:类型为 Ray,需要填充的两个属性为,起点(origin)方向(direction)。

2.检测(cast 投射):类型为 RaycastHit。作为一个输出变量,执行函数后,函数会将值写入此变量。

3.判定函数 Physics.Raycast( ray : Ray, out hitInfo : RaycastHit ); 返回值为boolean。

随后可以获取RaycastHit类型变量的成员,获取碰撞信息。

 

拾取

function Update ()

{

    if (Input.GetMouseButton (0))

    {

        var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

        var hit : RaycastHit;

        if (Physics.Raycast (ray, hit))

        { Debug.DrawLine (ray.origin, hit.point); print(hit.collider.gameObject.name+hit.point); }

    }

}

 

加载外部文件

var bbb : GameObject;

function Start ()

{

    var www = new WWW ("file://D://pic1.jpg"这里也可以是网络图片地址);

    yield www;

    bbb.renderer.material.SetTexture("_MainTex", www.texture);

}

外部资源

var aaa : Material;//空材质

var bbb : GameObject;//要绑定材质的模型

function Start()

{

    aaa.mainTexture = Resources.Load("你的资源名,例如“pic1”不需要文件扩展名");

    bbb.renderer.material = aaa;

}

 

随机数 Random.Reange(min,max); 返回值为min、max之间的随机数。

 

读取场景

首先需要把需要响应的scene在 BuildSetting 里进行添加,每个scene后面会产生一个整形ID。 Application.LoadLevel(id);

 

物件自身在当前脚本里的对象名是 gameObject

 

trigger响应。trigger物件必须是unity的GameObject------Create Other 里选取的系统提供的物件,在Inspector面板里将物件的Box Coliider 下拉列表的IsTrigger选项勾选。在Tag选项里的Element后添加一个名字。其他物件通过此函数判断是否在trigger内。另:一定要记住,和trigger发生碰撞的物件,必须是 Rigibody。 

function OnTriggerEnter(xxx:Collider)

{

    if(xxx.gameObject.name == "TagName"){ wtf…………. }

}

 

调用其他脚本内容

脚本文件名.成员名;       被其它脚本调用的成员,必须声明为 static,包括数据成员和成员函数。

你可能感兴趣的:(脚本)