public override void StartAction() { if (toyTask == null) { SelectNearestToy(); // TODO more toys toyTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.PlayBall, toyObj, Vector3.zero, GetCat()); } if (toyObj == null) { Debug.LogError("Cannot find any Toy"); return; } CatRunTask runTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.Run, toyObj, toyObj.transform.position, GetCat()) as CatRunTask; runTask.StopDistance = 0.5f; CatPlayBallTask playBallTask = actionHolder.AddComponent <CatPlayBallTask>(); playBallTask.SetTaskTarget(toyObj, Vector3.zero, GetCat()); TaskChain chain = actionHolder.AddComponent <TaskChain>(); chain.PushTask(runTask); chain.PushTask(playBallTask); chain.notifyTaskChainEnd += OnTaskChainEnd; chain.StartTaskChain(); }
void RandomSelectIdelTask() { TaskType rndType = idleTypes[Random.Range(0, idleTypes.Length - 1)]; switch (rndType) { case TaskType.Idle: idleTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.Idle, null, Vector3.zero, GetCat()); break; case TaskType.Miao: idleTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.Miao, null, Vector3.zero, GetCat()); break; case TaskType.Tickle: idleTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.Tickle, null, Vector3.zero, GetCat()); break; case TaskType.LickHair: idleTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.LickHair, null, Vector3.zero, GetCat()); break; default: idleTask = ActionUtils.Instance.CreatCatTaskByType(TaskType.Idle, null, Vector3.zero, GetCat()); break; } }
public void SetToyTask(CatTask task) { this.toyTask = task; }
public void SetIdleTask(CatTask task) { this.idleTask = task; }