Get it on Google Play


Wm뮤 :: 'Unity' 카테고리의 글 목록 (23 Page)

블로그 이미지
가끔 그림그리거나 3D모델링하거나
취미로 로봇만드는
퇴직한 전자과 게임프로그래머
2020.3.48f1 , 2022.3.6f1 주로 사용
모카쨩
@Ahzkwid

Recent Comment

Archive


'Unity'에 해당되는 글 178건

  1. 2017.03.23 c# list(리스트) 관련
  2. 2017.01.25 c# list와 array속도 비교 3
2017. 3. 23. 00:22 Unity/C#

내부값과 검색하여 하나라도 맞는지 검사하여 bool 반환 x는 내부값을 나타냄 반드시 x로 써야함

if (nameList.Exists(x => x.ToString() == "name"))

 

해당하는 값이 존재하는지 bool 반환함 위 코드와 같음

nameList.Contains("name")

 

해당 하는 조건에 맞는 항목들을 전부 지움, 아래의 경우는 ".meta"가 포함된경우 전부 지운다.

x는 내부값이고 무조건 x로 써야함

fileNames.RemoveAll(x => x.Contains(".meta"));

 

 

리스트 복제(깊은복사)

List<int> DNA_copy = DNA.GetRange(0, DNA.Count);

 

리스트복제 2

var list2 = new List<int>(list);

 

 

 

중간삽입

DNAcopy.Insert(index, mScript.irandom(random_value));
 
중간삽입(배열 및 리스트)
 list.InsertRange(index, 배열 혹은 리스트);
 
다중추가(배열 및 리스트)
 list.AddRange(배열 혹은 리스트);

 

 

Linq계열

using System.Linq;

//중복제거
//앞글자 3글자가 같은녀석들만 제거함, x => x.Substring(0,3) 이부분만 수정해서 쓰면 됨
list = list.GroupBy(x => x.Substring(0,3)).Select(x=>x.First()).ToList();

//중복제거2
//완벽히 동일한것만 제거
list = list.GroupBy(x => x).Select(x=>x.First()).ToList();

//그룹리스트 (같은값끼리 짝지어서 나온다)
List<int> list=new int[] { 1,1,1,2,2,3,4,4}.ToList();
var groupList = list.GroupBy(x => x).ToList();

for (int i = 0; i < groupList.Count; i++)
{
    var group = groupList[i].ToList();
    for (int j = 0; j < group.Count; j++)
    {
        Debug.Log(group[j]);
    }

}

//중복제거 심플버전 구조체만 가능(예를들어 게임오브젝트는 안된다)
list.Distinct();

//전부 더하기
list.Sum();



//슬라이스(자르기)
var list = new List<int>(new int[] { 1, 2, 3, 4, 5 });
var length = 3;
var sliceList =  list.Take(length).ToList();
Debug.Log(string.Join(", ", sliceList));
//결과: 1,2,3



//슬라이스2 (중간부터)
var list = new List<int>(new int[] { 1, 2, 3, 4, 5 });
var startIndex = 1;
var length = 3;
var sliceList =  list.Skip(startIndex).Take(length).ToList();
Debug.Log(string.Join(", ", sliceList));
//결과: 2,3,4

 

 

 

 

 

 

최댓값 (맥스)

double dividendMax = list.Max(x => x.dividend);

 

최댓값'들'

var timeMax = saves.Max(save => save.time);
var timeMaxSaves = saves.FindAll(save => save.time == timeMax);

 

 

 

셔플(미세한 편향, 비둘기집문제)

하지만 구조가 간단하므로 중요로직이 아니면 이걸로 처리한다 

using System.Linq;

//유니티버전
list = list.OrderBy(a => Random.value).ToList();

//닷넷버전
System.Random seed = new System.Random((Int32)DateTime.Now.Ticks);
list = list.OrderBy(a => seed.Next()).ToList();

 

셔플(완전한)

    public static void ShuffleList<T>(ref List<T> targetList)
    {
        for (int i = 0; i < targetList.Count; i++)
        {
            int j = Random.Range(0, targetList.Count);
            T t = targetList[i];
            targetList[i] = targetList[j];
            targetList[j] = t;
        }
    }

 

정렬//오름차순

creature_list.Sort();

 

정렬//내림차순 정렬

list.Sort((x, y) => y.CompareTo(x));

이것과 동일함

List<double> A;
List<double> B;

//동일버전
list.Sort((A, B) => B.CompareTo(A));

//람다 긴버전
list.Sort(delegate (var a, var b)
{
    return b.CompareTo(a);

});

//if방식
list.Sort(delegate (var a, var b)
{
    if (a > b)
    {
        return -1;
    }
    if (a < b)
    {
        return 1;
    }
    return 0;
});

//for방식
for (int i = 0; i < list.Count; i++)
{
    for (int j = i + 1; j < list.Count; j++)
    {
    	var a=list[i];
    	var b=list[j];
        if (a > b)
        {
            var t=a;
            a=b;
            b=t;
        }
    }
}

 

 

 

'Unity > C#' 카테고리의 다른 글

유니티 각도계산 모음  (0) 2017.11.06
유니티 함수 정리  (0) 2017.07.02
c# list와 array속도 비교  (3) 2017.01.25
posted by 모카쨩
2017. 1. 25. 01:56 Unity/C#

중계서버 코딩할일이 생겨서 가장 부하가 많이 걸리는 array에 접근해봤습니다

타입은 앞으로 가장 많이 쓰이게될 long형


비교항목은 다음과 같습니다

1. 초기화속도 비교

2. 입력속도 비교

3. 일반 Add 속도 비교

4. 일반 Delete 속도 비교




결론

1. 초기화속도 비교 = array가 list보다 40배 빠름

2. 입력속도 비교 = array가 list보다 2배 빠름

3. 일반 Add 속도 비교 =  array가 list보다 1.07배 빠름

4. 일반 Delete 속도 비교 =  동일함


=이 일로 mBuffer라고 해서 전용 구조체 하나 만들어 뒀습니다 ㅡ_ㅡ;;

  array가 가장 맨 처음에 나온거니 당연하다고 하면 당연하지만 설마 Delete에서 비효율적인 코드와 동일하게 측정될줄은 몰랐네요

  

여기에 쓰인 코드는 프로그램에서 구동하에 상용이든 비상용이든 자유롭게 가져다 쓰셔도 됩니다

다만 스크랩이나 재게시는 안 되여~

'Unity > C#' 카테고리의 다른 글

유니티 각도계산 모음  (0) 2017.11.06
유니티 함수 정리  (0) 2017.07.02
c# list(리스트) 관련  (0) 2017.03.23
posted by 모카쨩

  • total
  • today
  • yesterday

Recent Post

저사양 유저용 블로그 진입