Unity/구현
[Unity] 벽에 막히는 레이저 만들기
QuickClid
2024. 3. 15. 11:49
Preview
필요한 Script
- Laser
Laser
필요한 Component;
- Sprite Renderer : Pivot(Left Center), Texture's Mesh Type(Full Rect)
- Box Collider 2D : isTrigger(true)
- Laser(Script) : 하단 참조.
using UnityEngine;
public class Laser : MonoBehaviour
{
private SpriteRenderer sr;
private BoxCollider2D bc;
private void Awake()
{
GetReferences();
//InitFields();
}
private void GetReferences()
{
sr = GetComponent<SpriteRenderer>();
bc = GetComponent<BoxCollider2D>();
}
private void FixedUpdate()
{
FormLaser();
}
private void FormLaser()
{
RaycastHit2D ray = Physics2D.Raycast(transform.position, transform.right, 100f, LayerMask.GetMask("Ground"));
sr.size = new Vector2(ray.distance, 0.75f);
bc.size = new Vector2(ray.distance, 0.5f);
bc.offset = new Vector2(ray.distance / 2, 0);
}
}
실제로 사용해보기 위해서는...
Box Collider 2D Component를 지니고 있으며, Layer를 "Ground"로 설정한 GameObject가 있어야 한다.