29646人加入学习
(126人评价)
Unity API常用方法和类详细讲解(基于Unity5.6)
价格 免费
承诺服务
UnityEngine下Object拥有的静态方法
 
//Destroy
//既可以销毁物体,也可以销毁组件
//Destroyimmediate
//立即销毁
//DontDestroyOnLoad
//加载时不销毁传入的游戏物体
//FindObjectOfType
//找到所有传入类名的组件,但不查找未激活的物体
//Instantiate
//实例化游戏物体,有多种重载方式
 
[展开全文]
MonCheri · 2017-08-23 · 该任务已被删除 0
GameObject,Component,Obejct的联系
 
//一个游戏由多个场景组成
//一个场景有多个游戏物体组成
//一个游戏物体由多个组件组成
//组件包括 Transform Rigidbody Animation 自定义脚本等等
//UnityEngine.Object所有的基类都继承自
//GameObject和Component都继承自UnityEngine.Object
//GameObject和Component都可以获取到一个继承自UnityEngine.Obejct的变量,比如name。Component的name返回的是其所在的游戏物体的name
[展开全文]
MonCheri · 2017-08-23 · 该任务已被删除 0
 
如何给游戏物体通过代码添加组件
 
AddComponent<>();
//可以添加组件或者自定义的脚本
//任何一个游戏物体都有transform组件都有且只有一个
//activeSelf和activeInHierarchy
//禁用父物体时父物体和子物体的activeInhierarchy都为false,而子物体的activeSelf为true
//.SetActive()禁用游戏物体
[展开全文]
MonCheri · 2017-08-23 · 该任务已被删除 0

加载场景SceneManager,在使用这个类之前,要田间using

using UnityEngine.SceneManagement

来使用

也可以用Application.loadlevel来加载,也可以来用名字

[展开全文]
TaoXT · 2017-08-23 · 该任务已被删除 0
创建游戏物体的三种方法GameObject类
 
new GameObject();
//只带有一个Transform组件,可以指定参数类似于“Cube”等。一般情况在创建空游戏物体时使用
 
.Instantiate()
//传递一个Prefab或另一个游戏物体,和tranform
 
.CreatePrimitive(PrimitiveType.Cube)
//Primitive:原始的,创建原始的游戏物体
[展开全文]
MonCheri · 2017-08-23 · 该任务已被删除 0

要在编译器模式下退出游戏,可以用unityEditor.EditorApplication.ispalying=false;

[展开全文]
TaoXT · 2017-08-23 · 该任务已被删除 0
性能测试
 
两个方法个执行1万次,或者更多
Update中用for循环执行
再输出执行前和执行后的.realtimeSinceStartup
[展开全文]
MonCheri · 2017-08-23 · 该任务已被删除 0

值得注意的是如果在PC上使用时需要在每个文件夹前加入斜杠 

[展开全文]
TaoXT · 2017-08-23 · 该任务已被删除 0
Time类中静态变量介绍
 
.deltaTime 
//当前帧所占用的时间,大概为1/60秒左右
.fixedDeltaTime
//固定的deltaTime
.frameCount
//游戏开始后经过了多少帧
.timeScale
//默认1,正常速度播放
.realtimeSinceStartup
//游戏开始经过的时间,不受.timeScale影响
.smoothDeltaTime
//平滑的deltatime
.time
//游戏运行的时间
.unscaledTime
//游戏开始经过的时间,不受.timeScale影响
.timeSinceLevelLoad
//当前场景加载完成后运行的时间,受到.timeScale影响
[展开全文]
MonCheri · 2017-08-23 · 该任务已被删除 0

ray ,raycasthit, physics,raycast,out

利用debug.drawRay来画出射线,参数起始位置,颜色

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

AddFroce添加力,模拟跟物理有关的物理性质

[展开全文]
TaoXT · 2017-08-23 · 该任务已被删除 0

利用rigidbody,moverotation来进行旋转

[展开全文]
TaoXT · 2017-08-23 · 该任务已被删除 0
 Vector3 relativePos = target.position - transform.position;

        Quaternion rotation = Quaternion.LookRotation(relativePos);

        transform.rotation = rotation;

[展开全文]
TaoXT · 2017-08-22 · 该任务已被删除 0

欧拉角永远与rotation对应

[展开全文]
TaoXT · 2017-08-22 · 该任务已被删除 0

Random.insideUnitCircle 单位圆内

在xy平面

Random.insideUnitSphere 单位球内

在xyz平面内随机生成
[展开全文]
TaoXT · 2017-08-22 · 该任务已被删除 0

system.datetime.now.ticks获取时间,在随机数里面,随机数序列的生成是不同的

[展开全文]
TaoXT · 2017-08-22 · 该任务已被删除 0

利用rigidbody比tansform要好一点

[展开全文]
TaoXT · 2017-08-22 · 该任务已被删除 0

movetowards可以做匀速运动

lerp做先快后慢的运动

[展开全文]
TaoXT · 2017-08-19 · 该任务已被删除 0

 

Vector2.Distance(a,b)于(a-b).magnitude是相同的

Vector2 ClampMagnitude(Vector2 vector, float maxLength。 

返回向量的长度,最大不超过maxLength所指示的长度。 

[展开全文]
TaoXT · 2017-08-19 · 该任务已被删除 0