Пример #1
0
    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;
            }
        }
    }
Пример #2
0
        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);
    }
Пример #4
0
 private void SetTargetPosition(EnemyMovementComponent enemy)
 {
     enemy.TargetPosition.Value = _playerObject.transform.position;
 }