revival/game/Assets/Scripts/Traps/Teleporter.cs

50 lines
1.1 KiB
C#
Raw Normal View History

2021-04-28 16:58:11 +02:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(BoxCollider))]
public class Teleporter : MonoBehaviour
{
[SerializeField] private Teleporter _other;
public bool IsSender => _sender;
[SerializeField] private bool _sender;
private void OnValidate()
{
if (!_other) return;
if (IsSender && _other.IsSender)
{
Debug.LogError("two senders linked", this);
}
if (!IsSender && !_other.IsSender)
{
Debug.LogError("two receivers linked", this);
}
}
private void OnEnable()
{
var box = GetComponent<BoxCollider>();
if (IsSender)
{
box.isTrigger = true;
}
else
{
box.enabled = false;
}
}
private void OnTriggerEnter(Collider col)
{
var trans = col.transform;
var pos = trans.position - transform.position;
trans.position = _other.transform.position + pos;
}
}