コード例 #1
0
    public override void Update(EnemyMovementScript enemyMovementScript)
    {
        if (player == null)
        {
            return;
        }
        GameObject gameObject = enemyMovementScript.gameObject;

        // moving
        Vector3 targetPosition = new Vector3(player.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z);

        gameObject.transform.position = Vector3.MoveTowards(gameObject.transform.position, targetPosition, followAttackSpeed * Time.deltaTime);

        // shooting
        followAttackTime += Time.deltaTime;
        if (followAttackTime > 1.0f)
        {
            followAttackTime = 0.0f;
        }

        // changing the attack pattern if the HP is low (internal state has been changed!)
        if (enemyMovementScript.GetHP() < 150)
        {
            gameObject.SendMessage("SetAutoShootInterval", 0.4f);
            enemyMovementScript.SetState(new EnemyDesperateState());
        }
    }
 // Use this for initialization
 void Start()
 {
     m_parentScript = (EnemyMovementScript)transform.parent.gameObject.GetComponent("EnemyMovementScript");
     m_parentToFollow = transform.parent;
     transform.parent = null;
     animation.wrapMode = WrapMode.Loop;
 }
 // Use this for initialization
 void Start()
 {
     m_parentScript     = (EnemyMovementScript)transform.parent.gameObject.GetComponent("EnemyMovementScript");
     m_parentToFollow   = transform.parent;
     transform.parent   = null;
     animation.wrapMode = WrapMode.Loop;
 }
コード例 #4
0
    public IEnumerator Start()
    {
        enemyMovementScript = GetComponent <EnemyMovementScript>();
        Instantiate(beforeGameAudio, gameObject.transform.position, Quaternion.identity);
        Destroy(beforeGameAudio, 8.0f);
        yield return(new WaitForSeconds(beforeGameAudioDuration));

        spawnPlayer();
        StartCoroutine(spawnWaves());
    }
コード例 #5
0
    public override void Update(EnemyMovementScript enemyMovementScript)
    {
        enemyMovementScript.gameObject.transform.RotateAround(enemyMovementScript.gameObject.transform.position,
                                                              Vector3.forward, shootingDirection * rotationSpeed * Time.deltaTime);

        changeAngleTime += Time.deltaTime;
        if (changeAngleTime > 1.0f) {
            shootingDirection *= -1;
            changeAngleTime = -1.0f;
        }
    }
コード例 #6
0
    public override void Update(EnemyMovementScript enemyMovementScript)
    {
        enemyMovementScript.gameObject.transform.RotateAround(enemyMovementScript.gameObject.transform.position,
                                                              Vector3.forward, shootingDirection * rotationSpeed * Time.deltaTime);

        changeAngleTime += Time.deltaTime;
        if (changeAngleTime > 1.0f)
        {
            shootingDirection *= -1;
            changeAngleTime    = -1.0f;
        }
    }
コード例 #7
0
    public void Setup(Func <Vector2> getPlayerFunc, PlayerHealth playerHealth, GameManager gameManager)
    {
        enemyMovement = instance.GetComponent <EnemyMovementScript>();
        enemyMovement.Setup(getPlayerFunc);
        enemyMovement.enabled = true;

        enemyHit = instance.GetComponent <EnemyHit>();
        enemyHit.playerHealth = playerHealth;

        enemyHealth = instance.GetComponent <EnemyHealth>();
        enemyHealth.Setup(gameManager);
    }
コード例 #8
0
ファイル: EnemyScript.cs プロジェクト: Wanyea/Galaga
    void Start()
    {
        rigidbody           = GetComponent <Rigidbody2D>();
        animator            = GetComponent <Animator>();
        collision           = GetComponent <Collider2D>();
        spawnerScript       = GetComponent <SpawnerScript>();
        enemyMovementScript = GetComponent <EnemyMovementScript>();

        Tween.Spline(

            spline, gameObject.transform, 0.0f, 1.0f, false,
            splineDuration, splineDelay, completeCallback: pathCompleted

            );
    }
コード例 #9
0
    void Awake()
    {
        collider  = GetComponent <MeshCollider>();
        rigidbody = GetComponent <Rigidbody>();
        renderer  = GetComponentInChildren <SpriteRenderer>();
        animator  = GetComponentInChildren <Animator>();

        movement = GetComponent <EnemyMovementScript>();
        status   = GetComponent <EnemyStatusScript>();

        if (movement != null)
        {
            movement.self = this;
        }
        if (status != null)
        {
            status.self = this;
        }
    }
コード例 #10
0
    public override void Update(EnemyMovementScript enemyMovementScript)
    {
        if (player == null) {
            return;
        }
        GameObject gameObject = enemyMovementScript.gameObject;

        // moving
        Vector3 targetPosition = new Vector3(player.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z);
        gameObject.transform.position = Vector3.MoveTowards(gameObject.transform.position, targetPosition, followAttackSpeed * Time.deltaTime);

        // shooting
        followAttackTime += Time.deltaTime;
        if (followAttackTime > 1.0f) {
            followAttackTime = 0.0f;
        }

        // changing the attack pattern if the HP is low (internal state has been changed!)
        if (enemyMovementScript.GetHP() < 150) {
            gameObject.SendMessage("SetAutoShootInterval", 0.4f);
            enemyMovementScript.SetState(new EnemyDesperateState());
        }
    }
コード例 #11
0
 void Start()
 {
     animator = GetComponent <Animator>();
     isDead   = false;
     scriptEnemyMovementScript = GetComponent <EnemyMovementScript>();
 }
コード例 #12
0
 void Awake()
 {
     enemyMovementScript = GetComponent <EnemyMovementScript>();
 }
コード例 #13
0
 public abstract void Update(EnemyMovementScript enemyMovementScript);
コード例 #14
0
 public abstract void Update(EnemyMovementScript enemyMovementScript);