using UnityEngine;

using System.Collections;


[RequireComponent (typeof(AudioSource))]     //i don't need to Input Audio sources again in component.

public class MonsterCtrl : MonoBehaviour {

public Transform PlayerTr;

public Transform MonsterTr;

public NavMeshAgent nv;

public float TraceTime = 0.5f;

public Animator anim;

// Use this for initialization

void Start () {

PlayerTr = GameObject.Find ("Player").GetComponent<Transform>();

MonsterTr = this.gameObject.GetComponent<Transform>();

nv = GetComponent<NavMeshAgent>();

nv.destination = PlayerTr.position;   //start to trace where player's position.

anim = GetComponent<Animator>();

}

// Update is called once per frame

void Update () {

if(Vector3.Distance(MonsterTr.position,PlayerTr.position) < 2.0f)

{

nv.Stop();//stop trace~!!!!

anim.SetBool("IsAttack",true);

anim.SetBool("IsTrace",false);

}else

{

if(Time.time > TraceTime)

{

nv.destination = PlayerTr.position;

TraceTime = Time.time + 0.5f;

}

nv.Resume();   //restart to trace~!!!!

anim.SetBool("IsAttack",false);

anim.SetBool("IsTrace",true);

}

}

}


'유니티3D > 예제' 카테고리의 다른 글

시계바  (0) 2013.08.20
PaddleGame  (0) 2013.08.15
메카님방식  (0) 2013.08.12
BulletCtrl.cs  (0) 2013.08.07
miniMap  (0) 2013.08.07

레거시 방식과 메카님 방식의 차이



레거시 : 3D MAX와 같은 툴에서 에니메이션을 각 오브젝트마다 가지고 오는 방식

메카님 : 2족 보행, 4족 보행등 다른 오브젝트의 에니메이션을 이식해 올 수 있는 방식을 말한다.



prepab 복사 ->휴머노이드로 변경

prepab 하나더 복사해서 에니메이션을 제거하고 에니메이트 컨트롤러를 생성해주는것


위에 있는 muktargame 삭제 -> 복사본을 오브젝트에 올리고 apply root motion 체크 해제


-->create -> Animator Controller -> 더블클릭 -> 위에 에니메이션을 드롭엔 다운

defalt motion 설정


monster mecanim 에 monsterCTrl 삽입

'유니티3D > 예제' 카테고리의 다른 글

PaddleGame  (0) 2013.08.15
MonsterCtrl.cs  (0) 2013.08.12
BulletCtrl.cs  (0) 2013.08.07
miniMap  (0) 2013.08.07
PlayerCtrl  (0) 2013.08.06

using UnityEngine;

using System.Collections;


public class Spark : MonoBehaviour {


public GameObject firstSpark;   

public GameObject secondSpark;

public AudioClip firstSound;

public AudioClip secondSound;

private int hit = 0;

void OnCollisionEnter(Collision Col)

{

if(Col.gameObject.tag == "Bullet")

{

hit++;

audio.PlayOneShot(firstSound, 1.0f);

GameObject newSpark1 = (GameObject)Instantiate(firstSpark, Col.transform.position, Quaternion.LookRotation(-Col.transform.position));

Destroy(newSpark1, 3.0f);

Destroy(Col.gameObject);

if(hit >=3)

{

GetComponent<CapsuleCollider>().enabled = false;

Explosion();

}

}

}

void Explosion()

{

audio.PlayOneShot(secondSound, 1.0f);

gameObject.AddComponent<Rigidbody>();

GameObject newSpark2 = (GameObject)Instantiate (secondSpark,transform.position,Quaternion.identity);

GetComponent<Rigidbody>().AddForce(Vector3.up * 1000.0f);

Destroy(newSpark2,5.0f);

Destroy(gameObject,0.2f);

}

}


'유니티3D > 예제' 카테고리의 다른 글

MonsterCtrl.cs  (0) 2013.08.12
메카님방식  (0) 2013.08.12
miniMap  (0) 2013.08.07
PlayerCtrl  (0) 2013.08.06
Bullet  (0) 2013.08.06

http://cafe.naver.com/xgdn/5043

'유니티3D > 예제' 카테고리의 다른 글

메카님방식  (0) 2013.08.12
BulletCtrl.cs  (0) 2013.08.07
PlayerCtrl  (0) 2013.08.06
Bullet  (0) 2013.08.06
MyGizmo.cs  (0) 2013.08.06

+ Recent posts