I can't get the OnTriggerEnter, OnTriggerExit or OnTriggerStay to work.
Can anyone point me in the right direction?
I'm sorry if this is posted in the wrong section, please move the post if so.
Example code:
using Oxide.Core.Libraries.Covalence;
using Oxide.Core;
using System;
using System.Collections.Generic;
using UnityEngine;
using Rust;
namespace Oxide.Plugins
{
[Info("SoloOnly", "Testson", "0.1.0")]
[Description("Not really working atm..")]
class SoloOnly : RustPlugin
{
AddTrigger addTrigger = new AddTrigger();
int tickCounter = 0;
void OnServerInitialized(bool initial)
{
GameObject[] allobjects = UnityEngine.Object.FindObjectsOfType<GameObject>();
for (int i = 0; i < allobjects.Length; i++)
{
GameObject gobject = allobjects[i];
if (gobject.name.Contains("autospawn/monument"))
{
var pos = gobject.transform.position;
if (!pos.Equals(new Vector3(0, 0, 0)))
{
if (gobject.name.Contains("satellite_dish"))
{
addTrigger.CreateCollider(gobject, "satellite_dish", gobject.transform.position, 150);
}
}
}
}
}
private void OnTriggerEnter(Collider obj)
{
BasePlayer player = obj?.GetComponentInParent<BasePlayer>();
if (player != null)
{
player.ChatMessage("YOU ENTERED ?? ?");
}
}
private void OnTriggerStay(Collider obj)
{
BasePlayer player = obj?.GetComponentInParent<BasePlayer>();
if (player != null)
{
player.ChatMessage("YOU STAY ?? ?");
}
}
private void OnTriggerExit(Collider obj)
{
BasePlayer player = obj?.GetComponentInParent<BasePlayer>();
if (player != null)
{
player.ChatMessage("YOU LEFT???");
}
}
public class AddTrigger : MonoBehaviour
{
private Rigidbody rigidbody;
internal Collider collider;
internal Bounds bounds;
private void Awake()
{
gameObject.layer = (int)Layer.Reserved1;
gameObject.name = "SoloOnly";
}
public void CreateCollider(GameObject gobject, string name, Vector3 position, float radius)
{
SphereCollider sphereCollider = gobject.GetComponent<SphereCollider>() ?? gobject.AddComponent<SphereCollider>();
//var sphereCollider = gobject.AddComponent<SphereCollider>();
sphereCollider = gobject.AddComponent<SphereCollider>();
sphereCollider.center = gobject.transform.position;
sphereCollider.radius = radius * 100;
sphereCollider.isTrigger = true;
sphereCollider.enabled = true;
}
private void OnTriggerEnter(Collider obj)
{
BasePlayer player = obj?.GetComponentInParent<BasePlayer>();
if (player != null)
{
player.ChatMessage("YOU ENTERED ?? ?");
}
}
private void OnTriggerStay(Collider obj)
{
BasePlayer player = obj?.GetComponentInParent<BasePlayer>();
if (player != null)
{
player.ChatMessage("YOU STAY ?? ?");
}
}
private void OnTriggerExit(Collider obj)
{
BasePlayer player = obj?.GetComponentInParent<BasePlayer>();
if (player != null)
{
player.ChatMessage("YOU LEFT???");
}
}
}
}