using UnityEngine; 

using System.Collections; 


public class PlayerCtrl : MonoBehaviour 

    public float velocity = 1.0f; 

    public LayerMask layer; 


    private CharacterController _controller; 


    private bool _isMove = false; 

    private Vector3 _destination = new Vector3(0, 0, 0); 


void Start () 

    { 

        _controller = gameObject.GetComponent<CharacterController>(); 

        _isMove = false; 


void Update () 

    { 


        RaycastHit _hit = new RaycastHit(); 


        //화면을 클릭 하면 땅바닥 좌표 저장. 

        if (Input.GetMouseButton(0)) 

        { 

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 


            if (Physics.Raycast(ray, out _hit, Mathf.Infinity, layer)) 

            { 

                _destination = _hit.point; 

                _isMove = true; 

            } 

        } 


        //땅바닥 좌표가 플레이어와 다르면 움직인다. 

        if (_isMove) 

        { 

            Move(); 

        } 


    //움직이는 함수 

    private void Move() 

    { 

        //목적지와 거리가 같으면 안 움직임 

        if (Vector3.Distance(transform.position, _destination) == 0.0f) 

        { 

            _isMove = false; 

            return; 

        } 


        Vector3 direction = _destination - transform.position; 

        direction = Vector3.Normalize(direction); 


        _controller.Move(direction * Time.deltaTime * velocity); 

    } 

'유니티3D > 함수' 카테고리의 다른 글

UNITY3D 자주쓰는 스크립트_4  (0) 2013.10.08
UNITY3D 자주쓰는 스크립트_3  (0) 2013.09.29
UNITY3D 자주쓰는 스크립트_2  (0) 2013.09.27
UNITY3D 자주쓰는 스크립트_1  (0) 2013.09.27
Rigidbody.AddForce()  (0) 2013.08.07

 

 fgets, fputs

 
#include<stdio.h>
#define LEN 20

typedef struct student
{
 char name[20];
 char stdnum[20];
 char school[20];
 char major[20];
 int year;
}Student;

void ShowStudentInfo(Student *sptr);


int main(void)
{
 Student arr[3];
 int i;

 for(i=0;i<3;i++)
 {
  fputs("이름: ",stdout); fgets(arr[i].name,LEN,stdin);
  fputs("학번: ",stdout); fgets(arr[i].stdnum,LEN,stdin);
  fputs("학교: ",stdout); fgets(arr[i].school,LEN,stdin);
  fputs("전공: ",stdout); fgets(arr[i].major,LEN,stdin);
  fputs("학년: ",stdout); scanf("%d",&arr[i].year);

  while(getchar() != '\n'); //enter이면 빠져나간다. 따라서 enter가 올때까지 읽어들여서 입력버퍼에 있는 값을 빼냄..
 }

 ShowStudentInfo(arr);
}

void ShowStudentInfo(const Student *sptr)
{
 int i;
 for(i=0;i<3;i++)
 {
  printf("이름 %s  ",sptr[i].name);
  printf("학번 %s  ",sptr[i].stdnum);
  printf("학교 %s  ",sptr[i].school);
  printf("전공 %s  ",sptr[i].major);
  printf("학년 %d  ",sptr[i].year);

  printf("\n");
 }
}

 

 


#include<stdio.h>


int main(void)

{


FILE * fp=fopen("c:\\project\\mystory.txt","wt");


if(fp==NULL)

{

puts("파일 오픈 실패!");

return -1;

}


fputs("#이름: 윤성우\n",fp);

fputs("#주민번호: 900208-10122589\n",fp);

fputs("#전화번호: 010-1111-2222\n",fp);


  fclose(fp);

return 0;

}


#include<stdio.h>

int main(void)

{

FILE * fp=fopen("c:\\project\\mystory.txt","at");


if(fp==NULL)

{

puts("파일 오픈 실패!");

return -1;

}


fputs("#즐겨먹는 음식: 짬뽕, 탕수육\n",fp);

fputs("#취미: 축구\n",fp);

  fclose(fp);

return 0;

}


#include<stdio.h>

int main(void)

{

char str[30];

int i=0;

FILE * fp=fopen("c:\\project\\mystory.txt","rt");


if(fp==NULL)

{

puts("파일 오픈 실패!");

return -1;

}

for(i=0;i<5;i++){

fgets(str, sizeof(str),fp);

printf("%s", str);

}


fclose(fp);

return 0;

}

 BulletCtrl 




using UnityEngine;

using System.Collections;


public class BulletCtrl : MonoBehaviour {

public Transform Tr;

public float speed = 500.0f;

public float damage = 10.0f;

private Vector3 spawnPoint;

public float fireRange = 300.0f;


// Use this for initialization

void Start () {

Tr = this.GetComponent<Transform>();

spawnPoint = Tr.position;

}

// Update is called once per frame

void Update () {

Tr.Translate(Vector3.forward * Time.deltaTime * speed);

if((spawnPoint - Tr.position).sqrMagnitude > fireRange)

{

RemoveBullet();

}

}

void RemoveBullet()

{

StartCoroutine(this.DestroyBullet());

}

IEnumerator DestroyBullet()

{

Destroy(this.gameObject);

yield return null;

}

}

 

 

 

 

 

 

'C' 카테고리의 다른 글

Visual Studio 단축키  (0) 2013.10.01
구구단(입력된 단수부터 출력)  (0) 2013.09.02



RaycastHIt

 //가상 선을 만드는 수. -> 가시적으로


Debug.DrawRay(firePos.transform.position,firePos.transform.forward* 5.0f,Color.green);

RaycastHit hit;

//가상선을 만들어 인식 가능하게 함.

//어디서 , 어느방향으로  ,구조체 hit 을 5 의길이 로...

if(Physics.Raycast(transform.position,transform.forward,out hit,5))

{

//catch the confliction.

if(hit.collider.gameObject.tag == "Door")

{

currentdoor = hit.collider.gameObject;

currentdoor.SendMessage("DoorCheck");

}


GameMenu~!!



using UnityEngine;

using System.Collections;


public class GUIManager : MonoBehaviour {

public AudioClip beep;

public GUISkin manuSkin;

public Rect menuArea;

public Rect PlayBtn;

public Rect InstructBtn;

public Rect quitBtn;

public Rect menuAreaNormalized;

// Use this for initialization

void Start () {

menuAreaNormalized = new Rect(menuArea.x * Screen.width - (menuArea.width*0.5f) ,menuArea.y * Screen.height -(menuArea.height*0.5f) ,menuArea.width ,menuArea.height);

}

// Update is called once per frame

void Update () {

}

void OnGUI()

{

GUI.skin = manuSkin;

GUI.BeginGroup(menuAreaNormalized);

if(GUI.Button(new Rect(PlayBtn),"Iand"))

{

StartCoroutine(ButtonAction("play"));

}

if(GUI.Button(new Rect(InstructBtn),"Instruction"))

{

}

if(GUI.Button(new Rect(quitBtn),"Quit"))

{

StartCoroutine(ButtonAction("quit"));

}

GUI.EndGroup();

}

IEnumerator ButtonAction(string buttonName)

{

audio.PlayOneShot(beep,1.0f);

yield return new WaitForSeconds(1.0f);

if(buttonName=="play")

{

Application.LoadLevel("Game2");

}else if(buttonName == "quit")

{

Application.Quit();

}else{ 

}

}

}

Photon (network)

using UnityEngine;
using System.Collections;

public class PhotonInit : MonoBehaviour {

 
 void Awake(){   //일단 접속.
  PhotonNetwork.ConnectUsingSettings("1.0");
 }
 
 void OnJoinedLobby(){
  Debug.Log ("Joined Lobby");
  PhotonNetwork.JoinRandomRoom();   //아무방이 나접속하라...
 }
 
 void OnCreatedRoom()
 {
  Debug.Log("Enter the room");
 }
 
 void OnJoinedRoom()
 {
  Debug.Log ("OnJoinedRoom");
 }
 
 void OnPhotonRandomJoinFailed()   //접속이 실패하면 이함수가 실행..
 {
  Debug.Log ("There is no room");
  PhotonNetwork.CreateRoom("My room",true,true,10);
 }
 
 void OnGUI()
 {
  GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
 }
}

 

 포 위아래로 콘트롤 하는 소 (mouse scroll)

 using UnityEngine;

using System.Collections;


public class CannonCtrl : MonoBehaviour {

private Transform tr;

private PhotonView pv;


// Use this for initialization

void Awake () {

pv = PhotonView.Get (this);

tr = GetComponent<Transform>();

}

// Update is called once per frame

void Update () { // 포 위아래로 콘트롤 하는소 스 .

if(pv.isMine){

float angle = Time.deltaTime * Input.GetAxis("Mouse ScrollWheel") * 300.0f;

tr.Rotate(angle, 0 ,0);

}

}

}


 TurretCtrl (Raycast 사용)

 using UnityEngine;

using System.Collections;


public class TurretCtrl : MonoBehaviour {

private PhotonView pv;

private Transform tr;

private Quaternion currRot;

// Use this for initialization

void Start () {

tr = GetComponent<Transform>();

pv = PhotonView.Get (this);

pv.observed = this;

Debug.Log(pv.viewID);

Debug.Log(pv.owner);

Debug.Log(pv.isMine);

}

// Update is called once per frame

void Update () {

if(pv.isMine){

Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);

RaycastHit hit;

if(Physics.Raycast ( ray, out hit, Mathf.Infinity)){

Vector3 localPos = tr.InverseTransformPoint(hit.point);

float angle = Mathf.Atan2 ( localPos.x, localPos.z) * Mathf.Rad2Deg;

tr.Rotate(0, angle* Time.deltaTime * 2.0f, 0);

}

// Debug.DrawRay(ray.origin, ray.direction * 100.0f, Color.green);

}else{

tr.rotation = Quaternion.Lerp(tr.rotation, currRot, Time.deltaTime);

}

}

void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info){

if(stream.isWriting){

stream.SendNext(tr.rotation);

}else{

currRot = (Quaternion) stream.ReceiveNext();

}

}

}


 


'유니티3D > 함수' 카테고리의 다른 글

케릭터 마우스 포인터지점으로 이동  (0) 2013.12.04
UNITY3D 자주쓰는 스크립트_3  (0) 2013.09.29
UNITY3D 자주쓰는 스크립트_2  (0) 2013.09.27
UNITY3D 자주쓰는 스크립트_1  (0) 2013.09.27
Rigidbody.AddForce()  (0) 2013.08.07


 

F9      현재 라인에 Breakpoint를 지정/해제 
Ctrl + Shift + F9    현재 Edit하고 있는 소스파일에 지정된 모든 Breakpoint 해제 
Ctrl + ]     '{'괄호의 짝을 찾아줌 ('{'에 커서를 놓고 눌러야 함} 
Ctrl + J, K     #ifdef 와 #endif의 짝을 찾아줌 
Ctrl + L     한 라인을 클립보드로 잘라내기 (Cut) 
Ctrl + Shift + L    한 라인을 삭제 
Alt + Mouse     블록 설정 세로로 블록 설정하기 (마우스로) 
Ctrl + Shift + F8    세로로 블록 설정하기 (키보드로), 취소할 때는 Esc키를 눌러야 함 
블록 설정 -> Tab    선택된 블록의 문자열을 일괄적으로 들여쓰기(Tab) 적용 
블록 설정 -> Shift + Tab   선택된 블록의 문자열을 일괄적으로 내어쓰기 적용 
Alt + F8    인덴트 정리. 범위 선택 후 사용하면 해당 범위를 표준 인덴트로 바꾸어줌.
Shift + F9    디버그 모드에서 해당 변수를 바로 Watch Window에 등록.
Ctrl + U    선택된 영역을 소문자로 바꿈
Ctrl + Shift + U    선택된 영역을 대문자로 바꿈 
Ctrl + Shift + 8    문단기호 표시/감추기 : Tab은 ^, Space는 .으로 표시 
Ctrl + D     툴바의 찾기 Editbox로 이동 
Ctrl + Up/Down Arrow    커서는 고정시키고 화면만 스크롤 시키기 
Shift + Alt + 커서 이동
Alt + 마우스 드래그 세로로 영역 선택
Shift + F12    선언으로 이동
=== 찾 기 ===
Ctrl +F3 현재커서의 단어 찾기
Ctrl +D 툴바의 찾기 Editbox로 이동
Ctrl + I 문자열 입력 점진적으로 문자열 찾기 (Incremental Search)
Ctrl + Shift + F3    현재 커서에 있는 문자열 찾기 backward 
SHIFT + ALT + O 프로젝트에 있는 파일 찾기 ( 비주얼 어시스트)
Alt + M 파일에서 method의 리스트를 보여준다.
Ctrl + ] '{}'괄호, #ifdef, #endif 의 짝을 찾아줌
F3      찾은 문자열에 대한 다음 문자열로 이동 (Next Search)
Ctrl + H     문자열 찾아 바꾸기 (Replace) 
=== 이동 관련 ===
CTRL + PGDOWN (or END) 문서 끝
CTRL + PGUP (or HOME) 문서 처음
F12 선언부로 가기
Ctrl + F2 현재 라인에 북마크 지정/해제
F2 지정된 다음 북마크로 이동
Ctrl + Shift + F2 지정된 모든 북마크를 해제
함수간 이동
=== 주석처리 ===
Ctrl+K, Ctrl+C 선택 영역 주석 처리 (.NET 2003, 2005)
Ctrl+K, Ctrl+U 선택 영역 주석 없앰 (.NET 2003, 2005)
=== 아웃라인 ===
Ctrl+M, Ctrl+L 모든 아웃라인 보이기/숨기기 (Edit.ToggleAllOutlining)
Ctrl+M, Ctrl+M 현재 아웃라인 보이기/숨기기 (Edit.ToggleOutliningExpansion)
Ctrl+M, Ctrl+H 선택영역 아웃라인 지정(Edit.HideSelection)
Ctrl+M, Ctrl+U 현재 아웃라인 삭제 (Edit.StopHidingCurre
Ctrl+M, Ctrl+P 모든 아웃라인 삭제(Edit.StopOutlining Text Editor)
=== 기 타 ===
ALT + F7 프로젝트 속성
Shift+Alt+Enter : 전체화면 토글
Ctrl + Shift + F9 현재 Edit하고 있는 소스파일에 지정된 모든 Breakpoint 해제
디버그 모드에서 Watch Window에서 추가하고픈 변수나 등등 앞에 커서를 위치 시킨후 Shift + F9
 
 
☆☆ Studio 단축키 ☆☆
♣ 일반 단축키
   - 모두 저장 : Ctrl + Shift + S
   - 문서창 닫기 : Ctrl + F4
   - 다음 문서 : Ctrl + F6, 이전 문서 : Ctrl + Shift + F6
   - 다음 도구 : Alt + F6
   - 들여 쓰기 : Teb, 내어 쓰기 : Shift + Teb
   - 주석 달기 : Ctrl + E + C, 주석 해제 : Ctrl + E + U
   - 파일에서 찾기 : Ctrl + Shift + F, 중단 : Alt + F3, S
   - 찾기 이전으로 : Ctrl + F3, 다음으로 : Shift + F3
   - 증분검색 정방향 : Ctrl + I, 역방향 : Ctrl + Shift + I
   - 문서 끝 : Ctrl + End, 시작 : Ctrl + Home, 행 이동 : Ctrl + G
   - 자동 줄바꿈 : Ctrl + E, W
   - 공백 보기 : Ctrl + E, S,   가로 공백 삭제 : Ctrl + E, \
   - #region 펼치기 & 접기 : Ctrl + M, M
   - 캡슐화 하기 : Ctrl  + K + S
   - 클립보드에 복사 : Ctrl + Shift + Num
   - 클립보드링 순환 : Ctrl + Shift + Insert
♣ 디버그시 단축키
   - 직접실행창 표시 : Ctrl + Alt + I
   - 모든 중단점 지우기 : Ctrl + Shift + F9
   - 중단점 추가 : Alt + F9
   - 중단점 설정/해지 : F9
   - 프로그램에서 사용하는 모든 모듈 보기 : Ctrl + Alt + U
   - 간략한 조사식 : Ctrl + Alt + Q, Shift + F9
   - 디버그 다시 시작 : Ctrl + Shift + F5
   - 디버그 커서까지 실행 : Ctrl + F10
   - 프로시져 단위 디버그 : F10
   - 한단계씩 디버그 : F11
   - 프로시져 나가기 : Shift + F11
   - 디버깅 중지 : Shift + F5
   - 디버그 커서까지 실행 : Ctrl + F10
   - 디스어셈 플리 설정/해제 : Ctrl + F11
   - 디버그 조사식 1,2,3,4 : Ctrl + Alt + W, 1, 2, 3, 4
   - 디버그 하지 않고 시작 : Ctrl + F5
♣ DataBase 단축키
   - 데이터베이스 선택영역 실행 : Ctrl + R, Ctrl + D
   - 데이터 베이스 한 단계씩 실행 : Ctrl + D, Ctrl + S
   - SQL 선택영역 실행 : Ctrl + R
♣ 도구창
   - 책갈피 창 : Ctrl + W, B
   - 책갈피 지정 : Ctrl + B, T
   - 책갈피 이전 : Ctrl + B, P  -- 다음 : Ctrl + B, N
   - 모든 책갈피 지우기 : Ctrl + B, C
   - 메크로 창 : Alt + F8
   - 메크로 기록 : Shift + Ctrl + R
   - 현재메크로 실행 : Shift + Ctrl +


'C' 카테고리의 다른 글

C언어 자주쓰는 함수  (0) 2013.10.21
구구단(입력된 단수부터 출력)  (0) 2013.09.02

+ Recent posts