System.out.println("Hello, World");

PHP와 Redis를 연결할려면 다음과 같은 패키지들이 필요하다


igbinary

phpredis


1. igbinary를 PECL로 이용하여 설치한다

pecl instsall https://pecl.php.net/get/igbinary-1.2.1.tgz


2. phpredis를 PECL로 이용하여 설치한다.

pecl instsall https://pecl.php.net/get/redis-2.2.7.tgz


3. 설치가 모두 완료되었으면 php.ini 파일에다가 다음과 같이 넣어준다.

vi /etc/php5/apache2/php.ini


extensions = igbinary.so

extensions = redis.so


4 그리고 아파치 서버를 재시작한다.

/etc/init.d/apache2 restart


5. 아무 페이지에 phpinfo()를 출력하도록 하여 Redis나 igbinary가 항목에 존재하는지 체크한다.


6. 레디스가 제대로 연동되는지 다음과 같이 만들어서 확인한다.

 $redis = new Redis();

 $redis->connect(’127.0.0.1’, 6379);

 $redis->set(’key’, ’REDIS TEST’);

 echo $redis->get(’key’);



- php화면에 REDIS TEST가 존재하면 정상적으로 설정된것이다.


Posted by 김마농


W: Failed to fetch http://kr.archive.ubuntu.com/ubuntu/dists/trusty-updates/main/binary-amd64/Packages  Hash Sum mismatch


W: Failed to fetch http://kr.archive.ubuntu.com/ubuntu/dists/trusty-updates/main/binary-i386/Packages  Hash Sum mismatch


E: Some index files failed to download. They have been ignored, or old ones used instead.


위와 같이 apt-get update할때 에러가 발생할때 다운받는 주소인 kr.archive.ubuntu를 바꿔줘야 한다.


1. 다음 파일을 vi편집기로 연다.

sudo vi /etc/apt/sources.list


2. vi이 치환하는 명령어를 사용하여 다음과 같이 교체한다.

:%s/kr.archive.ubuntu.com/ftp.daumkakao.com/g

:%s/security.ubuntu.com/ftp.daumkakao.com/g

:%s/extras.ubuntu.com/ftp.daumkakao.com/g


3. 그리고 다시 update와 upgrade를 시도해주면 된다.

apt-get update

apt-get upgrade


Posted by 김마농



Posted by 김마농

c# foreach와 Out

2012. 9. 3. 10:57 : 프로그래밍

1. foreach

foreach문은 배열(Array)나 콜렉션(Collection)에 있는 원소들을 차례대로 순회하는 반복문이다.


foreach(자료형 변수이름 in 배열이나 콜렉션)

실행블록;


이렇게 쓰인다.


ex)

class ForeachTest

{

public static void Main()

{

int[] values = {1,2,3,4,5};

foreach(int value in values) // Values안에 있는 각 요소 수 만큼 반복한다.

{

Console.WriteLine(value);

}

}

}


int형 배열 Values를 선언한다. 배열은 여러 개의 자료를 담기 위해 메모리에 연속적인 공간을 마려해 놓은 것을 말한다. 각각의 공간은 크기가 같아야 하므로 항상 배열의 자료형을 명시해줘야 한다. 7행의 문장은 int 형 배열을 선언하고 1,2,3,4,5 다섯개의 숫자를 배열에 입력하고 있다.

9행에서 foreach문이 시작된다. int value in Values의 문장은 Values안에 있는 원소를 한개씩 꺼내서 value에 담아 넣는 역할을 한다. 이떄 value와 Values의 자료형은 일치해야 한다.


2. out

매개변수는 변수의 사용 목적에 따라 2가지로 나뉜다. 

 - 출력 매개변수(out parameter) : 서버에서 클라이언트로 값을 전달할 목적으로 사용된다.

 - 입력 매개변수(inparameter) : 클라이언트에서 서버로 값을 전달할 목적으로 사용된다.

보통 메소드는 매겨변수를 사용하여 입력을 받고 리턴을 사용하여 출력하지만 출력 매개변수를 사용해도 출력할 수 있다.

ex)

DividePlus(10,3,out nRemainder2),nRemainder2);

public static int DividePlus(int a, int b, out int c)

{

            c=a%b;

            return a/b;

}


out 키워드가 사용되면 out 키워드를 사용해서 호출한 변수에, 그 함수가 끝날때 그 값을 다시 저장해주는 역할을 한다. 다시 말해서 nRemainder2 변수는 out 키워드를 이용하여 DividePlus() 메소드의 C로 넘겨졌으며, 함수 안에서 변경되는 c의 값은 함수의 제어가 끝날때, nRemainder2에 적용되는 것이다. 그러므로, 함수안에서 c에 나머지 값을 저장하면 그 값이 nRemainder2에 저장되어 정상적인 결과를 출력한다.

Posted by 김마농



Vector2D A;

Vector2D B;


A.Set(1,1);

B.Set(4,2);

Vector2D tmp = B - A;

tmp.normalize();

m_reDraw.x += tmp.x;

m_reDraw.y += tmp.y;


A와 B의 방향벡터를 구한다. 그후 정규화 시키고 A의 x에다 방향벡터 x를 계속 더해 주고

A의 y에다 방향벡터의 y를 계속 더해주면 직선으로 이동하게 된다.

Posted by 김마농

Rect

Rect 구조는 주로 2차원 작업에 사용되며 UnityGUI 시스템은 위치 카메라뿐만 아니라 광범위하게 사용된다.

new Rect(float left, float top, float width, float height)

  [사각형  위치   ]   [  너비    ] [    높이   ]

Posted by 김마농

1. Transform

- Scene의 모든 개체는 변화된다. 개체의 위치, 회전 그리고 스케일을 저장하기 위해 사용되어진다. 

  모든 변호나은 계층적으로 위치, 회전, 및 규모를 적용할 수 있는 부모를 가질 수 있다. 이것은 계층패널에

  서 볼 수 없었던고, enemerator를 지원하고 자식들을 통해서 루프할 수 있다.



변수 

 

position 

전체 공간에서 변환의 위치 

localPosition 

부모의 변환에 대해 상대적인 변환 위치 

eulerAngles 

오일러 각도에서의 회전 

localEulerAngles 

부모의 변환 회전에 대해 상대적인 오일러 각도에서의 회전 

right 

전체 공간에서 빨간 축의 변환 

up

전체 공간에서 초록 축의 변환 

forward 

전체 공간에서 파란 축의 변환 

 rotation

전체 공간에 저장된 변환의 위치 

localRotation 

부모의 변환 회전에 대해 상대적인 변환 회전 

localScale

부모에 대해 상대적인 변환 스케일 

parent 

부모의 변환 

worldToLocalMatrix 

지역공간에서 전체공간으로부터의 지점을 변환한 매트릭스(읽기 전용) 

localToWorldMatix 

전체공간에서  지역공간으로부터의 지점을 변환한 매트릭스(읽기 전용)

 root

계층 구조에서 최상위 변환을 되돌려라 

childCount 

변환이 가진 자식의 수 

lossyScale 

개체의 글로벌 스케일(읽기 전용) 



 함수

 

 Translate

방향과 거리의 변환을 움직이라 

Rotate 

회전을 적용한다. Z축, X축, Y축(순서대로) 

RotateAround 

변환을 회전하라 Axis 통해 지나가는 point 전체 좌표에 angle 각도 

LookAt 

[타겟]의 현재 위치에서 앞으로 벡터 점을 변환하고 회전한다. 

TransformDirection 

Direction 지역 공간에서 전체 공간까지 변환한다.

InverseTransformDirection

반대로 Direction 지역공간에서 전체 공간까지 변환한다. 

TransformPoint 

position 지역공간에서 전체 공간까지 변환한다. 

InverseTransformPoint

반대로 postion 지역공간에서 전체 공간까지 변환한다.

DetachChildren 

Unparents의 모든 자식 

Find 

자식을 찬는다. 

IsChildOf 

자식을 변환한다. 


Posted by 김마농

1. GameObject

- Object로 부터 상속 : 유니티 Scene들 안에서 모든 속성들을 위한 Base 클래스


 변수

 

 isStatic

 만약 게임오브젝트가 static이면 Editor는 오직 API를 명시한다.

 transform

 개체의 위치, 회전, 그리고 스케일

 rigidbody

 물리학 시뮬레이션을 통해 개체의 위치 제어

 camera

 카메라는 플레이어가 월드를 바라보는 장치

 light

 Light는 유니티 조명의 모든 요소들을 제어할 수 있다.

 animation

 애니메이션 컴포넌트는 애니메이션을 재생하기 위하여 사용된다.

 constantForce

 힘이 지속적으로 적용된다. 개체에 지속적인 힘을 적용하는데 사용되는 작은 클래스

 renderer

 렌더는 객체가 화면에 나타나게 만드는것.

 audio

 3D에서 오디오 소스를 표현하는 방식

 guiText

 GUI에서 텍스트 문자열이 표시된다.

 networkView

 네트워크 멀티 플레이어 게임의 재료

 guiTexture

 2D GUI에서 텍스쳐 이미지가 사용된다.

 collider

 모든 collider의 기본 클래스

 hingeJoint

 2개의 rigidbody의 HingleJoing 그룹과 함께 Hinge에 의해 연결된 이동 제한한다.

 particleEmitter

 입자 방출을 위한 스크립트 인터페이스

 layer

 게임 오브젝트 안에 있는 레이어

 active

 GameObjecr가 활성되었나 true/false 지정한다.

 tag

 태그는 게임 오브젝트를 규명하기 위해 사용된다. 사용하기전 매니저에서 선언한다.



Posted by 김마농

1. Standard Assets, Pro standard Assets, 혹은 Plugins 아래의 모든 스크립트 컴파일

-> 이 폴더내의 스크립트들은 다른 폴더의 스크립트를 "직접적으로 접근 할 수 없다.(참조 불가능)

클래스나 변수를 직접적으로 참조 할 수는 없지만 GameObjec.SendMessage를 통해 간접적으로 가능하다.


2. Standard Assets/Editor, Pro standard Assets/Editor 혹은 Plugins/Editor의 컴파일 

-> 메뉴 아이템이나 커스텀 위자드처럼 UnityEditor 네임 스페이스를 사용하는 에디터 코드를 작성하고자 한다면 이 폴더내에 스크립트가 있어야 한다.


3. Editor의 컴파일

-> 2번과 같이 UnityEditor 네임 스페이스를 사용하지만 표준 폴더(Standard Assets)이외의 위치에 있는 스크립트를 컴파일한다. 모든 이전 그룹을 참조가능하지만 4번 그룹은 참조가 불가능하다.


4. 그밖의 모든 스크립트의 컴파일

-> 위 그룹중 어디에도 속하지 않은 스크립트. 

이 그룹에 속한 스크립트는 1번 그룹의 모든 스크립트를 접근가능하게 되며 스크립트 언어간 교차호출이 가능하게 된다. 예를 들어 자바스크립트에서 C# 스크립트를 사용하고 싶다면 C#스크립트를 Standard Assets 폴더내에 자바 스크립트를 밖에 둔다. 이 상태에서는 자바스크립트가 직접 C# 스크립트를 호출 할 수 있다.

Posted by 김마농

유니티 내부의 스크립팅은 동작들(behaviours)이라 불리는 스크립트 오브젝트들을 게임 오브젝트들에 Attatch 시킴으로써 이루어진다. 스크립트 오브젝트를 내부의 서로 다른 함수들은 어떤 이벤트들상에서 호출된다.


1. OnGUI : 렌더링 및 GUI 이벤트를 처리한다.

- GUI.DrawTexture : 사각형내의 텍스쳐를 그린다.

- 매개변수

Position : 화면의 직사각형내에 질감을 그릴 수 있다.

image : Texture 표시

scalemode : 그것의 비율내에서 얻을 수 있는 비율에 맞지 않는 이미지를 확장한다.

alphaBlend : 알파로 표시

ImageAspect : 비율이 원본 이미지에 사용된다.


2. Start()

- Start는 라이프 사이클 중 딱 한번 호출된다. Awake와 차이점은 스크립트 인스턴스가 활성화된 경우에만 시작된다. Awake는 항상 어떤 기능을 사용하기전에 호출되어 초기화 시킬수 있다.

- 모든 스크립트 인스턴스는 Awake)가 호출된뒤 Star()가 실행된다.


3. Update()

- 매 프레임마다 호출되어 실행될 함수

- Update는 게임 행동의 여러 종류를 구현하는 가장 일반적인 함수

- 하나의 프레임이 렌더링 되기전에 호출된다.


4. Texture2D

- 2D 텍스쳐를 처리하기 위한 클래스


5. Resources.Load

- Resources 폴더내의 하위 경로에 저장된 파일을 불러온다. 하위 경로에 파일이 발견되면 파일을 반환하고, 그렇지 않은 경우 null이 반환된다. 하위경로는 Resources 폴더와 상대적인 경로를 가지며, 확장자는 반드시 제외되어야 한다. 

ex)Resources.Load("파일명")


6. Awake() -> Start() -> Update() -> LateUpdate()

Posted by 김마농