public override void Update() { List <EnemyMovementComponent> movelist = EnemyMovementComponent.GetMovementComponents(); for (int i = 0; i < movelist.Count; i++) { //random chase target for now if (movelist[i].target == null) { foreach (var item in GlobalData.playerList) { if (Random.value < 0.5) { movelist[i].target = item.Value; movelist[i].State = MovementState.Move; break; } } } switch (movelist[i].State) { case MovementState.Move: Rigidbody rigi = movelist[i].GetComponent <Rigidbody>(); Vector3 forwar = (movelist[i].target.transform.position - movelist[i].transform.position).normalized; rigi.velocity = forwar * 5; break; default: break; } } }
private void MoveEnemy(EnemyMovementComponent comp) { var movementVec = comp.TargetPosition.Value - comp.gameObject.transform.position; movementVec.y = 0; movementVec = movementVec.normalized * _speed; var rigid = comp.GetComponent <Rigidbody>(); rigid.AddForce(movementVec); }
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { DynamicBuffer <TargetPointBuffer> buffer = dstManager.AddBuffer <TargetPointBuffer>(entity); foreach (var position in Positions) { buffer.Add(position); } var data = new EnemyMovementComponent { Speed = Speed }; dstManager.AddComponentData(entity, data); }
private void SetTargetPosition(EnemyMovementComponent enemy) { enemy.TargetPosition.Value = _playerObject.transform.position; }