์œ ๋‹ˆํ‹ฐ ํŽธ์ง‘๊ธฐ์—์„œ๋Š” ์ ์šฉ์ด ์ž˜ ๋˜๋Š”๋ฐ


๋นŒ๋“œํ•ด์„œ ํ•ด๋ณด๋ฉด ์ ์šฉ์ด ์•ˆ๋ผ์š”.


์‰์ด๋”๋Š” ์ฒ˜์Œ ์จ๋ณด๋Š”๋ฐ ๋ฌด์Šจ ๋” ์„ค์ • ํ•ด์ค˜์•ผ ํ•  ๊ฑฐ ์žˆ์–ด์š”?





ย  ย  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);

ย  ย  }