37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.Events;
|
|||
|
using KinematicCharacterController.Examples;
|
|||
|
|
|||
|
namespace KinematicCharacterController.Examples
|
|||
|
{
|
|||
|
public class Teleporter : MonoBehaviour
|
|||
|
{
|
|||
|
public Teleporter TeleportTo;
|
|||
|
|
|||
|
public UnityAction<ExampleCharacterController> OnCharacterTeleport;
|
|||
|
|
|||
|
public bool isBeingTeleportedTo { get; set; }
|
|||
|
|
|||
|
private void OnTriggerEnter(Collider other)
|
|||
|
{
|
|||
|
if (!isBeingTeleportedTo)
|
|||
|
{
|
|||
|
ExampleCharacterController cc = other.GetComponent<ExampleCharacterController>();
|
|||
|
if (cc)
|
|||
|
{
|
|||
|
cc.Motor.SetPositionAndRotation(TeleportTo.transform.position, TeleportTo.transform.rotation);
|
|||
|
|
|||
|
if (OnCharacterTeleport != null)
|
|||
|
{
|
|||
|
OnCharacterTeleport(cc);
|
|||
|
}
|
|||
|
TeleportTo.isBeingTeleportedTo = true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
isBeingTeleportedTo = false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|