예제 #1
0
        private void Awake()
        {
            Debug.Log("Entity -" + name);
            //加载组件
            animator         = GetComponent <Animator>();
            shootingBehavior = GetComponent <ShootingBehavior>();
            movingBehavior   = GetComponent <MovingBehavior>();
            hitBehavior      = GetComponent <HitBehavior>();
            collider         = GetComponent <Collider2D>();
            rigidbody        = GetComponent <Rigidbody2D>();
            stat             = GetComponent <Stats>();

            //音效初始化
            if (shootingBehavior != null)
            {
                shootingBehavior.audio = usingAudio;
            }

            if (movingBehavior != null)
            {
                movingBehavior.audio = usingAudio;
            }

            if (hitBehavior != null)
            {
                hitBehavior.audio = usingAudio;
            }

            PickingBehavior pickingBehavior = GetComponent <PickingBehavior>();

            if (pickingBehavior != null)
            {
                pickingBehavior.audio = usingAudio;
            }
        }
예제 #2
0
    protected override void StartActor()
    {
        mTargetTransform = PlayerReference.instance.player.transform;

        b_GenericEnemyBehavior = new GenericEnemyBehavior(gameObject);
        b_ShootingBehavior     = new ShootingBehavior(mShootingPrefab);

        b_GenericEnemyBehavior.SetMinDistance(mRangedDistance);
        b_ShootingBehavior.AddHitableTag("player");

        mBehaviorsList.Add(b_GenericEnemyBehavior);
        mBehaviorsList.Add(b_ShootingBehavior);
    }
예제 #3
0
    //private float mOilPotCooldownPassedTime = 0;

    protected override void StartActor()
    {
        b_PlayerBehavior   = new PlayerBehavior(gameObject, mBasicAttackPrefab);
        b_ShootingBehavior = new ShootingBehavior(mShootingPrefab);
        b_OilPotBehavior   = new OilPotBehavior(mOilPotPrefab);

        b_PlayerBehavior.SetInput(2);
        mInput = b_PlayerBehavior.mInput;

        mBehaviorsList.Add(b_PlayerBehavior);
        mBehaviorsList.Add(b_ShootingBehavior);
        mBehaviorsList.Add(b_OilPotBehavior);

        b_PlayerBehavior.SetMeleAttackTime(0.6f);
        gameObject.GetComponent <SpriteRenderer>().flipX = true;
    }
예제 #4
0
        public void PickUp(Transform entity)
        {
            isPickedUp = true;

            Collider2D collider = GetComponent <Collider2D>();

            if (collider != null)
            {
                collider.enabled = false;
            }

            Rigidbody2D rigidbody = GetComponent <Rigidbody2D>();

            if (rigidbody != null)
            {
                rigidbody.bodyType  = RigidbodyType2D.Static;
                rigidbody.simulated = false;
            }


            //可能要提前判断一下entity能不能拾取,也可能不需要,pickingBehavior管这个
            this.entity = entity;
            ShootingBehavior behavior = entity.GetComponent <ShootingBehavior>();

            if (behavior != null)
            {
                behavior.weapon         = this;                  //给射击动作这把武器
                transform.parent        = behavior.holdingPoint; //把武器设置成实体子物体
                transform.localPosition = Vector3.zero;
                transform.localRotation = Quaternion.identity;
                transform.localScale    = new Vector3(1, 1, 1);
            }

            //初始化枪
            InitializeGun();

            //设置枪的贴图
            GetComponent <SpriteRenderer>().sprite = gunSprite;
        }
예제 #5
0
 /// <summary>
 /// 初始化组件
 /// </summary>
 private void InitComponent()
 {
     shootingBehavior = GetComponent <ShootingBehavior>();
     chStatus         = GetComponent <Stats>();
     anim             = GetComponent <Animator>();
 }
 void Start()
 {
     shootingBehavior = GetComponent <ShootingBehavior>();
 }
 private void Awake()
 {
     shootingBehavior = GetComponent <ShootingBehavior>();
 }