sendmessage其实就是调用某个gameobject里script组件里的某个方法,message就是方法名
sendmessage其实就是调用某个gameobject里script组件里的某个方法,message就是方法名
if( Input.anyKeyDown){
print("any key down");
}
print(Input.mousePosition);
左下角为原点。
Input.GetButtonDown("Horizontal")
按下AD键,触发是有用的,前提是输入法为英文输入法状态
cube.Translate(Vecctor3.right * Time.deltaTime * Input.GetAxis("Horizontal"));
Input.GetMouseButton(0) 鼠标左击
Input.GetMouseButton(1) 鼠标右击
Input.GetMouseButton(2) 鼠标中间按下
GetMouseButtonDown()
GetMouseButtonU
Input.GetKeyDown()
Input.GetKeyUp()
Input.GetKey()
ime
PingPong
cube.position = new Vector3(Mathf.PingPong(Time.time*speed,10),0,0);
5+Mathf.PingPong(Time.time*speed,5)
5-10之间
MoveToWards 做匀速运动
void Update(){
float x = cube.position.x;
float newX = Mathf.MoveTowards(x,10,0.1f);
cube.position = new Vector3(newX,0,0);
}
0.1f
Lerp 插值运算 (做动画效果)
先快后慢
void Update(){
float x = cube.position.x;
float newX = Mathf.Lerp(x,10,0.1f);
cube.position = new Vector3(newX,0,0);
}
0.1f 替换成Time.deltaTime
ClosePowerOfTwo 离2的次方最近的数
Floor 向下取整
FloorToInt 向下取整
Max 取得最大值
Min 取得最小值
Pow(f,p)取得 f 的 p 次方
Sqrt 取得参数的平方根
Abs 取绝对值
Ceil 向上取整,返回值为float类型
CeilToInt 向上取整,返回值为Int类型
Clamp 把一个值限定在一个范围之内,把一个值夹紧
Clamp01 把一个值限定在0-1
void TakeDamage(){
hp-=9;
hp = Mathf.Clamp(hp, 0, 100);
}
Mathf
Deg2Rad 0.01745329
Rad2Deg 57.29578
Infinity Infinity
NegativeInfinity -Infinity
PI 3.141593
Epsilon 1.401298E-45
void OnMouseDown(){}
void OnMouseUp(){}
void OnMouseDrag(){}
void OnMouseEnter(){}
void OnMouseExit(){}
void OnMouseOver(){}
void OnMouseUpAsButton(){}
if是Trigger:
①Trigger
②Edit---Project Settings---Physics:Queries Hit Triggers 打勾
BroadacatMessage
GameObject.CreatePrimitive(PrimtiveType.Plane);
Unity版本变化对于场景的影响:
Application.LoadLevel("Level2");
//加载场景的方法变更为
SceneManeger.LoadScene("Scene2");
需要在开始处声明
using UnityEngine.SceneManagement;
Unity版本上的一些变化:
1.物体的组件不能直接访问了,需要用GetComponent<>来进行访问
(从节约性能的角度考虑,寻找组件是耗费性能的,不要把GetComponent放在Update方法里,可以现在外面声明了变量,在从Start方法里获取)
颜色渐变的效果
Material材质:
mat = GetComponent<MeshRenderer>().material;
从MeshRenderer组件身上获取材质
颜色渐变API:Lerp
(当前颜色,渐变颜色,变化速度)
Mesh的设置
API使用Mesh的话会把原来的Mesh复制一份新的再赋值过去,而使用SharedMesh则会直接把原来的Mesh赋值过去
角色控制器
CharacterController
可用API:
SimpleMove(简单的控制角色的移动,只需要传递一个向量即可)
isGrounded(输出是否在地面上的一个变量)
Move(类似于SimpleMove,会根据向量长度来移动)