经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 游戏设计 » 查看文章
Unity 角色场景传送功能
来源:cnblogs  作者:小辉歌  时间:2019/1/24 9:26:47  对本文有异议

传送触发器

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;
}
}

}

 

原文链接:http://www.cnblogs.com/xiaoahui/p/10312247.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号