巨魔刚实例化2秒一过,第一个5秒的行走,只有行走动画没有移动。导致第二个巨魔和第一个叠一起了。但是2+5+2秒后,第一个巨魔的第二次和以后行走就正常了。求,第一个行走问题出在哪里(巨魔的优化那个问题我自己解决了,单独一个troll的prefab拿出来是正常的。) 下面是troll的行走优化,我自己改了点,把行走和模型Walk放一起了。孵化器脚本和演示教学的一样。
using UnityEngine;
using System.Collections;
public class troll : MonoBehaviour {
public bool idle = true;
private float timer = 2.0f;
public int speed =5;
private Animator anim;
private CharacterController controller;
void Start ()
{
anim = GetComponent<Animator>();
controller = GetComponent<CharacterController>();
}
void Update ()
{
timer -= Time.deltaTime;
if (timer<=0)
{
if (idle )
{
idle = false; //transform to move
timer = 5.0f;
int temp = Random.Range(-90, 90);
transform.Rotate(new Vector3(0, temp, 0));
// controller.SimpleMove(transform.forward * speed);
trollWalk();
}
else
{
idle = true; //transoform to idle
timer = 2.0f;
trollidle();
}
}
if (!idle)
{
//how to move forward
// transform.position += transform.forward * Time.deltaTime * speed;
// controller.SimpleMove(transform.forward*speed);
trollWalk();
}
}
public void trollWalk()
{
anim.SetFloat("run", 0.0F);
anim.SetFloat("idle", 0F);
anim.SetFloat("walk", 1.0F);
controller.SimpleMove(transform.forward * speed);
}
public void trollidle()
{
anim.SetFloat("idle", 1F);
anim.SetFloat("walk", 0.0F);
anim.SetFloat("run", 0F);
}
}