UnityAPI常用方法和类

API

开发环境准备,如何查看Unity的API文档

    Help-Scripting Reference API手册
    Help-Manual手册 教程式的手册

事件函数

    例如Start() Update();函数
    Start()游戏运行时执行一次
    Update()每帧执行

    事件函数的执行顺序
        Reset() 
        //编辑器模式下每次将脚本添加到游戏物体或者游戏物体Reset的时候
        Awake()
        //当脚本所在的物体被实例化时调用
        OnEnable()
        //位于Start()前
        Start()
        //游戏开始运行时调用
        FixedUpdate()
        //每秒调用次数固定,跟运动相关的代码可以放在这个方法中
        OnTriggerXXX()
        //触发器监测
        OnCollisionXXX()
        //碰撞器监测
        OnMouseXXX()
        //鼠标事件监测
        Update()
        LateUpdate()
        OnDrwaGizmos()
        //编辑器模式的辅助线就是Gizmos
        OnDisable()
        //调用后Update()LateUpdate()不掉用
        OnApplicationQuit()
        OnDestroy()

Time类中静态变量介绍

    .deltaTime 
    //当前帧所占用的时间,大概为1/60秒左右
    .fixedDeltaTime
    //固定的deltaTime
    .frameCount
    //游戏开始后经过了多少帧
    .timeScale
    //默认1,正常速度播放
    .realtimeSinceStartup
    //游戏开始经过的时间,不受.timeScale影响,可以做性能测试
    .smoothDeltaTime
    //平滑的deltatime
    .time
    //游戏运行的时间
    .unscaledTime
    //游戏开始经过的时间,不受.timeScale影响
    .timeSinceLevelLoad
    //当前场景加载完成后运行的时间,受到.timeScale影响

    性能测试

    两个方法个执行1万次,或者更多
    Update中用for循环执行
    再输出执行前和执行后的.realtimeSinceStartup


创建游戏物体的三种方法GameObject类

     new GameObject();
     //只带有一个Transform组件,可以指定参数类似于“Cube”等。一般情况在创建空游戏物体时使用

     .Instantiate()
     //传递一个Prefab或另一个游戏物体,和tranform

     .CreatePrimitive(PrimitiveType.Cube)
     //Primitive:原始的,创建原始的游戏物体



如何给游戏物体通过代码添加组件

    AddComponent<>();
    //可以添加组件或者自定义的脚本
    //任何一个游戏物体都有transform组件都有且只有一个
    //activeSelf和activeInHierarchy
    //禁用父物体时父物体和子物体的activeInhierarchy都为false,而子物体的activeSelf为true
    //.SetActive(fasle)禁用游戏物体


GameObject,Component,Obejct的联系

    //一个游戏由多个场景组成
    //一个场景有多个游戏物体组成
    //一个游戏物体由多个组件组成
    //组件包括 Transform Rigidbody Animation 自定义脚本等等
    //UnityEngine.Object所有的基类都继承自
    //GameObject和Component都继承自UnityEngine.Object
    //GameObject和Component都可以获取到一个继承自UnityEngine.Obejct的变量,比如name。Component的name返回的是其所在的游戏物体的name

UnityEngine下Object拥有的静态方法

    //Destroy
    //既可以销毁物体,也可以销毁组件
    //Destroyimmediate
    //立即销毁
    //DontDestroyOnLoad
    //加载时不销毁传入的游戏物体
    //FindObjectOfType
    //找到所有传入类名的组件,但不查找未激活的物体
    //Instantiate
    //实例化游戏物体,有多种重载方式

GameObject独有的变量、方法

    //activeInHierarchy
    //activeSelf
    //isStatic
    //layer
    //scene
    //tag
    //transform

    //Find
    //根据名字查找,较为耗费性能,每次调用会遍历游戏中所有物体
    //FindWithTag
    //返回符合条件的第一个
    //FindGameObjectsWithTag
    //返回所有符合条件的物体
    //CreatePrimitive

游戏物体间消息的发送和接受

    //CompareTag
    //比较标签是否一样
    //BroadcastMessage
    //调用当前物体以及其所有子物体上符合条件的方法可以传递参数DontRequireReceiver,没有接收者不报错
    //SendMessage
    //针对某一游戏物体的所有符合条件的方法
    //SendMessageUpwards
    //调用当前物体以及所有的父物体上符合条件的方法


得到组件的方法函数

    //GetComponent
    //查找当前游戏物体的组件
    //GetComponentinChildren
    //查找当前游戏物体和所有子物体的组件
    //GetComponentinParent
    //查找当前游戏物体和所有父物体的组件

MonoBehaviour的常用变量

    //print(静态方法)
    //enable
    //禁用启用组件
    //gameObject
    //获取到该组件所在的游戏物体
    //transform
    //获取该组件所在游戏物体的transform

    Invoke的使用
    //CancelInvoke
    //取消调用
    //Invoke
    //调用一个方法,可以传入一个时间参数,多少时间过后,执行
    //InvokeRepeating
    //重复调用
    //isInvoking
    //是否在调用返回bool

什么是协程

    //执行普通方法,等普通方法执行完,代码继续向下执行
    //协程方法,不会等方法执行完,而是同时向下执行,自身可以暂停
    //IEnumerator XXX()
    //...
    //yidld return; null/0
    //StartCoroutine(协程方法名());


使用Coroutine实现颜色动画渐变

    //协程暂停,yield return new WaitForSeconds();
    //颜色渐变
    //0到1的for循环(再加上WaitForSeconds(0.1F)写在协程方法中
    //或者Color.Lerp(当前颜色,目标颜色,时间间隔)通过差值改变颜色

Coroutine协程的开启和关闭

    //StopAllCoroutine
    //停止所有的协程方法
    //StopCoroutine
    //停止指定的协程方法,可以传递方法名,和协程方法的返回值
    //StartCoroutine
    //开始某个协程方法,通过方法名开启,只能传递一个参数

鼠标相关事件函数

    //OnMouseDown
    //OnMouseDrag
    //鼠标拖拽
    //OnMouseUp
    //鼠标抬起
    //OnMouseUpAsButton
    //按下和抬起在同一个物体上时才触发,常见于按钮的设置
    //OnMouseEnter
    //OnMouseOver
    //鼠标在物体上,每帧执行
    //OnMouseExit

Mathf里面的静态变量

    //PI
    //圆周率
    //Deg2Rad
    //角度制变为弧度制
    //Rad2Deg
    //与前一个相反
    //Epsilon
    //非常小的小数 anyvalue + Epsilon = anyvalue除了0
    //Infinity
    //无限大

Mathf中方法

    //Abs
    //取绝对值
    //Ceil
    //向上取整
    //CeilToInt
    //向上取整返回int
    //Clamp(float value, float min,float max)
    //小于min返回min大于max返回max在min,max之间返回value
    //DeltaAngle
    //两个角度相距的角度
    //Floor
    //向下取整 
    //Lerp
    //插值运算
    //Max
    //取大
    //Min
    //取小
    //Sqrt
    //开方
    //ClosetPowerOfTwo
    //取最近的2的次方数
    //Pow(f,p)
    //f的p次方

        Lerp(float a, float b, float t)
        //t是一个0到1的数//当前值和目标值间距的比例
        //t小于0输出t=0时的值
        //t大于1时输出t=1时的值
        LerpAngle
        //角度插值运算

        Move Towards匀速直线运动
        //MoveTowards(当前值,目标值,间距)

        PingPong
        //PingPong(float t,float length)
        //length代表最大值,最小值是0,不能设置
        //t在最小值和最大值之间来回变化
        //一边t传一个时间

Input类输入类

    //GetKey
    //按住键盘按键
    //GetKeyDown
    //按下键盘按键
    //GetKeyUp
    //抬起键盘按键
    //GetMouseButton
    //0左键,1右键,2中间,这三个int可以传入
    //GetMouseButtonDown
    //GetMouseButtonUp

    //GetButton
    //GetButtonDown
    //GetButtonUp

    //虚拟的按键,传入虚拟按键的名字,一个虚拟按键可以赋值多个真实的按键

    //GetAxis
    //得到轴的值的变化来控制移动
    //返回值是float类型,按下慢慢增大,抬起慢慢减少
    //GetAxisRaw
    //没有渐变效果

屏幕坐标系,鼠标的坐标

    mousePosition
    //鼠标在屏幕上的坐标

Vector2

    //是一个结构体,是值类型,要整体赋值。而不是类
    //
    //down
    //left
    //one
    /right
    //up
    //zero
    //Normalized
    //把自身单位化
    //Angle
    //取得两个向量的夹角
    //ClampMagnitude(Vector2 vector,float maxLength)
    //把一个向量限定在maxLength之内
    //Distance
    //两个点的距离
    //Lerp
    //LerpUnClamp
    //MoveTowards
    //Reflect


Vector3

    //Project
    //做一个向量在另一个向量上的投影
    //Reflect
    //传入入射方向和法线
    //Slerp(float a ,float b,float t)
    //方向插值Lerp是当作点来插值

Random生成随机数

     //InitState(int seed)
     //传入的种子一样的化 ,随机数的序列都是一样的

其他方法生成随机数

    //ColorHSV
    //随机生成颜色
    //value
    //随机生成要给0,1之间的小数包括0,1
    //.state获得InitState的状况
    //rotation
    //表示旋转
    //insideUnitCircle
    //在一个圆内的随机生成坐标

四元数,欧拉角

    //Quaternion
    //eulerAngeles
    //一个Vector3(欧拉角),也可以将四元数转化为欧拉角
    //rotation是一个四元数
    //.Euler
    //欧拉角转化为四元数
    //.LookRotation(vector3 forward,vector up)
    //返回一个四元数,方向为传入向量的方向
    //Lerp faster than Slerp
    //Slerp  look worse if the rotations are far apart
    //传入当前四元数和目标四元数和间隔


Rigidbody

    //position
    //比用Transform.position快
    //MovePosition
    //rotation
    //比用Transform.rotation快
    //MoveRotation
    //AddForce
    //速度慢慢增加

Camera类

    //快速获取Camera的方法
    //camera = Camera.main
    //.ScreenPointToRay
    //将屏幕上的点转化为射线
    //Physics.Raycast(ray,out hit);
    //hit为碰撞到的物体
    //射线的起点在屏幕上,不是从摄像机上发出

通过Application获取datapath

    //不同的平台上返回的datapath不一样
    //StreamingAssets
    //此文件内的不大包
    //persistenDataPath
    //temporaryCachePath
    //临时目录

Application中其他常用的静态变量,静态方法

    //companyName
    //InstallMode
    //何种模式下运行
    //isEdtor
    //是否在编辑器模式下运行
    //isPlaying
    //isFocus
    //platform
    //当前运行环境
    //runInBackground
    //Quit

人如何切换加载场景

    //SceneManger
    //.LoadScene
    //Single销毁当前场景,Additive不销毁当前场景
    //LoadSceneAsync
    //异步加载,返回AsyncOperation
    //SecneManager.LoadScene(SceneManager.GetActiveScene().name重新加载本关卡
    OnLevelWasLoaded(int scenelevel){
    level++
    }
    //sceneCount
    //当前加载场景总数
    //CreatScene
    //创建场景
    //GetActiveScene
    //获取当前场景
    //GetSceneByBuildIndex
    //根据index获取场景
    //SetActiveScene
    //activeSceneChanged
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值