반응형

Unity 과 VisualStudio2019 같이 사용하는데,
어느 순간부터 VisualStudio2019에서 코드 작성시 구문에러 부분에 에러 표시가 안되는경우가 발생되었다.

 

코드 끝에 ; 나 변수이름 잘못된거 등등 에러 표시해야할 부분에 표시가 안된다 (밑줄 표시 , 세로스크롤영역에 빨간점 표시)

 

그리고 컴파일돌려도 오류목록에 뜨지도 않는다.... 개답답

 

검색해보니 

 

Unity 프로젝트에 .vs 폴더가 있는데 이거 삭제하고 다시 비쥬얼스튜디어 켜면 정상적으로 작동된다.

 

 

반응형
반응형

 

아래 사진처럼

언제 부턴가 #region 으로 영역 잡으면 접기 아이콘이 없어서 접기를 할수가 없었다.

 

예전까지만해도 됬는데 왜이럴까.......

 

 

 

 

 

찾아보니 옵션에 해당 기능이 꺼져 있엇다.

 

옵션 > 텍스트 편집기 > C# > 고급 > 설명및 전처리기 영역에대한 개요표시 , 정으로 축소할떄 #regions 축소 를 ON 하고 확인

 

 

 

 

 

 

그럼 아래처럼 다시 등장!!!!!!!!!!
아후 이거찾느라 설정까지 리셋해가면서 햇네...........ㅠㅠ

 

 

 

 

반응형
반응형

프로젝트 작업중 나머지를 구하는 경우가 빈번하게 있었는데 윈도우10 계산기는 나머지 값구하는게 없는거 같아
직접 구현해서 계산기 만들어 봤습니다

 

아래 exe 파일 다운받아 활용하시면 괜찮을거같습니다

 

나머지 계산기는 몫값과 나머지 값을 반환하는 계산기입니다.

 

 

 

 

 

 

 

나머지계산기.exe
0.02MB

 

반응형
반응형

문자열중 숫자가 포함된 문자열이있습니다.

그 문자열에서 숫자만 가져오고 싶을떄가 있습니다.

아래 Regex 클래스로 숫자만 가져오는 방법입니다.

 

 

 

 

방법1.

using System.Text.RegulerExpressions; // Regex 클래스 사용하기위함 네임스페이스 선언

void FindNum()
{
	  string str = "숫자12345";
 
		// @"\D" 가 @"\d+"로도 가능
        string temp = Regex.Replace(str, @"\D", ""); //str에 문자열중 일반문자를 ""공백문자로 대체한다 
        int _num = int.Parse(temp);
        //결과 => "12345";
}

 

 

 

 

 

방법2.

using System.Text.RegulerExpressions; // Regex 클래스 사용하기위함 네임스페이스 선언

void FindNum()
{
	  string str = "숫자12345";
 
		string[] temp2 = Regex.Split(str, @"\D"); //@"\d+"도 가능
        //반환된 temp2 문자열배열 결과 => ["","12345"]
        
        for (int i = 0; i < temp2.Length; i++)
        {
        	//일반문자는 공백으로 배열에 존재하니 공백 아닌문자로 숫자 값 가져온다
            if(!string.IsNullOrEmpty(temp2[i]))
            {
                int num = int.Parse(temp2[i]);
            }
        }
}

 

 

 

이상 문자열중 숫자 골라내기 이였습니다.

다른방법들도 있으면 더추가 하도록 하겠습니다.

반응형
반응형

string.format() 은 다양한 포맷형태를 변환하여 문자열을 나타내 주는데요 

만약 아래와같이 수식 문자열은 어덯게 처리해야할까요 ? 

 

string TestExpression = "(A-B)*C";

 

 

string.format으로는 활용하기엔 힘드는것처럼 보입니다. 

DataTable 클래스를 활용하면 된다고 하기 한번 테스트 해보앗습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void Start()
    {   
        //예시수식
        string TestExpression = "(A-B)*C";
 
        //Table 생성
        DataTable table = new DataTable();
 
        //table에 해당 열을 생성
        table.Columns.Add("A"typeof(int));
        table.Columns.Add("B"typeof(int));
        table.Columns.Add("C"typeof(int));
        table.Columns.Add("Result"typeof(int));
 
        //Result 열에 수식을 입력
        table.Columns["Result"].Expression = TestExpression;
 
        //해당 열의 행에 값을입력
        DataRow row = table.Rows.Add();
        row["A"= 31;
        row["B"= 5;
        row["C"= 1;
 
        //테이블 로드하고 로드끝내기
        table.BeginLoadData();
        table.EndLoadData();
 
        //Result 열의 행값을 
        int a = (int)row["Result"];
 
        Debug.Log(a);
        //출력값 : 26
       
 
    }
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none; color:white">cs

 

 

위코드를 엑셀로 표식화 해보앗습니다

 

 

 

TableData로 이용하니 해당수식을 잘 계산되서 나오네요 

 

이제 이걸 잘 함수화 시키면되겟네요 

 

 

 

 

반응형
반응형

1. 소숫자리수 표현

 string.Format("{0:f2}%",23.44555);

결과 => 23.44%

 

string.Format("{0:00}%",23.44555);

결과 => 23%

 

2.숫자 1000 단위 마다 콤마(,) 추가하기

int cnt = 45646

string str string.Format("{0:#,###}", cnt));

 

 결과 => 45,646

 

 

3. 0000 채워 넣기

string str = string.Format("{0:D4}", 22);

결과 => 0022

 

 


4. 백분율로 나타내기

string.Format("{0:P}", 0.2189);

결과 => 21.89%

string.Format("{0:P1}", 0.2189);

결과 => 21.8%

반응형
반응형

데이터 컬렉션 을이용해 데이터를 담고 참조하곤합니다. 아래 예시와같이 말이죠.


 레벨

 언락종류

 언락슬롯

 6

21 

21 

36 

36 

51 

51 



위같이 레벨에 대해서 슬롯잠금 해제 할수 있는 잠금레벨 데이터 테이블이 있다고 하자.


 - 잠금 레벨 데이터 사용 예

ex) 6레벨에 아이템슬롯이 해제 되는경우, 2번쨰 슬롯이 잠금이 해제됨
ex) 6레벨에 스킬 슬롯이 해제 되는 경우, 2번쨰 슬롯이 잠금이 해제됨



 


자 위 예제 같이 기능이 구현 되기 위해 잠금레벨 데이터를 가지고 데이터들이 참조 되어야한다.

저 데이터들을 컬렉션(List, Dictionary,Queue,Stack 등) 에 담아서 참조하여 쓰면되는데 ,
제일 참조하기 쉬운 컬렉션이 Dictionary 일것이다.


그럼 위 테이블로 Dictionary 만들어 보자



우선 각테이블에 값을 담을 클래스를 만들자




언락종류가 잇으니 구별하기 쉽게 enum으로 정의해놓자





테이블 대로 클래스를 생성하여 데이터를 할당하자 

 => 예시 이므로 레벨 36 까지만 보여드리겟습니다 (일반적으로는 데이터를 엑셀로 만들어 cvs 로 뽑는다음 , json으로 읽어서 데이터를 불러 들여 데이터를 할당하곤 합니다. 여기서는 예제이니 하나하나 데이터 할당할게요) 









정의한 Dictionary 에 할당된 클래스들을 담으면 되겟죠 ?Dictionary<int, Info_UnlockTerm> Dic_unlock = new Dictionary<int, Info_UnlockTerm>(); 

하지만, 아래 그림 빨간부분과 같이 할당할 dictionary key값이 중복이된다는걸 꺠달을수 잇어요..


위테이블에 자세히 보면 레벨 부분이 21, 36, 51 이 두개씩이나 있네요 .

이렇게 되면 컬렉션에 담아지긴합니다만, 이전에 담앗던 key와 value는 사라지게 될거에요.

그래서 멀티키 사용하여 담도록합시다









아래그림과같이 Dictionary value 부분에 Dictionary를 넣는 부분인데,

보기엔 힘들어 보이지만, 별거 업어요 Dictionary 안에 Dictionary가 잇다고 생각하면됩니다.


이렇게 되면 같은 레벨에 다른 종류의 데이터를 넣을수 있게됩니다. 





아래와같이 사용 하면 됩니다.

Dictionary[레벨][언락종류] 이런식으로요


Info_unlockTerm unlock = Dictionary[레벨][언락종류] ; 이렇게 되겟죠 ?

보아하니 약간 2차배열을 쓰는거 같군요, Dictionary를 2차배열로 쓴다 생각해도 이해하기 괜찮을겁니다.









반응형
반응형

enum 문에 정의한 것들을 전부 처리하고 싶을떄가 잇습니다.


아래 예제와같이 typeof 에대한 enum 형태를 array로 반환해줘 처리할수 있습니다.






반응형

+ Recent posts