블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday


링크 : http://crampstory.tistory.com/29

반응형
Posted by blueasa
, |

Sorting Arrays

Programming/C# / 2014. 11. 21. 11:53

Sorting Arrays [C#]

This example shows how to sort arrays in C#. Array can be sorted using static method Array.Sortwhich internally use Quicksort algorithm.

Sorting array of primitive types

To sort array of primitive types such as intdouble or string use method Array.Sort(Array) with the array as a paramater. The primitive types implements interface IComparable, which is internally used by the Sort method (it calls IComparable.Com­pareTo method). See example how to sort int array:

[C#]

// sort int array
int[] intArray = new int[5] { 8, 10, 2, 6, 3 };
Array.Sort(intArray);
// write array
foreach (int i in intArray) Console.Write(i + " ");  // output: 2 3 6 8 10

or how to sort string array:

[C#]

// sort string array
string[] stringArray = new string[5] { "X", "B", "Z", "Y", "A" };
Array.Sort(stringArray);
// write array
foreach (string str in stringArray) Console.Write(str + " "); // output: A B X Y Z

Sorting array of custom type using delegate

To sort your own types or to sort by more sophisticated rules, you can use delegate to anonymous method. The generic delegate Comparison<T> is declared as public delegate int Comparison<T> (T x, T y). It points to a method that compares two objects of the same type. It should return less then 0 when X < Y, zero when X = Y and greater then 0 when X > Y. The method (to which the delegate points) can be also an anonymous method (written inline).

Following example demonstrates how to sort an array of custom type using the delegate to anonynous comparison method. The custom type in this case is a class User with properties Name and Age.

[C#]

// array of custom type
User[] users = new User[3] { new User("Betty", 23),  // name, age
                             new User("Susan", 20),
                             new User("Lisa", 25) };

[C#]

// sort array by name
Array.Sort(users, delegate(User user1, User user2) {
                    return user1.Name.CompareTo(user2.Name);
                  });
// write array (output: Betty23 Lisa25 Susan20)
foreach (User user in users) Console.Write(user.Name + user.Age + " ");

[C#]

// sort array by age
Array.Sort(users, delegate(User user1, User user2) {
                    return user1.Age.CompareTo(user2.Age); // (user1.Age - user2.Age)
                  });
// write array (output: Susan20 Betty23 Lisa25)
foreach (User user in users) Console.Write(user.Name + user.Age + " ");

Sorting array using IComparable

If you implement IComparable interface in your custom type, you can sort array easily like in the case of primitive types. The Sort method calls internally IComparable.Com­pareTo method.

[C#]

// custom type
public class User : IComparable
{
  // ...

  // implement IComparable interface
  public int CompareTo(object obj)
  {
    if (obj is User) {
      return this.Name.CompareTo((obj as User).Name);  // compare user names
    }
    throw new ArgumentException("Object is not a User");
  }
}

Use it as you sorted the primitive types in the previous examples.

[C#]

// sort using IComparable implemented by User class
Array.Sort(users);  // sort array of User objects



출처 : http://www.csharp-examples.net/sort-array/

반응형
Posted by blueasa
, |

아이튠즈 12가 나온 현재 기존의 긴 벨소리 넣는 방법은 막혔네요.

아래 링크의 방법은 테스트 해보니 잘 됩니다.

좀 더 복잡해지긴 했지만..

이렇게 넣을 순 있네요.



링크 : http://cayty.tistory.com/1911

반응형
Posted by blueasa
, |


링크 : http://goodvision.tistory.com/41

반응형
Posted by blueasa
, |
void OnGUI()
 {
if (Event.current.clickCount == 2)
{
            Debug.Log("Tap Double Click");
}
 }



반응형

'Unity3D > Script' 카테고리의 다른 글

외부 이미지 다운로드 후 png 파일 저장 하는 방법  (0) 2014.12.02
Load Textrue with WWW  (0) 2014.12.02
LightMap 동적 로딩.  (0) 2014.10.01
좀 더 복잡한 데이터 저장하기  (6) 2014.09.25
Unity Serializer  (0) 2014.09.25
Posted by blueasa
, |

구글 크롬 브라우저를 이용하면 더 편리하게 유튜브 동영상을 다운로드 할 수 있다 관련링크 http://freeappl.com/?p=7930
스마트폰 유튜브 동영상 다운로드 어플을 보려면 오른쪽 링크를 클릭 http://youtu.be/x4ydRbduAIk
유튜브 동영상 mp3로 다운로드 저장하는 방법 http://youtu.be/Tb8c0aeNeuA

링크 : http://jobfind.tistory.com/178


반응형
Posted by blueasa
, |

도탑전기 분석 슬라이드

Link / 2014. 11. 12. 11:23



반응형
Posted by blueasa
, |
좋은 확장 프로그램인 것 같아서 본문 채로..



Visual Studio 2012, 2013 으로 Unity3d 스크립팅 하시는 분들에게 유용할만한 글


안녕하세요~ 얼마전에 퇴직하고, 내일부터 새회사에 출근하는 만2년 된 게임 플머 뎡형입니다.
전 회사에서도 1년 6개월정도 유니티를 썼었고, 새 회사에서도 유니티를 쓰게 될 예정입니다.
퇴직과 이직 사이... 여행이나 방콕은 취향에 맞지않아 전혀 안해본 분야에 심취해봤습니다.

그것은 바로! 'Visual Studio Extension'!!!

이것을 시작한 계기는, 개인적으로 Visual Studio를 많이 사용하고 특히 Unity3d C# Script하는게
대부분입니다. 이때 많이 하는 것중의 하나가 코딩하다가 모르거나 아리까리 한 것을 google 검색 한뒤
구글 검색에 나온 docs.unity3d.com/ScriptReference/[검색어] 링크로 이동 하거나 누군가의
블로깅 내용으로 이동하는 것입니다.

----------------------------------------------------------------------------------

주로 했던 행동을 요약하면,

코딩 한다 => 검색할게 생겼다 => 웹브라우져를 켠다 => 구글로 이동한다 => 검색어를 친다 => 결과를 확인한다

이렇게 6단계의 과정을 거칩니다.

그래서 생각한것이 예전에 Visual studio에 Macro라는게 있었던것 같아 찾아보니 Visual studio 2010 까지만 있고
이후 버전에는 없어졌다고 하더라구요. 그래서 그와 비슷한 기능을 하는것이 확장(Extension)이라는 시스템이 있더라구요.
확장에 대해서 좀 검색하니 Visual Studio 2012 or 2013 SDK를 설치하고 Visual Studio Package 형식의 프로젝트를 통해
만들 수 있다는걸 알아냈습니다. 바로 받아서 새프로젝트 만드니 이건 왠걸...

파일이 한두개도 아니고 여러개에 C#코드만 있는게 아니라 XML파일이 있는데 그게 중요한 역할을 하더라는...
그나마 C#은 콘솔, Winform, WPF는 익숙해서 분석하거나 만드는데 무리가 없는데 XML의 문법에 대해서는
MSDN에 의존할 수 밖에 없어 쉽지가 않았습니다. 일단 이 분야에 예제가 많지 않고, 있는 것도 꽤나 복잡한
프로젝트 예제 밖에 없었습니다. 예제 분석하다가 이걸로 의욕잃고 시간 잃을것 같아 그냥 새프로젝트에 나온
템플릿 파일 내용을 시작으로 작업에 들어갔습니다.

----------------------------------------------------------------------------------

이쯤에서부터는 작업의 상세 과정보단 목적과 기능에 대해서 말하는게 좋을듯합니다.

위 과정을 아래와 같이 단축시키고 싶었습니다.

코딩 한다 => 검색할게 생겼다 => 검색어를 검색하는 웹페이지로 연결한다 => 결과를 확인한다

이것이죠. 그래서 여차저차해서 이 기능을 구현했습니다! Visual Studio의 텍스트 에디터에서 검색을
원하는 단어를 선택(영역 드래그나 그냥 단어 근처에 앵커(대문자 I 모양)를 두면 됨)하고 원하는 기능의 
메뉴 단축키를 누르면 끝!

--- 메뉴 기능 ---
유니티 설치 폴더 문서에서 검색 - Unity3d Local Document (Ctrl+F1, Ctrl+F1)
 유니티 문서 웹사이트에서 검색  - Unity3d Web Document (Ctrl+F2) 
 접두어와 함께 구글에서 검색    - Google Search (Shift+F1) 
 접두어와 함께 네이버에서 검색  - Naver Search (Shift+F2)

--- Visual Studio Gallary ---

Visual Studio 2012 지원
Visual Studio 2013 지원

여기다가 올려놓고 사용법도 적어놨습니다. 그리고 Github에 프로젝트 소스를 올려놨고 License는 MIT로 했으니
마음대로 하셔도 됩니다. 저도 이런거 많이 올려본건 아니지만 뭐 괜찮겠죠ㅎ
영어로 적긴 했는데 어려운 내용은 없을 듯(저도 영어 그렇게 잘하는건 아님...ㅎㅎ)

많이들 활용해주세용! 피드백은 뭐... 업데이트는 음... 해야죠ㅎ 제가 이 분야에는 초보라 빠른 처리까지는 못해도
저도 쓸 예정인 물건이라 치명적인 버그나 자주 느껴지는 불편사항등은 업데이트 할겁니다. 아마도...ㅎ




반응형
Posted by blueasa
, |

WinForm에서 커서 파일을 Resources에 넣고 쓰는 방법(VS2013 한글판 기준)


[설정]

1. 프로젝트-(맨아래)프로젝트 속성 Click or 솔루션 탐색기-해당 프로젝트에서 우클릭-속성 Click

2. 리소스-리소스 추가(R) 우측의 화살표 Click

3. 기존 파일 추가(E) Click

4. 원하는 커서 파일(*.cur) 선택해서 추가.(예: Arrow.cur 추가)


[사용방법]

5. 커서를 사용하는 곳에 대입.

    예) Cursor myCursor = new Cursor(new System.IO.MemoryStream(Properties.Resources.Arrow));



참조 : http://csharphelper.com/blog/2013/03/load-a-cursor-from-a-resource-in-c/

반응형
Posted by blueasa
, |

실행할 때, 문제는 없는 데 유니티(에디터)를 종료할 때 아래와 같은 에러메시지를 확인..


CompareBaseObjectsInternal can only be called from the main thread.

Constructors and field initializers will be executed from the loading thread when loading a scene.

Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.


어디가 문젠지 헤메다가 알게 된 건

MonoBehaviour를 상속받아 쓰는데도 생성자/소멸자를 사용한 부분이 있었다.
이 번 문제는 종료할 때 나면서 소멸자쪽의 문제였던 것 같은데..
아무튼 생성자/소멸자를 Awake/OnDestroy 등으로 모두 교체했다.

그리고 아래는 같은 에러 관련 참조할만한 포스팅..



반응형
Posted by blueasa
, |