Unity定时重复调用方法--Invoke方法
Unity定时/重复调用方法_Invoke方法
本篇讲述如何在unity中定定时调用其他方法的Invoke方法,
通过这个方法可以实现更多定时功能。
(一)先来介绍本篇用到的两个方法:
(1)Invoke方法:
该方法继承自MonoBehaviour类,需要传入的参数依次为【方法的名字】和【时间值】。作用是在规定时间后调用传递进来的方法。
使用栗子:
Invoke("Delete",3);//在三秒后执行Delete方法
InvokeRepeating("Print",3,3);//在三秒后执行Print方法,并且每隔3秒重复执行一次
(2)Destory方法:
该方法继承自Object类,需要传入的参数为一个【引用对象】。作用是直接销毁传递进来的对象。
补充说明:
Destory方法其实可以自己传递时间值来采取定时/延时毁灭,
比如:Destroy(gameObject,3); 即3秒后毁灭gameObject。
本示例不使用这个操作是为了方便演示Invoke的效果。
(二)选取Destroy方法作为被调用的方法:
栗子1:物体自己毁灭
(1)创建脚本写入如下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Obj02Destory : MonoBehaviour
{//物体自己毁灭private void Awake()//Unity脚本生命周期首先执行的方法{Invoke("DeleteObj", 6);//方法描述:在6s之后调用DeleteObj方法}void Start(){}void Update(){}private void DeleteObj()//定义一个销毁Obj的方法可供Invoke方法调用{Destroy(gameObject);//销毁方法,gameObject是脚本的Component类的属性,可以将其理解为当前 组件或者脚本 附加的对象//以下为SetActive方法,同样能使物体消失,但并不是严格意义上的销毁//gameObject.SetActive(false);}
}
(2)在unity中创建一个物体,将脚本添加给需要毁灭的物体,点击运行即可实现效果。
栗子2:使用别的对象来控制毁灭
由于物体毁灭后,其本身的组件和脚本就失效了,有时候为了保留某些组件和脚本,可以用别的对象挂载脚本,来控制物体的毁灭。两者脚本的区别主要是销毁对象的引用不同。
(1)创建脚本写入如下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ObjObj01Destory : MonoBehaviour
{//使用别的对象来控制毁灭public GameObject obj;//在外部定义一个GameObject类的对象,这个对象用来被销毁private void Awake()//Unity脚本生命周期首先执行的方法{InvokeRepeating("DeleteObj", 3,3);//方法描述:在3s之后调用DeleteObj方法,并且每隔3秒重复一次//注意:重复毁灭一般用于毁灭大量物体或确保毁灭进行成功,本示例只给予了一个物体对象}void Start(){}void Update(){}private void DeleteObj(){Destroy(obj);//销毁方法,销毁对象obj//以下为SetActive方法,同样能使物体消失,但并不是严格意义上的销毁//obj.SetActive(false);}
}
(2)在unity中创建一个物体命名为Obj01,并再创建一个空物体命名为Obj01Destory,将脚本添加给Obj01Destory。
(3)将Obj01拖入Obj01Destory的脚本,实现对象引用,点击运行即可实现效果。
Unity定时重复调用方法--Invoke方法相关推荐
- 自定义标签(JspFragment类、invoke方法、开发带属性的标签)
自定义标签(JspFragment类.invoke方法.开发带属性的标签) 一.JspFragment类 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定 ...
- 动态代理模式newProxyInstance及invoke方法参数详解
动态代理概述: Java提供的动态代理类Proxy: Proxy provides static methods for creating dynamic proxy classes and inst ...
- Unity延迟和重复调用方法
延迟调用方法 Invoke(arg1,arg2) arg1 是延迟调用的字符串方法名,arg2是延迟多少时间调用arg1 方法. 重复调用方法 InvokeRepeating(arg1,arg2,ar ...
- Unity中Invoke方法
Invoke() 方法是 Unity3D 的一种委托机制 如: Invoke("SendMsg", 5); 它的意思是:5 秒之后调用 SendMsg() 方法: 使用 Inv ...
- UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr!
UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr! 原因是····· 得运行在一个真正的Android设备上! 得运行在一个真正的And ...
- InvocationHandler的invoke方法如何被调用?
关键问题是它们内在的联系.虽然可以看源代码,包括类库.但是把它们抽象出来,有助于理解. 在客户类(即以下代码的Client类),语句Manager managerProxy = (Manager) ...
- java为何重复调用方法_通过反射调用Java中的getter:重复调用它的最快方法是什么(在性能和可伸缩性方面)?...
小编典典 您可以使用MethodHandle.其Javadoc写道: 使用Lookup API中的工厂方法,可以将Core Reflection API对象表示的任何类成员转换为行为等效的方法句柄.例 ...
- invoke方法_JVM是如何执行方法调用的?
前不久在写代码的时候,我不小心踩到一个可变长参数的坑.你或许已经猜到了,它正是可变长参数方法的重载造成的. 我把踩坑的过程放在了文稿里,你可以点击查看. void invoke(Object obj, ...
- 【Unity3D】Android Studio 工程中使用 Java 代码调用 Unity 的 C# 脚本 ( Java 中调用 UnityPlayer#UnitySendMessage 方法 )
文章目录 一. Java 调用 C# 依赖库准备 1.依赖库位置 2.unityLibrary 依赖库位置 二. Java 调用 C# 的 UnityPlayer#UnitySendMessage 方 ...
最新文章
- Golang实现requests库
- 自然语言处理(四)统计机器翻译SMT
- 【JEECG-Mybatis版本】springmvc+mybatis+代码生成器(代码一键生成)
- MySQL5.6 部署MHA
- Bailian4040 买书问题【Ad Hoc】
- Linux shell (一)
- 【HDU-5246】超级赛亚ACMer(贪心)
- unity newtonsoft 反序列化报空_基于Unity3D的大地形研究(2):资源序列化与材质加载...
- CSS font-family 属性值大全
- 乱世王者服务器维护,乱世王者微信534区仰不愧天开服时间表_乱世王者新区开服预告_第一手游网手游开服表...
- r语言ggplot2误差棒图快速指南
- 【实战】深度学习构建人脸面部表情识别系统
- 硬实时RTLinux安装配置详解 (二):编译运行RTLinux
- 概率论计算圆周率(π)
- 元宇宙时代NFT的价值衡量
- 百度SEO站群彩虹网盘外链程序源码V5.1|网盘外链源码
- ubuntu中安装vmware tools 时候出现unable to create the directory
- 计算机考试操作题怎么做,计算机考试操作题的做法.doc
- 基于STM32的0.96寸OLED显示屏显示数据和滚动显示
- 利用JVM在线调试工具排查线上问题(超实用)