unity实现物体延时出现

本文实例为大家分享了unity实现物体延时出现的具体代码,供大家参考,具体内容如下

新建一个cube和plane,隐藏cube,脚本挂在plane上。

1. update计时器实现

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

//一个隐藏的物体等待t秒后显示,updata计时器实现
public class activeShow : MonoBehaviour {

 public GameObject cube;
 public int t;
 private float m_timer=0;

 // Use this for initialization
 void Start () {

 }

 // Update is called once per frame
 void Update () {
 m_timer+=Time.deltaTime;
 if(m_timer>5){
  cube.SetActive(true);
  m_timer=0;
 }
 }
}

2. invoke实现

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

一个隐藏的物体等待t秒后显示,Invoke实现
public class ShowT : MonoBehaviour {

 public GameObject cube;
 public int t;//等待时间

 // Use this for initialization
 void Start () {
 Invoke("ActiveShow", t);
 }

 // Update is called once per frame
 void Update () {

 }

 public void ActiveShow(){
 cube.SetActive(true);
 }
}

3. invokeRepeating实现(这个是用来凑数的)

void Start () {
 InvokeRepeating("ActiveShow", t,1000);
 }

4. 协程实现

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

//一个隐藏的物体等待t秒后显示,协程实现
public class HideInSeconds : MonoBehaviour {

 public GameObject cube;
 IEnumerator ie;

 // Use this for initialization
 void Start () {
 ie=waitFourSeconds();
 StartCoroutine(ie);

 }

 // Update is called once per frame
 void Update () {

 }

 IEnumerator waitFourSeconds(){
 yield return new WaitForSeconds(4.0f);
 cube.SetActive(true);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity PC版Log的具体位置介绍

    在某个版本更新后,Unity Log不在位于Data文件夹中 具体位置: C:\Users\xxx用户\AppData\LocalLow\xx公司\xx项目 补充:UnityWebPlayer 的log日志的本地路径 在unity网页端的开发中,常常用到UnityWebPlayer的技术进行制作.在Unity中我们可以通过引擎自带的日志输出工具进行调试. 网页端在哪里查看log日志呢? 就在本地的此路径下 C:\Users\Administrator\AppData\Local\Temp\Uni

  • Unity C#执行bat脚本的操作

    我们先封装一下接口,如下,把EdtUtil.cs放置在Assets/Editor目录中 // EdtUtil.cs using System; using UnityEditor; using UnityEngine; using System.Collections.Generic; using System.IO; using System.Threading; using System.Text; class EdtUtil { public static System.Diagnosti

  • unity android设备上查看log输出方式

    使用[adb] logcat [option] - [filter-spec] - 命令. 1. -s 指定过滤器 adb logcat -s Unity ActivityManager PackageManager dalvikvm DEBUG 2. 如果出现error: more than one device/emulator,需要adb -s deviceName指定设备 adb devices 得到设备名 MyAndroid adb -s MyAndroid logcat -s Uni

  • Unity 按钮添加OnClick事件操作

    1.在Hierarchy面板右键UI>Button 2.创建一个空物体 3.创建一个脚本 ButtonClick.cs,定义一个Click方法(必须为Public) 4.把脚本挂在到空物体上 5.将空物体拖到如下图 None(Object) 位置 6.在右侧选择 ButtonClick>Click 方法 7.如下 补充:Unity三种添加Click事件 我就废话不多说了,大家还是直接看代码吧~ public Button btn; void Start () { // 一.btn.onClic

  • Unity 实现删除missing脚本组件

    通过Resources.FindObjectsOfTypeAll查找所有GameObject,然后通过.hideFlags == HideFlags.None判断是否为存在于Hierarchy面板.(此为编辑器脚本) 详细代码: /******************************************************************************* * 版本声明:v1.0.0 * 类 名 称:DeleteMissingScripts * 创建日期:8/10

  • 如何保存Unity中的Log日志

    代码中的debug日志保存本地 using System.Collections; using UnityEngine; using System.IO; public class SaveLog : MonoBehaviour { private float length; Queue queue; private void Awake() { DontDestroyOnLoad(this); LogToFile("Version of the runtime: " + Applic

  • Unity 如何通过反射给gameObject添加组件

    C#版本 public static Component AddComponent(GameObject go, string assembly, string classname) { var asmb = System.Reflection.Assembly.Load(assembly); var t = asmb.GetType(assembly + "." + classname); if(null != t) return go.AddComponent(t); else r

  • unity实现物体延时出现

    本文实例为大家分享了unity实现物体延时出现的具体代码,供大家参考,具体内容如下 新建一个cube和plane,隐藏cube,脚本挂在plane上. 1. update计时器实现 using System.Collections; using System.Collections.Generic; using UnityEngine; //一个隐藏的物体等待t秒后显示,updata计时器实现 public class activeShow : MonoBehaviour { public Ga

  • Unity实现物体左右移动效果

    本文实例为大家分享了Unity实现物体左右移动效果的具体代码,供大家参考,具体内容如下 效果如下 代码: using UnityEngine; using System.Collections; //Add this script to the platform you want to move. //左右移动的平台 public class MovingPlatform : MonoBehaviour { //Platform movement speed.平台移动速度 public floa

  • Unity实现物体沿自身的任意轴向旋转

    本文实例为大家分享了Unity实现物体沿任意轴向旋转,供大家参考,具体内容如下 一.创建一个需要旋转的物体 二.编写控制该物体的脚本 using UnityEngine; using System.Collections; public class Test_ElectricFan : MonoBehaviour { public bool isOpen=false; //是否开始旋转 public int speed=2; //旋转的速度 // Use this for initializat

  • Unity给物体添加多个Tag的实现

    在unity中,我们经常通过给物体添加标签来判断这个物体是不是我们想要的 但是unity默认只能添加一个标签,那如果我们要给一个物体添加多个标签应该怎么办 首先,我们定义一个Tag.cs类,这个类用来存储物体的tag信息 public class Tags : MonoBehaviour{ public List<string> tags=new List<string>(); } 然后创建一个单例类TagManager.cs用来管理tag public class TagMana

  • Unity实现物体运动时画出轨迹

    本文实例为大家分享了Unity实现物体运动时画出轨迹的具体代码,供大家参考,具体内容如下 1.新建空物体,上赋LineRenderer 2.新建空物体,把轨迹画出来,设计和脚本. 3.LineMark的脚本是 using System.Collections; using System.Collections.Generic; using UnityEngine; public class LineMark : MonoBehaviour { private GameObject clone;

  • Unity实现物体跟随鼠标移动

    本文实例为大家分享了Unity实现物体跟随鼠标移动的具体代码,供大家参考,具体内容如下 相关函数 Vector3.Lerp 线性插值C# => static Vector3 Lerp(Vector3 from, Vector3 to, float t); Vector3.MoveTpwards 移向C# => static function MoveTowards(current: Vector3, target: Vector3, maxDistanceDelta: float): Vect

  • Unity实现物体运动轨迹的绘制

    本文实例为大家分享了unity物体运动轨迹绘制的具体代码,供大家参考,具体内容如下 ① create empty,命名为LineRender ② 在Assects中新建材质,选择Shader为Sprites/Default,并设置轨迹颜色,如下图: ③ 选择①中创建的object,添加Line Render属性,然后将②中新建的材质赋给该object,如下图: 展开Line Render,拖动Width可设置轨迹宽度 ④ 创建c#脚本,拖至运动物体上,代码如下: using System.Col

  • Unity实现物体弧线运动到规定的坐标

    本文实例为大家分享了Unity实现以弧线的形式运动到规定坐标的具体代码,供大家参考,具体内容如下 1.u3d场景的设置 2. Run 脚本 using UnityEngine; using System.Collections; public class Run : MonoBehaviour { public GameObject target; //要到达的目标 public float speed = 10; //速度 private float distanceToTarget; //两

  • Unity实现毫秒延时回调功能

    简介 在项目的框架中看到了这个延迟回调的函数,一直以为是通过Unity协程实现的,最后看了源码后才发现是自己实现的.也是,如果用了协程成千上百个回调不得卡死.自己实现了一下核心的脚本,但是他的精华在于数据结构,把每个回调任务都做了很好的处理. API 1: Time.deltaTime 实际上就是每帧所执行的时间 功能实现 简单的说一下功能的实现,下面会直接贴出源码. 每一个新增的任务(回调)都会记录创建任务的时间以及延迟的时间,以及自己的事件回调.通过每帧判断当前帧的时间是否大于创建的(任务的

  • unity 切换场景不销毁物体问题的解决

    在用unity进行游戏开发时我们有时需要一些物体在场景切换时不需要被销毁这时我们可以用官方给的DontDestroyOnLoad()方法, 这个方法可以让我们在场景切换时不销毁场景.但如果你又返回这个场景(创建不可销毁物体的场景)时就会发现会有两个这个物体(标记为不可销毁的物体). 这个问题有一个较为简单的解决方法就是: 在物体的Awake()或Star()方法中加入这段代码.如果找到和自己一样的名字却不是自己的物体就将自己销毁,这样就解决了这个问题.(别的地方不知道,我的项目是可以用): if

随机推荐