Unity c# for designer - 5강 (미니게임 만들며 Script 배우기)



NGUI를 이용한 캐릭터 이동

원활한 수업을 위해 예제 리소스들을 미리 배치해 두었습니다.(무료어셋)


오늘은 캐릭터를 정해진 값 만큼 부드럽게 이동하는 코드와 캐릭터를 부드럽게

따라가는 스크립트를 작성하겠습니다.



캐릭터 이동 스크립트



using UnityEngine;

using System.Collections;


public class CharMove : MonoBehaviour {


public GameObject Target;

private bool OnForward = false;

private float TargetPosition;

private float TargetSetPosition;


public float MovePower = 50.0f;




// Use this for initialization

void Start () {


}

// Update is called once per frame

void Update () {

if(OnForward){

Target.gameObject.transform.position += new Vector3(MovePower,0,0)*Time.deltaTime;

TargetPosition = Target.gameObject.transform.position.x;


if(TargetPosition >= TargetSetPosition){

OnForward = false;

}


}

}



public void CharForwardMove(){

Debug.Log ("Forward!");

TargetSetPosition = Target.gameObject.transform.position.x + MovePower;

OnForward = true;

}


public void CharRightMove(){

Debug.Log ("Right!");

}


public void CharLeftMove(){

Debug.Log ("Left!");

}



}





부드럽게 따라가는 카메라 이동 스크립트



using UnityEngine;

using System.Collections;


public class Cam : MonoBehaviour {


public Transform Target;

public Transform Camera;

private Vector3 CamPos;

public float CamX;

public float CamY;

public float CamSpeed;


// Use this for initialization

void Start () {

}

// Update is called once per frame

void Update () {

CamPos = new Vector3 (Target.position.x + CamX , CamY, Target.transform.position.z);

Camera.transform.position = Vector3.Lerp (Camera.transform.position, CamPos, Time.smoothDeltaTime * CamSpeed);

}

}






플레이 영상




과제

외쪽이동, 오른쪽 이동코드를 작성해 오세요.~ (캐릭터 회전은 다음시간에 알려드립니다.)

Posted by 프리랜서 디자이너