using UnityEngine;
using System.Collections;

//FollowingCamera
//주인공 캐릭터를 카메라가 일정한 거리를 유지한 채로 따라다니게 합니다.
public class FollowingCamera:MonoBehavior
{
public float distanceAway=7f;
public float distanceUp=4f;

//따라다닐 객체를 지정합니다.
public Transform follow;

void LateUpdate(){
//카메라의 위치를 distanceUp만큼 위에, distanceAway만큼 앞에 위치시킵니다.
transform.position = follow.position + Vector3.up *distanceUp-Vector3.forward * distanceAway;
}
}


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

C#기술면접 객체지향프로그래밍?  (0) 2018.12.10
C# 해외 면접시 TOP50  (0) 2018.12.10
TouchPad.cs  (0) 2018.12.10
예제로 배우는 C#  (0) 2018.12.07
unity player movement.cs 플레이어 움직임 /유니티  (0) 2018.12.07
using UnityEngine;

using UnityEngine.UI;

using System;

using System.Collections;



public class touchpad:MonoBehavior{



//_touchPad 오브젝트를 연결합니다.

private RectTransform _touchPad;



//터치 입력중에 방향 컨트롤러의 영역안에 있는 입력을 구분하기 위한 아이디어입니다.

private int_touchId=-1;



//입력이 시작되는 좌표입니다.

private Vector3_startPos =Vector3.zero;



//방향 컨트롤러가 원으로 움직이는 반지름입니다.

public float _dragRadius=60f;



//플레이어의 움직임을 관리하는 PlayerMovement 스크립트와 연결합니다.

//방향키가 변경되면 캐릭터에게 신호를 보내야 하기 때문입니다.

public PlayerMovement _player;

//버튼이 눌렸는지 체크하는 bool 변수입니다.

private bool _buttonPressed=false;



void Start(){

// 터치패드의 RectTransform 오브젝트를 가져옵니다.

_touchPad =GetComponent<RectTransform>();



//터치패드의 좌표를 가져옵니다. 움직임의 기준값이 됩니다.

_startPos=_touchPad.position;

}



public void ButtonDown(){

//버튼이 눌렸는지 확인해 놓습니다.

_buttonPressed =true;

}



public void ButtonUp(){

_buttonPressed=false;

//버튼이 떼어졌을 때 터치패드와 좌표를 원래 지점으로 복귀시킵니다.

HandleInput(_startPos);

}



void FixedUpdate()

{

//모바일에서는 터치패드 형식으로 여러 터치 입력을 받아 처리합니다.

HandleTouchInput();
//모바일이 아닌 Pc나 유니티 에디터 상에서 작동할 때는 터치입력이 아닌 마우스로 입력 받습니다.
#if Unity_EDITOR || UNITY_STANDALONE_OSX||UNITY_STANDALONE_WIN || UNITY_WEBPLAYER

HandleInput(Input.mousePosition);

#endif
}

void HandleTouchInput()
{
//터치 아이디 (touchId)를 매기기 위한 번호입니다.
int i =0;
//터치 입력은 한 번에 여러 개가 들어올 수 있습니다. 터치가 하나 이상 입력되면 실행되도록 합니다.
if(Input.touchCount>0){
//각각의 터치 입력을 하나씩 조회합니다.
foreach(Touch touch in Input.touches){
i++;
//현재 터치 입력의 x,y좌표를 구합니다.
Vector3 touchPos = new Vector3(touch.position.x , touch.position.y);
//터치 입력이 방금 시작되었다면, 혹은 TouchPhase이면 ,
if(touch.phase == TouchPhase.Began){
//그리고 터치의 좌표가 현재 방향키 범위 내에 있다면
if(touch.position.x<=(_startPos.x + _dragRadius)){
//이 터치 아이디를 기준으로 방향 컨트롤러를 조작하도록 합니다.
_touchId=i;

}
}
//터치 입력이 움직였다거나, 가만히 있는 상황이라면
if(touch.phase == Touchphase.Moved|| touch.phase==TouchPhase.Stationary)
{
//터치 아이디로 지정된 경우에만
if(_touchId==i){
//좌표입력을 받아들입니다.
HandleInput
(touchPos);
}
}
//터치 입력이 끝났는데.
if(touch.phase == TouchPhase.Ended)
{
//입력받고자 했던 터치 아이디라면
if(_touchId==i){
//터치 아이디를 해제합니다
_touchId=-1;

}
}
}

}

void HandleInput( Vector3 input){
//버튼이 눌러진 상황이라면
if(_buttonPressed){

//방향 컨트롤러의 기준 좌표로부터 입력받은 좌표가 얼마나 떨어져 있는지 구합니다.
Vector3 diffVector = (input -_startPos);

//입력 지점과 기준 좌표의 거리를 비교합니다. 만약 최대치 보다 크다면
if(diffVector.sqrMagnitude> _dragRadius * _dragRadius)
{
//방향 벡터의 거리를 1로 만듭니다.
diffVector.Normalize();

//그리고 방향 컨트롤러는 최대치만큼만 움직이게 합니다.
_touchPad.position = _startPos+diffVector*_dragRadius;

//현재 입력 좌표에 방향키를 이동시킵니다.
}
else//입력 지점과 기준 좌표가 최대치보다 크지 않다면
{
//현재 입력 좌표에 방향키를 이동시킵니다.
_touchPad.position=Input;
}
}
else
{
//버튼에서 손이 떼어지면 , 방향키를 원래 위치로 되돌려 놓습니다.

_touchPad.position=_startPos;
}
}
//방향키와 기준 지점의 차이를 구합니다.
Vector3 diff = _touchPad.position =_startPos;

//방향키의 방향을 유지한 채로 거리를 나누어 방향만 구합니다.
Vector2 normDiff = new Vector3(diff.x/_dragRadius,diff.y/_dragRadius);

if(_player != null){
//플레이어가 연결되어 있으면 ,플레이어에게 변경된 좌표를 전달해줍니다.
_player.OnStickChanged(normDiff);
}

}
}




using 이걸 쓰겠다

system 시스템이라는 보따리에

generic 및 여러 라이브러리? 가있다


c#은 시작시에 main(){}함수를 끼고 시작한다


console 이라는 도화지에 console.readkey, console.writeline 은

각각 console.writeline("hello csharp") 을 쓰겠다는 것이고 run 하면 삭제된다

console.readkey()키를 읽어오겠다는 것이고 다음줄에서 깜빡깜빡 키입력을 기다리는것이다.

int a= 3;

a가 정수일경우

string b;

b= a.ToString();을 실행하면 

정수였던 a 가 ToString()으로 읽혀서 문자열로 출력된다.


maint( string [] arg){

//일경우


console.writeline("hello csharp"+ b);

//출력시 hello csharpb


}


콘솔창에 hellocsharp 클래스 경로 수정후 

hellocsharp 과 test test

라고 입력하면

2가 출력되는데 이유는 string 값에 2개가 입력되기 때문이다.


위에는 비주얼스튜디오에서 console.form 으로 만들었을때 프로젝트도


winform프로젝트는 fomr 을 주고 레이블을 삽입후

레이블 밸류값을 수정 가능하고

클릭 이벤트 및 객체에 마우스를 올릴때 손모양이 바뀌는 기능을 제공하며


함수에는 여러 이벤트를 컨트롤하는 이벤트 핸들러가 있고 대부분 ide에서 제공한다. 



+ Recent posts