Unity 常用方法总结(小技巧)
获取方向
//获取从A点到B点的方向向量
var direction = B.transform.position-A.transform.position;
direction.Normalize();//根据需求是否进行向量化
将物体朝向某方向
var direction = B.transform.position-A.transform.position;//获取方向
transform.rotation=Quaternion.Euler(Mathf.Atan(direction.y,direction.z)*Mathf.Rad2Deg));//根据方向计算偏移量进而旋转朝向某物体
鼠标隐藏并固定到中央
Cursor.visible = false;//控制隐藏
Cursor.lockState = CursorLockMode.Locked;//控制是否锁定鼠标
在Unity窗口绘画线条
void OnDrawGizmosSelected()//一定要在这个函数下才能实现画线
{
// Left/right and up/down axes.
Gizmos.color = Color.white;
Gizmos.DrawLine(transform.position - new Vector3(2.25f, 0, 0), transform.position + new Vector3(2.25f, 0, 0));
}
切换InputSystem时间模式
InputSystem.settings.updateMode = InputSettings.UpdateMode.ProcessEventsInDynamicUpdate;//无视物理时间
InputSystem.settings.updateMode = InputSettings.UpdateMode.ProcessEventsInFixedUpdate;//使用物理时间,受TimeScale影响
音效多条播放
audioSource.PlayOneShot(片段,音量);//防止播放器短时间播放多条音效导致上条音效未播放完就切换到下条
射线检测
Physics.Raycast(origin(V3), direction(V3), hitInfo(RaycastHit), distance(float), LayerMask(int));//初始点,方向,碰撞信息,距离(可省略不写),碰撞图层(默认全选)
2D人物卡墙
1.先新建一Physic material 2D,这里可能会遇到一个问题:官方提示Assets > Create > Physics Material 2D
2.把摩擦力改成0
3.将该材质赋值到游戏玩家上