示例#1
0
    public void GenerateInteractionSphere(Transform parent)
    {
        if (!SphereGenerated)
        {
            SphereGenerated = true;
            GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            obj.transform.position = position;

            MeshRenderer rend = obj.GetComponent <MeshRenderer>();
            rend.material = Resources.Load <Material>("Oscillate");

            obj.GetComponent <Renderer>().enabled = false;
            obj.transform.SetParent(parent, false);

            SphereCollider collider = obj.GetComponent <SphereCollider>();
            collider.radius = 0.75f;

            GameObject   obj2   = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            SphereToggle toggle = obj2.AddComponent <SphereToggle>();
            obj2.transform.position = position;
            obj2.transform.SetParent(parent, false);
            obj2.tag = "Memory";

            GameObject souls             = GameObject.Instantiate(Resources.Load <GameObject>("Soul Anchor"));
            var        soulSystem        = souls.GetComponentInChildren <ParticleSystem>();
            var        soulEmissionShape = soulSystem.shape;
            soulEmissionShape.radius = radius;

            toggle.toggle = rend;

            souls.transform.position = Vector3.zero;
            souls.transform.SetParent(obj2.transform, false);

            InteractableBehaviour interactable = obj.AddComponent <InteractableBehaviour>();
            interactable.AttachInteractor(this);

            GameObject.Destroy(obj2.GetComponent <Renderer>());
            SphereCollider trigger = obj2.GetComponent <SphereCollider>();
            trigger.isTrigger = true;
            trigger.radius    = radius;

            InteractableObject = obj;
            InteractionSphere  = toggle;
        }
    }
示例#2
0
    public void GenerateInteractionSphere(Transform parent)
    {
        if (!SphereGenerated)
        {
            SphereGenerated = true;
            GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            obj.transform.position = position;
            SphereCollider collider = obj.GetComponent <SphereCollider>();
            collider.radius = 0.75f;

            MeshRenderer rend = obj.GetComponent <MeshRenderer>();
            rend.material = Resources.Load <Material>("Oscillate");

            obj.transform.SetParent(parent, false);

            InteractableBehaviour interactable = obj.AddComponent <InteractableBehaviour>();
            interactable.AttachInteractor(this);
        }
    }