Unity_常用的一些方法记录 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

Unity_常用的一些方法记录

发表时间:2020-10-18

发布人:葵宇科技

浏览次数:54

Unity_常用的一些方法记录

    • 1.通过物体名字查找游戏物体
    • 2.查找对象中的组件
    • 3.调用其他对象下组件中的方法
    • 4.打印数据
    • 5.获得/设置物体的locaiton、rotation、scale
    • 6.两点间的距离
    • 7.unity与web间(webgl/webplayer)的传输:传出、传入
    • 8.lerp插值运算
    • 9.修改物体的材质
    • 10.将变量暴露给编辑器,方便在编辑器中手动修改

1.通过物体名字查找游戏物体

GameObject.Find(“Cube”);//查找名为Cube的游戏物体

GameObject.Find(“GameObject/Canvas/Text”);//可以指定路径位置

2.查找对象中的组件

GameObject.GetComponent<组件名称>();

3.调用其他对象下组件中的方法

GameObject.Find(“脚本所在的物体的名字”).SendMessage(“函数名”); //能调用public和private类型函数
GameObject.Find(“脚本所在的物体的名字”).GetComponent<脚本名>().函数名(); //只能调用public类型函数

4.打印数据

Debug.Log(“打印内容”);

5.获得/设置物体的locaiton、rotation、scale

  • 位置:

Vector3 player_postion = this.transform.position;// 获取Player变量指定的对象的(X,Y,Z)

// 获取X,Y,Z值

float x = player_postion.x;

float y = player_postion.y;

float z = player_postion.z;

//设置位置

// 1.直接赋值

this.transform.position = player_postion;

// 2.在某GameObject的基础上加

this.transform.position = new Vector3(player_postion.x, player_postion.y + 7.79F, player_postion.z - 15);

//或者是

this.transform.position = player_postion + new Vector3(0, 7.79F, -15);

  • 旋转:

this.transform.eulerAngles //获得旋转

this.transform.localEulerAngles=new Vector3(float Pitch,float Yaw,float Roll); //设置绝对旋转

  • 缩放:

this.transform.localScale //获得缩放

this.transform.localScale = new Vector3(x, y,z);//修改缩放

6.两点间的距离

Vector3.Distance(a,b) //a和b是两个点的坐标position值

7.unity与web间(webgl/webplayer)的传输:传出、传入

  • 传出:

在unity中写如下调用语句:
Application.ExternalCall( “SayHello”, “The game says hello!” );

在html中定义函数如下
function SayHello(args){
alert(args);
}

  • 传入:

在unity中定义函数如下,并将带有FunctionName函数的脚本绑定到Main Camera中

HTML中写:
SendMessage(“Main Camera”, “FunctionName”, 参数);//向unity中的Main Camera对象下的FunctionName函数传入参数
SendMessage方法只能传递一个参数,不然会报错,所以通常传递多个参数的时候,将数据组成json数据,以string的形式传入

8.lerp插值运算

从A点过渡到B点

Transform.position = Vector3.Lerp(A点坐标, B点坐标, alpha);//alpha过渡值:0时取A,1时取B,将alpha从0过渡到1即可

9.修改物体的材质

this.GetComponent().material = 新材质;

10.将变量暴露给编辑器,方便在编辑器中手动修改

C#中将变量设置为公开:
public flaot f;

public Vector3 position;

相关案例查看更多