一、 如何查看unity文档和API手册?
如果没有显示Manual手册和API文档,证明没有安装,点击About unity查看自己软件的版本,然后进行 安装补丁
安装方法:
打开unity网站——unity旧版本——选中自己相应的版本下载,安装——安装过程中勾选自己要安装的文档——在unity中即可打开
Manual手册:来介绍unity的各个功能
API:介绍每个类,每个方法的介绍
二、 Unity中的事件方法
-
先新建一个脚本来解释start和update方法
Start:开始的时候开始运行一次
Update:每帧运行一次 -
其他方法:打开Manual手册如下图所示,下图显示了各个事件方法以及事件方法的使用
-
在使用事件方法过程中,注意方法的大小写,事件方法首字母必须大写。
4.Reset:当被附加或reset的时候被调用
5.OnEnable:选择物体时执行
OnDisable:取消选择物体时执行
6.FixedUpdate:一秒调用60次
Update:每帧调用一次,先
LateUpate:同样每帧调用一次,但是是在Update之后调用
7.OnTrigger、OnCollision调用碰撞器
8.yield WaitForFixedUpdate是在FixedUpdate之后有一个等待
9.OnMouse:与鼠标有关的一种方法
10.OnDisable:物体的消失
三、Time类
1.
CaptureFramerate:帧的速率,实现屏幕截图
Deltatime:当前帧所占用的时间
Fixeddeltatime:固定的间隔时间
Fixedtime:游戏开始到现在所占用的时间
realtimeSinceStartup:游戏开始运行用了多长时间
Framecount:游戏开始到现在共执行多少帧
Time scale:游戏实现加速播放
2.deltatime——每帧所占用时间
控制物体移动,一秒移动一米
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class A02 : MonoBehaviour {
public Transform cube;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
cube.Translate(Vector3.forward * Time.deltaTime);
}
}
Time.timeScale一般来实现暂停游戏以及回放
3. realtimeSinceStartup——游戏开始运行用了多长时间
计算加法与乘法占用时间(性能测试)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class A02 : MonoBehaviour {
public Transform cube;
public int runCount;
// Use this for initialization
void Start () {
float time1 = Time.realtimeSinceStartup;
for (int i = 0; i < runCount; i++){
Method1();
}
float time2 = Time.realtimeSinceStartup;
Debug.Log (time2 - time1);
float time3 = Time.realtimeSinceStartup;
for (int i = 0; i < runCount; i++)
{
Method2();
}
float time4 = Time.realtimeSinceStartup;
Debug.Log(time4 - time3);
}
// Update is called once per frame
void Update () {
cube.Translate(Vector3.forward * Time.deltaTime);
}
void Method1()
{
int i = 1 + 2;
}
void Method2()
{
int i = 1 * 2;
}
}
可得:乘法时间比加法时间长
四、创建游戏物体的三种方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class A03 : MonoBehaviour {
public GameObject prefab;
// Use this for initialization
void Start () {
//第一种
//new GameObject("cube");
//第二种
//根据prefab/根据另外一个物体
//GameObject.Instantiate(prefab);//根据prefab或者另一个物体克隆
//第三种
GameObject.CreatePrimitive(PrimitiveType.Plane);//直接为一个实物
}
// Update is called once per frame
void Update () {
}
}
五、通过代码添加组件或脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class A03 : MonoBehaviour {
public GameObject prefab;
// Use this for initialization
void Start () {
GameObject go=GameObject.CreatePrimitive(PrimitiveType.Plane);
go.AddComponent<Rigidbody>();
go.AddComponent<A02>();
}
// Update is called once per frame
void Update () {
}
}
六、如何启用或禁用一个游戏物体
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class A03 : MonoBehaviour {
public GameObject prefab;
// Use this for initialization
void Start () {
GameObject go=GameObject.CreatePrimitive(PrimitiveType.Plane);
go.AddComponent<Rigidbody>();
//go.AddComponent<A02>();
Debug.Log(go.activeInHierarchy);
go.SetActive(false);
Debug.Log(go.activeInHierarchy);
Debug.Log(go.tag);
}
// Update is called once per frame
void Update () {
}
}
``
七、GameObject、Component和Object
Object:
FindObjectOfType:查找物体的某个组件
x.enabled=false;关掉此组件
FindObjectsOfType:查找所有物体的某个组件
GameObject:
SetActive:禁用物体
SendMessageOptions.DontRequirereceiver:不需要返回值中有Attack
BroadcastMessage:本与子,子可多
SendMessageUpwards:父与本,父唯一,但可以有父的父级
Component:
- MonoBehaviour
isActiveEnabled:判断某个组件是否激活
ExecuteInEditMode:可以使类在没有运行的情况下运行
Enable:禁用/激活组件(true/false)
Tag:获得标签
Transform:获得transform组件
当一个物体上有两个相同组件,可把当前Inspector面板锁定,重新打开一个,选择组件
Invoke:调用某种方法,可设置时间(推迟)
CancellInvoke:取消当前脚本所有的调用,无参
InvokeRepeating:重复调用(attack,几秒后开始,中间间隔几秒)
IsInvoking:判断是否正在调用
来源:CSDN
作者:qq_45303115
链接:https://blog.csdn.net/qq_45303115/article/details/104563812