/// <summary> /// Actor 出生 /// </summary> /// <param name="point"></param> /// <param name="actorArt"></param> protected virtual void Born(LevelPoint point, string actorArt) { // 创建角色 GameObject prefab = LevelAsset.GetGameObject(actorArt); var actorGo = GameObject.Instantiate <GameObject>(prefab); actorGo.transform.parent = transform; actorGameObject = actorGo.GetComponent <ActorGameObject>(); // 组件获取 m_animator = actorGameObject.GetComponent <Animator>(); m_rigidbody = actorGameObject.GetComponent <Rigidbody>(); m_navMeshAgent = actorGameObject.GetComponent <NavMeshAgent>(); // 基础设置 actorGameObject.actor = this; actorGameObject.transform.position = point.position; actorGameObject.transform.localEulerAngles = point.rotationAngle; // 寻路设置 m_navMeshAgent.speed = attribute.GetAttribute(ActorAttributeType.MoveSpeed); m_moveVt = Vector3.zero; m_dirVt = actorGameObject.transform.forward; }
public override void Born(LevelPoint point) { base.Born(point, m_dataCSV.art); canMove = true; canAttack = true; attack = false; }
public override void Born(LevelPoint point) { base.Born(point, m_dataCSV.art); // 怪行为设置 m_behaviorTree = actorGameObject.gameObject.AddComponent <BehaviorTree>(); m_behaviorTree.StartWhenEnabled = false; m_behaviorTree.RestartWhenComplete = true; m_behaviorTree.ExternalBehavior = LevelAsset.GetExternalBehaviorTree(m_dataCSV.behavior); m_behaviorTree.SetVariableValue("Target", Game.hero.actorGameObject.gameObject.transform); m_behaviorTree.EnableBehavior(); }
/// <summary> /// 获取 points /// </summary> /// <param name="_xml"></param> private List <LevelPoint> GetPoints(SecurityElement _xml) { List <LevelPoint> points = new List <LevelPoint>(); if (_xml.Children != null) { foreach (SecurityElement xmlChild in _xml.Children) { LevelPoint point = new LevelPoint(xmlChild); points.Add(point); } } return(points); }
/// <summary> /// Actor 出生 /// </summary> /// <param name="point"></param> public virtual void Born(LevelPoint point) { }