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

'분류 전체보기'에 해당되는 글 136건

  1. 2016.04.11 PHP <-> PHPRedis 연결하기
  2. 2016.04.11 apt-get update 실패시 대처
  3. 2012.09.03 유니티 ResourceManager
  4. 2012.09.03 c# foreach와 Out
  5. 2012.08.30 유니티 이동
  6. 2012.08.30 유니티 Rect
  7. 2012.08.30 유니티 Time.time과 Time.deltaTime
  8. 2012.08.29 유니티 GameObject와 Component 관계
  9. 2012.08.29 4. Transform
  10. 2012.08.29 3. 유니티 Component와 GameObject 1

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. Time.deltaTime

float Time.deltatime

초단위로 시간이 카운트되며 마지막프레임에서 완료된다.


2. Time.time

float Time.time

선언된 시점에서 카운트가 시작된다.


Start()에서 m_lastTime을 선언한다. 하지만 Start()에서 선언되었기 때문에 0이 된다. 


OnGUI에서 float time = Time.time 선언해줘서 카운트가 시작된다. 


time - m_lastTime > 0.1이 성립하기 위해서 0,1초 지난후 이미지가 이동하기 시작한다. 


만약 0.1초 대신 2를 집어넣었으면 2초후에 이동하게 된다.



위처럼 Start에서 m_lastTime 선언해주고 OnGUI에서도 float time = Time.time을 선언해준다. 


똑같이 m_lastTime은 start()에서 선언되었기 때문에 0이며 time은 계속 카운트된다.


그리하여 time - m_lastTime으로 0.1초 이상일때 이미지가 이동하게 된다. 


하지만 m_lastTime = time으로 선언해주었기 때문에 0이었던 m_lastTime은 0.1이 된다. 


time - m_lastTime > 0.1을 만족하기 위해 time은 계속 돌아가며 계속 0.1초마다 이미지가 이동하게 된다. 


만약 여기서 0.1 대신 2를 집어넣었다면 2초마다 이미지가 이동하게 되어 뚝 뚝 끊켜 보일 것이다.

Posted by 김마농

GameObject와 Component 관계를 이해하는 것이 매우 중요하다. 일단 간단히 정리하면 GameObject는 Component 객체를 담는 컨테이너(Container)다.

 

GameObject는 Transform 컴포넌트 객체를 한개 포함해야 한다. Transform 객체는 위치 정보, 스케일 정보, 회전 정보를 포함하며, 해당 객체를 활용해서 월드 공간에 객체를 위치할수 있다.

 

컴포넌트 객체 입장에서 게임 객체를 보면 모든 컴포넌트는 Component 파생 클래스다. Component 클래스는 자신이 포함된 게임 오브젝트 객체에 대한 참조를 가지고 있어야 한다. 즉 자신이 소속된 게임 오브젝트가 무엇인지 최소한 알아야 한다. gameObject 속성은 자신이 소속된 게임 오브젝트에 대한 참조값을 가진다.

 

실제 컴포넌트를 사용하는 과정에서 게임 오브젝트가 월드 좌표를 자주 사용된다. 이러한 이유로 Component 객체들은 gameObject 속성과 함께 Tranform 컴포넌트에 대한 참조를 제공한다. 위에서 언급했듯이 모든 게임 오브젝트는 한개의 Transform 객체를 가져야 한다는 내용을 기억해야한다. component 객체는 transform 속성이 바로 Transform 객체에 대한 참조 변수이다.

 

이론적으로 gameObject 속성은 널이 될수 없다. transform 속성은 필수적인 속성이지만 널이 될수도 있다.(이론적으로)

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 김마농