Unity 角色场景传送功能
传送触发器
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 角色场景传送功能的更多相关文章
- unity 角色换装
unity角色换装的关键是更改角色部位上的物体的SkinnedMeshRenderer组件的属性: 更改mesh:mesh决定了部位的物体的外形,是主要的数据. 刷新骨骼:同一个部位下,不同的mesh ...
- Unity 多场景打包
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50580641 作者:car ...
- 韩国手机游戏Elf Defense角色场景
! [复制链接] CG窝微博 签到天数: 36 天 连续签到: 1 天 [LV.5]常住居民I 22 主题 0 精华 2729 窝币 超级版主 积分 2546 收听TA 发消息 电梯直达 楼主 ...
- HoloLens开发手记 - Unity之场景共享 Shared holographic experiences in Unity
佩戴HoloLens的多个用户可以使用场景共享特性来获取集合视野,并可以与固定在空间中某个位置的同一全息对象进行交互操作.这一切是通过空间锚共享(Anchor Sharing)来实现的. 为了使用共享 ...
- Unity 中场景切换
Unity游戏开发中,单个Scene解决所有问题似乎不可能,那么多个Scene之间的切换是必然存在.如果仅仅是切换,似乎什么都好说,但是在场景比较大的时候不想让玩家等待加载或者说场景与场景之间想通过一 ...
- Unity 角色复活和重新开始游戏
作者写游戏完成的时候,还需要从新想下如何把游戏设置重新开始,角色如何复活. 一般大多数都会采用这种方式来代替游戏重新开始 Application.LoadLevel("xxx场景" ...
- Unity 之 场景切换
Application.LoadLevel();//场景名称或索引,删除掉原场景的所有东西 Application.LoadLevelAdditive()//添加并加载场景,不删除当前场景的物体, ...
- Unity角色对话
对话类------------------------------------------------------------------------------------------------- ...
- 关于Unity中场景的导入与导出(专题九)
Unity场景 场景虽然是由场景美术做好的,但是我们经常需要自己去导导出以及从别的项目导入,所以我们需要对场景的导入和导出有一个详细的了解 1: 场景是由美术人员搭建完成后提交给程序;2: 场景一般包 ...
随机推荐
- man -k : nothing appropriate.
➜ workplace man -k zip zip: nothing appropriate. 出现这种情况,是索引库没有建立. man 和 whatis 共用一个索引库的. 我们使用 man w ...
- 将 SecondaryNameNode 配置到 s105 节点上
相关链接 Hadoop 完全分布式安装 0. 说明 SecondaryNameNode 的作用 参考[待补充] 在 Hadoop 完全分布式的基础之上配置 将 SecondaryNameNode ...
- 【转】Java学习---Java中volatile关键字实现原理
[原文]https://www.toutiao.com/i6592879392400081412/ 前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.c ...
- django版本切换以及更改url(pycharm)
Django版本切换:https://blog.csdn.net/weixin_42305814/article/details/80742090 因为是从2版本更改到1版本,所以里面一些东西需要变动 ...
- VS2008 开发wince程序设备调试
今天之前开发的一个wince程序,用户反馈报错,由于很久没玩了,从用户那里拿来设备.结果怎么调试的忘记了.在网上找了些资料,自己有摸索了一下.才搞定. 1.安装Microsoft ActiveSync ...
- from urllib.request import urlopen
from urllib.request impor urlopen (负责打开浏览url内的html 文本) re.compile(r'alex(?P<name>\d+)and' ...
- [提权]域内提权神器 MS14-068 完整EXP
可以让任何域内用户提升为域管理员 c:\python27\python.exe ms14-068.py -u k8test3@k8.local -p k8team!@# -s S-1-5-2 ...
- mac brew安装mysql
mac不自带mysql,这里需要重新安装,方法依然很简单 brew install mysql unset TMPDIR mysql_install_db --verbose --user=`whoa ...
- H5页面meta标签小结:
<meta name="viewport" content="width=device-width,user-scalable=no"> <m ...
- [转载]ArcGIS SERVER 9.3如何清除REST缓存
有时候,发布了一个服务后,但是点击服务后,不能显示出来 http://hostname/ArcGIS/rest/services/服务名称/MapServer 这时候,十有八九是因为REST缓存没有清 ...