Search
 
SCRIPT & CODE EXAMPLE
 

CSHARP

CullingGroup

using UnityEngine;

public class CullingGroupBehaviour : MonoBehaviour
{

    private CullingGroup cullingGroup;
    private BoundingSphere[] bounds;

    Transform[] targets;
    public Transform ReferencePoint;

    void Start()
    {
        // All the objects that have a sphere tag
        var gobjs = GameObject.FindGameObjectsWithTag("Sphere");
        targets = new Transform[gobjs.Length];
        for(int i = 0; i < gobjs.Length; i++)
        {
            targets[i] = gobjs[i].transform;
        }

        cullingGroup = new CullingGroup();

        cullingGroup.targetCamera = Camera.main;
        // Will automatically track the transform
        cullingGroup.SetDistanceReferencePoint(transform);
        // The distance points when the event will trigger
        cullingGroup.SetBoundingDistances(new float[] { 25.0f });
        // Creating Boundingspheres
        bounds = new BoundingSphere[targets.Length];
        for (int i = 0; i < bounds.Length; i++)
        {
            bounds[i].radius = 1.5f;
        }
        // Assigning the Bounding spheres
        cullingGroup.SetBoundingSpheres(bounds);
        // if not set it will use all of the array elements(so below code is redundant)
        cullingGroup.SetBoundingSphereCount(targets.Length);
        // Assigning an event when the distance changes
        cullingGroup.onStateChanged = OnChange;
    }

    void Update()
    {
        for (int i = 0; i < bounds.Length; i++)
        {
            bounds[i].position = targets[i].position;
        }
    }

    void OnDestroy()
    {
        cullingGroup.Dispose();
        cullingGroup = null;
    }

    void OnChange(CullingGroupEvent ev)
    {
        if (ev.currentDistance > 0)
        {
            targets[ev.index].gameObject.GetComponent<Renderer>().material.color = Color.green;
        }
        else
        {
            targets[ev.index].gameObject.GetComponent<Renderer>().material.color = Color.red;
        }
    }
}
Comment

PREVIOUS NEXT
Code Example
Csharp :: list in c# foreach 
Csharp :: how to create more accurate searching c# 
Csharp :: how to colapse all methods visual studio 
Csharp :: access autoload godot 
Csharp :: unity3d spin wheel 
Csharp :: poems 
Csharp :: UnitType parameter revit 2022 
Csharp :: c# razor @html.actionlink( edit bootstrap 
Csharp :: c# dictionary contain key but returns false 
Csharp :: how to clear stackpanel wpf 
Csharp :: Delegate with parameter and return 
Csharp :: go to the corresponding brace visual studio C# 
Csharp :: unity raycast hit child object 
Csharp :: how to split a string in f# 
Csharp :: windows form button image size 
Csharp :: c# wait without GUI blocks 
Csharp :: asp.net core mvc not triggering client side validation 
Csharp :: rest api in c# 
Csharp :: how to create a point c# 
Csharp :: get sites ip in C# 
Csharp :: thread c# 
Csharp :: how to print a variable in c# 
Csharp :: c# resize image from byte array 
Csharp :: how to dynamically load value in startup file in c# 
Csharp :: dinero en C# 
Html :: html empty character 
Html :: sweetalert2 cdn 
Html :: html new target 
Html :: html character tab 
Html :: feather icon cdn 
ADD CONTENT
Topic
Content
Source link
Name
5+6 =