-
-
Save CouriersRyan/34b378a26a20683023130cf619cde9d7 to your computer and use it in GitHub Desktop.
Drop Shadow helper script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Collections; | |
| using System.Collections.Generic; | |
| using UnityEngine; | |
| public class EventEffectHighlightObject : EventEffect | |
| { | |
| public Material highlightMaterial; | |
| public Renderer objectRenderer; | |
| public Renderer originalObjectRenderer; | |
| public bool isOriginal = true; | |
| private void Start() | |
| { | |
| if (isOriginal) | |
| { | |
| isOriginal = false; | |
| objectRenderer = this.GetComponent<Renderer>(); | |
| List<Material> mats = new List<Material>(); | |
| for (int i = 0; i < objectRenderer.materials.Length; i++) | |
| { | |
| mats.Add(objectRenderer.materials[i]); | |
| } | |
| if (originalObjectRenderer == null) | |
| { | |
| originalObjectRenderer = objectRenderer; | |
| } | |
| for (int i = 0; i < originalObjectRenderer.materials.Length; i++) | |
| { | |
| originalObjectRenderer.materials[i].SetInt("_stencilRef", 2); | |
| } | |
| var go = Instantiate(gameObject, transform); | |
| go.transform.localScale = new Vector3(1, 1, 1); | |
| go.transform.localPosition = new Vector3(0, 0, 0); | |
| go.transform.localRotation = Quaternion.identity; | |
| objectRenderer = go.GetComponent<Renderer>(); | |
| mats = new List<Material>(); | |
| mats.Add(highlightMaterial); | |
| objectRenderer.materials = mats.ToArray(); | |
| objectRenderer.materials[^1].SetFloat("_Range", 0); | |
| var comps = go.GetComponents(typeof(Component)); | |
| foreach (var comp in comps) | |
| { | |
| if (!(comp is Transform || comp is MeshFilter || comp is Renderer)) | |
| { | |
| Destroy(comp); | |
| } | |
| } | |
| for (int i = 0; i < go.transform.childCount; i++) | |
| { | |
| Destroy(go.transform.GetChild(i).gameObject); | |
| } | |
| } | |
| } | |
| public override void ExecuteEffect() | |
| { | |
| objectRenderer.materials[^1].SetFloat("_Range", 1); | |
| } | |
| public override void LeaveEffect() | |
| { | |
| objectRenderer.materials[^1].SetFloat("_Range", 0); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment