unity API常用方法1

冷暖自知 提交于 2020-02-28 21:48:31

一、 如何查看unity文档和API手册?

在这里插入图片描述
如果没有显示Manual手册和API文档,证明没有安装,点击About unity查看自己软件的版本,然后进行 安装补丁
安装方法:
打开unity网站——unity旧版本——选中自己相应的版本下载,安装——安装过程中勾选自己要安装的文档——在unity中即可打开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Manual手册:来介绍unity的各个功能
API:介绍每个类,每个方法的介绍

二、 Unity中的事件方法

  1. 先新建一个脚本来解释start和update方法
    Start:开始的时候开始运行一次
    Update:每帧运行一次
    在这里插入图片描述

  2. 其他方法:打开Manual手册如下图所示,下图显示了各个事件方法以及事件方法的使用
    在这里插入图片描述
    在这里插入图片描述

  3. 在使用事件方法过程中,注意方法的大小写,事件方法首字母必须大写。
    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:

  1. MonoBehaviour
    isActiveEnabled:判断某个组件是否激活
    ExecuteInEditMode:可以使类在没有运行的情况下运行
    Enable:禁用/激活组件(true/false)
    Tag:获得标签
    Transform:获得transform组件
    在这里插入图片描述
    在这里插入图片描述
    当一个物体上有两个相同组件,可把当前Inspector面板锁定,重新打开一个,选择组件
    Invoke:调用某种方法,可设置时间(推迟)
    CancellInvoke:取消当前脚本所有的调用,无参
    InvokeRepeating:重复调用(attack,几秒后开始,中间间隔几秒)
    IsInvoking:判断是否正在调用
    在这里插入图片描述
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!