纳金网

标题: Unity3D之角色攻击恢复实现详解 [打印本页]

作者: tianhett    时间: 2015-2-13 00:44
标题: Unity3D之角色攻击恢复实现详解
前几天我写了自动寻径,今天结合自动寻径和模型上的静止(idle)、走(walk)、攻击(attack),做到让模型走到另一个模型身边攻击他,另一个模型消失,然后模型停止攻击动作恢复静止。
附在模型上的代码:
public float timer = 1f;
public static int lifetime = 1;
private NavMeshAgent agent;
public Transform hero;
bool flag = false;
void Start()
{
agent = GetComponent<NavMeshAgent>();
}
void Update () {
RaycastHit hit;
if (Input.GetMouseButtonDown(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray,out hit)){
agent.SetDestination(hit.point);
}
}
if (flag)
{
timer -= Time.deltaTime;
if (timer <= 0)
{
flag = false;
timer = 1f;
}
AnimationToAttack();
}
else
{
if (agent.remainingDistance == 0)
{
AnimationToIdle();
}
else
{
AnimationToWalk();
}
}
}
public void AnimationToIdle() {
hero.transform.animation.Play(“idle”);
}
public void AnimationToWalk() {
hero.transform.animation.Play(“walk”);
}
public void AnimationToAttack() {
hero.transform.animation.Play(“idle to working”);
}
void OnTriggerEnter(Collider a)
{
if (a.CompareTag(“life”))
{
flag = true;
}
}
附在武器上的代码:
public float enemylife = 2;
void OnTriggerEnter(Collider a){
if (a.CompareTag(“life”)) {
enemylife–;
if (enemylife == 0) {
Destroy(a.gameObject);
enemylife = 2;
move.lifetime++;
}
}
}





欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5