29606人加入学习
(126人评价)
Unity API常用方法和类详细讲解(基于Unity5.6)
价格 免费
承诺服务

InvokeRepeating(方法,xmiao开始调用)

[展开全文]

MonoBehaviour中Invoke的使用

Invoke:调用时Invoke中的方法不会立即被调用,会添加到队列里面等待

IsInvoking:判断某个方法是否正在被调用,在队列中存在显示True

InvokeRepeating:每间隔几秒调用一次,里面的方法会一直在队列中

public class InvokeCS : MonoBehaviour {

	// Use this for initialization
	void Start () {
		//Invoke("Attack", 3);//等待3秒调用Attack方法,不调用前在队列中等待
		InvokeRepeating("Attack", 4, 2);//等待4秒开始调用,然后每隔2秒调用一次,Attack一直在队列中
	}
	
	
	// Update is called once per frame
	void Update () {
		bool rs =IsInvoking("Attack");//判断这个方法是否正在被调用,未调用显示True
		print(rs);
	}
	void Attack()
	{

		print("正在攻击");
	}
}

 

[展开全文]

IsInvoking("")可以用来判断括号内方法是否正在被调用

Invoke()会把括号内的方法加进队列里,并执行后面的等待时间,这时间内IsInvoking会显示为true

InvokeRepeating(方法,4,2)4s后调用第一次,之后每间隔2s调用一次

[展开全文]

                     Invoke

 

Invoke(str 函数名 ,int 几秒后调用)

//几秒后调用目标函数

 

IsInvoKing(str 函数名) 返回bool

目标函数是否被调用

 

InvokeRepeating(str 函数名,int 初次调用等待时间 ,float )

[展开全文]

Invoke("要執行的method名稱" , delay時間)

//該method會在指定時間後執行

 

IsInvoking("要檢查的method名稱")

//會去等待列檢查該method是否正在等待,若是則 return true,反之 return false

 

InvokeRepeating("要執行的method名稱" , 多久後開始執行 , 之後每等待多久執行一次)

 

CancalInvoke("要執行的method名稱")

//刪除等待列中的 Invoke method

 

 

[展开全文]

Invoke("FunctionName",time); 

cancelInvoke (可以指定特定方法,不指定就是当前脚本全部);

invokeRepeating("FunctionName",firsttime,nexttime);

bool result = isInvoking ("FunctionName");

 

[展开全文]

Invoke:调用方法;

Attack:方法名;

3:几秒后调用;

 Invoke("Attack",3);

 InvokeRepeating:一直调用

InvokeRepeating("Attack,4,2");

Attack:方法名;

4:几秒后开始;

2:间隔几秒调用一次;

CanceLInvoke("Attack");取消Attack方法的调用;

CanceLInvoke:();:取消所有Invoke方法;

 

[展开全文]

IsInvoking

Invoke

InvokeRepeating

 

CansInvoking

 

[展开全文]

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class API07Invock : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
       // Invoke("Attack",3);
        InvokeRepeating("Attack",3,5);
        CancelInvoke();
    }

    // Update is called once per frame
    void Update()
    {
        bool res=IsInvoking("Attack");
        print(res);
    }
    void Attack() 
    {
        print("开始攻击");
    }
}

[展开全文]

Invoke用于调用方法(“方法”,时间(延迟几秒调用))

InvokeRepeating调用一个方法("方法",时间(从第几秒开始),时间(几秒调用一次))

CancellInvoke();取消所有的调用函数;

[展开全文]

1.创建游戏物体f的三种方法
new GameObject();括号里可以添加想要创建的物体类型例如
new GameObject("Cube");创建出一个正方体
GameObject.Instantiate();
实例化Prefabs或实例化游戏物体
GameObject.CreatePrimitive();
创建原始图形如:.GameObject.CreatePrimitive(PrimitiveType.Cube);
2.通过代码给游戏物体添加组件
 private GameObject object;
object.AddComponent<Rigidbody>();
通过代码给游戏物体j添加脚本
object.AddComponent<脚本名>();
3.GameObject游戏物体的常用类
GameObject.activeInHierarchy 物体是否处于激活状态(包括自身及子物体)
4.UnityEngine下Object的静态方法
Object.Destroy:
Destroy(gameobject,time);
Object.DontDestroyOnLoad:
DontDestroyOnLoad(transform.gameObject);(在进行场景之间转换时不会被销毁,会被带到下一个场景中)
Object.FindObjectOfType:
Object   a =FindObjectOfType(typeof(组件名))
Rigidbody  a=FindObjectOfType<Rigidbody>();
只返回第一个被检测到含有此组件的物体。不查找未激活的游戏物体
Object.FindObjectsOfType:
Object   a =FindObjectsOfType(typeof(组件名))
Rigidbody a=FindObjectsOfType<Rigidbody>();
将检测到的所有的含有此组件的物体都存在数组中。不查找未激活的游戏物体
5.查找方法
Find(比较耗费性能)
FindGameObjectsWithTag返回所有是次标签的物体返回数组
FindWithTag只返回第一个检测到的物体。
6.游戏物体间消息的发送和接收
GameObject.BroadcastMessage();包括其自身及其子物体
GameObject.SendMessage(); 不包括子物体
GameObject.SendMessageUpwards();包括其自身及其父物体
7.得到组件的各种方法函数

GetComponent;只会得到在游戏物体身上的第一个检测到的组件

GetComponent;会得到物体上所有的组件

GetComponentInChildren;会得到其自身及其子物体身上第一个检测到的相应的组件

GetComponentInParent;会得到其自身及其父物体身上第一个检测到的相应的组件

GetComponentsInChildren;会得到其自身及其子物体身上所有检测到的相应的组件

GetComponentsInParent;会得到其自身及其父物体身上所有检测到的相应的组件

8.Public Functions

Invoke;

Public void Invoke(string methodName,float time );可延时调用方法

CancelInvoke;取消所有调用的方法(仅适用于当前脚本,不影响其他脚本中相同方法的调用)

InvokeRepeating;重复调用方法

IsInvoking;判断方法是否正在被调用

[展开全文]