传送触发器

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

//玩家传送触发器及传送点
public class StreetChanger : MonoBehaviour {

public string sceneName;//传送的场景的名字
public float transTime;//传送等待的时间,比如在此时间内让场景屏幕变黑,有过渡感
private bool locked = true;//自加锁,保证同一个场景中的多个传送器只有一个运行
public int pathPoint;//表示和场景中的哪个点相对应,所对应的点在目标场景的SceneControl中

// Update is called once per frame
void Update () {
if (SceneControl.state == 1&&!locked) {//当场景信息的状态为1表示当前进入传送状态,locked表示传送点数据有当前的StreetChanger来传送
transTime -= Time.deltaTime;
if (transTime <= 0) SceneManager.LoadScene(sceneName);
}

}

//如果进入触发区域的对象为玩家,并且按下I键,场景处于空闲状态,那么进行传送过程
private void OnTriggerStay2D(Collider2D collision)
{
if (collision.gameObject.tag.Equals("Player") && Input.GetKeyDown(KeyCode.I)&&SceneControl.state==0) {
SceneControl.state = 1;
SceneControl.pathPoint = pathPoint;
locked = false;
}
}
}

---------------------------------------------------------------------------------------------------------------------------------------

场景控制器,用于控制场景中的一些通用信息的类

public class SceneControl : MonoBehaviour {
[SerializeField]
public static int state;//0正常,1改变场景,2交互
public static int pathPoint;//角色传送到当前场景时对应通过的路径点标记

public List<WayPoint> list = new List<WayPoint>();//保存的当前场景中的所有传送点触发器的对象
public Transform player;

private void Start()
{
//场景初始加载,遍历当前所有触发点,找到角色在该场景的传送位置
foreach (WayPoint point in list) {
if (point.pathPoint == pathPoint && point.PointAnchor && player) {
player.position = point.PointAnchor.position;
break;
}
}

}

Unity 角色场景传送功能的更多相关文章

  1. unity 角色换装

    unity角色换装的关键是更改角色部位上的物体的SkinnedMeshRenderer组件的属性: 更改mesh:mesh决定了部位的物体的外形,是主要的数据. 刷新骨骼:同一个部位下,不同的mesh ...

  2. Unity 多场景打包

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50580641 作者:car ...

  3. 韩国手机游戏Elf Defense角色场景

    ! [复制链接] CG窝微博 签到天数: 36 天 连续签到: 1 天 [LV.5]常住居民I 22 主题 0 精华 2729 窝币 超级版主 积分 2546 收听TA 发消息 电梯直达 楼主     ...

  4. HoloLens开发手记 - Unity之场景共享 Shared holographic experiences in Unity

    佩戴HoloLens的多个用户可以使用场景共享特性来获取集合视野,并可以与固定在空间中某个位置的同一全息对象进行交互操作.这一切是通过空间锚共享(Anchor Sharing)来实现的. 为了使用共享 ...

  5. Unity 中场景切换

    Unity游戏开发中,单个Scene解决所有问题似乎不可能,那么多个Scene之间的切换是必然存在.如果仅仅是切换,似乎什么都好说,但是在场景比较大的时候不想让玩家等待加载或者说场景与场景之间想通过一 ...

  6. Unity 角色复活和重新开始游戏

    作者写游戏完成的时候,还需要从新想下如何把游戏设置重新开始,角色如何复活. 一般大多数都会采用这种方式来代替游戏重新开始 Application.LoadLevel("xxx场景" ...

  7. Unity 之 场景切换

      Application.LoadLevel();//场景名称或索引,删除掉原场景的所有东西 Application.LoadLevelAdditive()//添加并加载场景,不删除当前场景的物体, ...

  8. Unity角色对话

    对话类------------------------------------------------------------------------------------------------- ...

  9. 关于Unity中场景的导入与导出(专题九)

    Unity场景 场景虽然是由场景美术做好的,但是我们经常需要自己去导导出以及从别的项目导入,所以我们需要对场景的导入和导出有一个详细的了解 1: 场景是由美术人员搭建完成后提交给程序;2: 场景一般包 ...

随机推荐

  1. cat > file << EOF 与 cat > file << -

    当我们在使用kickstart 的时候,会遇到写网卡配置文件的情况,这时候我们使用cat > file << EOF 命令等,可以从标准输入中接受输入并保存到 file 文件中. c ...

  2. C语言中的数组与指针

    1. 数组的初始化 数组的初始化方法有很多,常用的方法有 定义时初始化 ]={,,}; 或 ]={}; //未初始化的元素全为0: 定义后遍历赋值初始化 int arr[3]; for(int i=0 ...

  3. 【转】Mysql学习---MySQL悲观锁中的排它锁

    [原文]https://www.toutiao.com/i6595305814087434760/ 悲观锁中的排它锁. 排它锁关键字:for update 特点:会锁住行或者表,防止其他事务进行修改操 ...

  4. 乘风破浪:LeetCode真题_026_Remove Duplicates from Sorted Array

    乘风破浪:LeetCode真题_026_Remove Duplicates from Sorted Array 一.前言     我们这次的实验是去除重复的有序数组元素,有大体两种算法. 二.Remo ...

  5. 数值分析 最小二乘 matlab

    1. 已知函数在下列各点的值为   -1 -0.75 -0.5 0 0.25 0.5 0.75   1.00 0.8125 0.75 1.00 1.3125 1.75 2.3125 分别用一次.二次. ...

  6. November 04th, 2017 Week 44th Saturday

    It does not do to dwell on dreams and forget to live. 整天沉溺于梦想而忘记如何好好生活,毫无意义. Bingo, and I think it i ...

  7. 第二次项目冲刺(Beta版本)

    第二次项目冲刺(Beta版本) 团队作业7--第二次项目冲刺(Beta版本)day1 http://www.cnblogs.com/wj946/p/8017787.html 团队作业7--第二次项目冲 ...

  8. 028、HTML 标签1列表、图片、表格

    内容简单看一下理解就行了. HTML 是用来描述网页的一种语言.就是用来编写网页的语言 内容:换行.分割,标签属性,编码方式设置,字体标签,特殊符号,列表.图片.表格标签############### ...

  9. 3、爬虫之selenium模块

    一 selenium模块 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. selenium最初是一个自动化测试工具, ...

  10. yield协程

    1.Generator Generator , 一种可以返回迭代器的生成器,当程序运行到yield的时候,当前程序就唤起协程记录上下文,然后主函数继续操作,当需要操作的时候,在通过迭代器的next重新 ...