【发布时间】:2021-12-18 23:03:44
【问题描述】:
您好,我的统一 2d 游戏的传送代码有一些问题 我正在尝试为我的淡入淡出延迟我的 Teleport,但它不起作用
我也需要
other.transform.position = teleportTo.position;
不是这个,这是玩家没有传送的部分
transform.position = teleportTo.position;
完整代码
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Collider2D))]
public class TeleportTrigger : MonoBehaviour
{
public enum TriggerType { Enter, Exit };
//The Transform to teleport to
[SerializeField] Transform teleportTo;
//The filter Tag
[SerializeField] string tag = "Player";
//Trigger Event to Teleport
[SerializeField] TriggerType type;
void OnTriggerEnter2D(Collider2D other)
{
Time.timeScale = 0f;
if (type != TriggerType.Enter)
{
return;
}
if (tag == string.Empty || other.CompareTag(tag))
{
//TP
StartCoroutine(Wait());
//all this \/ is not working there is no delay
/*other.transform.position = teleportTo.position;
Time.timeScale = 1f;
*/
}
}
private IEnumerator Wait()
{
yield return new WaitForSeconds(5);
transform.position = teleportTo.position;
Time.timeScale = 1f;
}
}```
【问题讨论】:
标签: c# unity3d ienumerator