热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Unity游戏常用API

1、Vector3属性方法详解normalized返回一个规范化向量magnitude返回向量的模sqrMagnitude返回向量的模的平方zero静态属性,返回Vector3(0

1、Vector3









































































属性方法详解
normalized返回一个规范化向量
magnitude返回向量的模
sqrMagnitude返回向量的模的平方
zero静态属性,返回Vector3(0,0,0)
one静态属性,返回Vector3(1,1,1)
forward静态属性,返回Vector3(0,0,1)
back静态属性,返回Vector3(0,0,-1)
left静态属性,返回Vector3(-1,0,0)
right静态属性,返回Vector3(1,0,0)
up静态属性,返回Vector3(0,1,0)
down静态属性,返回Vector3(0,-1,0)
Angle静态方法,返回两个向量的夹角
Distance静态方法,返回两个点间的距离
Lerp静态方法,插值运算
Dot静态方法,两个向量点乘
Cross静态方法,两个向量叉乘

Unity的Lerp插值运算

float result = Mathf.Lerp(float a, float b, float time)

Vector3 res = Vector3.Lerp(Vector3 startPos, Vector3 endPos, float time)

以上两种方法均为插值运算,第一个是一维插值,第二个是三维插值,其方法含义以第一个方法为例,代表的意义是:

result = a + (b-a) * time, 其中time值在【0,1】范围内起作用,

当time=0时,result = a, 当time=1时,result=b, 当time>1时,result=b

可以利用插值运算来实现各种平滑效果,比如相机的平滑移动,物体的匀速运动


相机的平滑移动:

相机由当前位置移动到targetTrans位置,smooth可调节移动的速度

void Update(){
//smooth为平滑度
cameraTrans.position = Vector3.Lerp(cameraTrans.position, targetTrans.position, smooth);
}

物体的匀速运动

物体由startPos位置移动到endPos位置,匀速移动,花了duration时间

public Vector startPos;
public Vector endPos;
public float duration;
public float time;

void Update(){
time += Time.deltaTime;
transform.position = Vector3.Lerp(startPos, endPos, time/duration)
}

2、Quaternion

3、Debug

4、GameObject

5、Time

6、Mathf

7、Application

8、Scene

9、Transform

推荐阅读
author-avatar
Hello_DavidLeete_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有