https://kmong.com/self-marketing/556080/xcCLzhi3mY
당신이 손해볼 구글링 시간을 없애다 - 유니티 비법서 - 크몽
UniCoti 전문가의 전자책 서비스를 만나보세요. <p>이 책은 유니티를 하면서 생기는 여러 오류에 대한 해결책과</p>...
kmong.com
(174가지 주제의 유니티 기능 정리, 오류 해결법 + 무제한 질문권 전자책. 15000원)
계산기 같은 것을 유니티로 만들다 보면 문자열로 된 수식을 계산해야 한다.
물론 문자열을 +, - , * , / 등으로 쪼개서 float로 변환해서 어떻게 할 수도 있겠지만
전문적으로 할게 아닌 간단히 구현할 것이라면 이 방법이 나을 것이라고 생각한다.
일단 이 글에서 소개할 메서드는 DataTable의 Compute( )이다.
이 메서드는 앞서 말했듯 문자열로 된 수식을 계산해 주는 기능을 가진다.
예시를 보자.
1. 기본 세팅
using System;
using System.Data;
public class scriptName : MonoBehaviour
{
DataTable dt;
// Start is called before the first frame update
void Start()
{
dt = new DataTable();
}
}
DataTable을 문자열을 계산하기 위한 용도로만 세팅한다면 위와 같이 하면 된다.
먼저, 네임스페이스 2개를 추가해 준다.
(using System, System.Data)
그리고 변수를 하나 만들어준다. (클래스는 DataTable)
이후 Start나 Awake에서 빈 DataTable을 새로 만들고, 저장하면 된다.
이제 dt.methond() 형식으로 DataTable을 사용할 수 있게 된다.
2. 사용, 예시
사용하려면, dt.Compute("계산식", "필터"); 로 입력하면 된다.
여기서 "필터"는 dataTable의 원래 기능인 데이터들이 들어가 있을 때
사용하기 위한 것이다. 우리는 문자열을 계산하기 위해서 사용하기 때문에
필터는 아무것도 거르지 않기 위해 "" (빈 문자열)로 작성하면 된다.
dt.Compute("5*4*3*2*1", "");
----> 120
예시를 보자면 이런 식이다. 계산할 문자열 식을 첫 번째 파라미터로 넣으면
object 형식으로 계산된 값이 반환된다. object 타입으로 반환되기에
float나 int 혹은 바로 string으로 변환해서 사용하면 된다. (타입을 고려해야 할 경우)
여기까지 문자열로 된 수식을 계산하는 방법에 대해서 알아보았다.
이 검색어로 구글에 쳐보면 대부분 코딩 테스트 같은 문제로
이런 알고리즘을 짜는 것들이 나오는 걸 볼 수 있었다.
그래서 이러한 정보도 주고 싶어 작성한 글이며, 예전에 javascript를 배울 때
eval()이라는 메서드를 본 적이 있어서 이 기능을 유추할 수 있었던 것 같다.
과거의 경험이 중요하다고 느끼기도 했다.
https://learn.microsoft.com/ko-kr/dotnet/api/system.data.datatable.compute?view=net-8.0 (공식문서)
DataTable.Compute(String, String) 메서드 (System.Data)
필터 조건을 전달하는 현재 행에서 지정된 식을 계산합니다.
learn.microsoft.com
- Plus 라이선스 구매하기
Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store
Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!
store.unity.com
- Pro 라이선스 구매하기
Unity Pro
The complete solutions for professionals to create and operate.
unity.com
이상으로 도움이 되었길 바라며,
끝.
'게임 개발 > 유니티C#' 카테고리의 다른 글
Unity) Vector2, Vector3는 무엇인가? (개념과 활용) (2) | 2024.01.15 |
---|---|
Unity C#) 현재 시간 구하기. (2) | 2023.12.18 |
unity c#) try-catch 문. (2) | 2023.12.17 |
유니티 C#) 휴대폰에서 작은 메시지, 경고 만들기(토스트 메시지) (0) | 2023.03.04 |
유니티) 닿았을때, 닿아있을때, 떨어졌을때 실행하기. (OnCollision) (0) | 2023.02.17 |
댓글