53 lines
1.2 KiB
C#
53 lines
1.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UdonSharp;
|
|
using UnityEngine;
|
|
using VRC.SDKBase;
|
|
using VRC.Udon;
|
|
|
|
public class Areaportal : UdonSharpBehaviour
|
|
{
|
|
private OcclusionPortal portal;
|
|
|
|
private GameObject[] imposters;
|
|
|
|
void Start()
|
|
{
|
|
this.portal = this.GetComponent<OcclusionPortal>();
|
|
this.imposters = new GameObject[this.transform.childCount];
|
|
|
|
// Ёбаный рот этого UdonSharp
|
|
int i = 0;
|
|
foreach(Transform child in this.transform)
|
|
{
|
|
this.imposters[i++] = child.gameObject;
|
|
}
|
|
}
|
|
|
|
public override void OnPlayerTriggerEnter(VRCPlayerApi player)
|
|
{
|
|
if (!(player.IsValid() && player.isLocal))
|
|
return;
|
|
|
|
this.portal.open = true;
|
|
|
|
foreach(GameObject imposter in this.imposters)
|
|
{
|
|
imposter.SetActive(false);
|
|
}
|
|
}
|
|
|
|
public override void OnPlayerTriggerExit(VRCPlayerApi player)
|
|
{
|
|
if (!(player.IsValid() && player.isLocal))
|
|
return;
|
|
|
|
this.portal.open = false;
|
|
|
|
foreach(GameObject imposter in this.imposters)
|
|
{
|
|
imposter.SetActive(true);
|
|
}
|
|
}
|
|
}
|