์ ๋ํฐ ํธ์ง๊ธฐ์์๋ ์ ์ฉ์ด ์ ๋๋๋ฐ
๋น๋ํด์ ํด๋ณด๋ฉด ์ ์ฉ์ด ์๋ผ์.
์์ด๋๋ ์ฒ์ ์จ๋ณด๋๋ฐ ๋ฌด์จ ๋ ์ค์ ํด์ค์ผ ํ ๊ฑฐ ์์ด์?
ย ย private Renderer objectRenderer;
ย ย private Material objectMaterial;
ย ย private bool outlineEnabled = false;
ย ย [SerializeField] private LayerMask layermask;
ย ย void Start()
ย ย {
ย ย ย ย objectRenderer = GetComponent<Renderer>();
ย ย ย ย objectMaterial = objectRenderer.material;
ย ย ย ย ย
ย ย }
ย ย private void Update()
ย ย {
ย ย ย ย Camera mainCamera = Camera.main;
ย ย ย ย Vector2 mousePosition = mainCamera.ScreenToWorldPoint(Input.mousePosition);
ย ย ย ย RaycastHit2D hit = Physics2D.Raycast(mousePosition, Vector2.zero, 0, layermask);
ย ย ย ย if (hit)
ย ย ย ย {
ย ย ย ย ย ย if (hit.transform == transform)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย EnableOutline(true);
ย ย ย ย ย ย }
ย ย ย ย ย ย else
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย EnableOutline(false);
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย else
ย ย ย ย {
ย ย ย ย ย ย EnableOutline(false);
ย ย ย ย }
ย ย }
ย ย
ย ย void EnableOutline(bool enable)
ย ย {
ย ย ย ย outlineEnabled = enable;
ย ย ย ย if (outlineEnabled && Gamemanager.instance.isoutlined == false)
ย ย ย ย {
ย ย ย ย ย ย Gamemanager.instance.isoutlined = true;
ย ย ย ย ย ย objectMaterial.EnableKeyword("OUTBASE_ON");
ย ย ย ย ย ย objectMaterial.SetFloat("_OutlineEnabled", 1f);
ย ย ย ย }
ย ย ย ย else
ย ย ย ย {
ย ย ย ย ย ย Gamemanager.instance.isoutlined = false;
ย ย ย ย ย ย objectMaterial.DisableKeyword("OUTBASE_ON");
ย ย ย ย ย ย objectMaterial.SetFloat("_OutlineEnabled", 0f);
ย ย ย ย }ย ย
ย ย ย ย
ย ย ย ย //objectMaterial.SetFloat("_OutlineEnabled", outlineEnabled ? 1f : 0f);
ย ย }
์ฝ๋ ๋ณด์ฌ์ค
์ฝ๋ ์ฌ๋ ธ์ด์
All1oneshader ์์ ์ฐ๊ณ ์์ด์