반응형
- 코드 작성
FruitController.cs
using UnityEngine;
public class FruitController : MonoBehaviour
{
public float upwardForce = 5f;
void Start()
{
LaunchFruit();
}
void Update()
{
if (transform.position.y < -5f)
{
Destroy(gameObject);
}
}
void LaunchFruit()
{
Rigidbody2D rb = GetComponent<Rigidbody2D>();
rb.AddForce(Vector2.up * upwardForce, ForceMode2D.Impulse);
rb.AddTorque(Random.Range(-5f, 5f), ForceMode2D.Impulse);
}
void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Blade"))
{
Destroy(gameObject);
// Add scoring or other effects here
}
}
}
BladeController.cs
using UnityEngine;
public class BladeController : MonoBehaviour
{
public GameObject bladeTrailPrefab;
public float minCuttingVelocity = 0.001f;
private bool isCutting = false;
private GameObject currentBladeTrail;
void Update()
{
UpdateCutting();
}
void UpdateCutting()
{
if (Input.GetMouseButtonDown(0))
{
StartCutting();
}
else if (Input.GetMouseButtonUp(0))
{
StopCutting();
}
if (isCutting)
{
UpdateBladeTrail();
}
}
void StartCutting()
{
isCutting = true;
currentBladeTrail = Instantiate(bladeTrailPrefab, transform.position, Quaternion.identity);
}
void StopCutting()
{
isCutting = false;
Destroy(currentBladeTrail);
}
void UpdateBladeTrail()
{
Vector2 newPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = newPosition;
float velocity = (newPosition - (Vector2)transform.position).magnitude / Time.deltaTime;
if (velocity > minCuttingVelocity)
{
currentBladeTrail.transform.position = newPosition;
}
else
{
Destroy(currentBladeTrail);
}
}
}
반응형
'개발 > C#' 카테고리의 다른 글
유니티 C# Canvas UI 화살표 특정 좌표로 반복 이동시키기 간단 구현 (0) | 2024.01.16 |
---|---|
유니티 C# 바라보는 방향 상호작용 간단 구현 Raycast 충돌 감지 (0) | 2023.12.18 |
유니티 스크롤뷰 컨텐츠가 모바일 빌드 화면 밖을 벗어날 경우 (0) | 2023.11.28 |
유니티 C# 오브젝트 목표 지점까지 이동시키기 간단 구현 (0) | 2023.11.10 |
유니티 C# Pong Clone 탁구 게임 간단 구현 (0) | 2023.11.10 |
유니티 C# 소인수 분해 코드 간단 구현 Prime factorization (0) | 2023.10.27 |
C# Dictionary 딕셔너리 사용법 및 정렬 예시 간단 구현 (0) | 2023.10.20 |
유니티 C# 해시셋 HashSet 사용법 예시 간단 구현 (0) | 2023.10.20 |
댓글