예제 #1
0
    void Start()
    {
        //_controller = new KeyboardCtrl(this);
        //_weapon = new WeaponStandard(() => { return Input.GetKeyDown(_controller.fireKey); }, shootPoint, Constants.layerPlayer, 0.35f);
        //_weapon = new WeaponSpread3x(() => { return Input.GetKeyDown(controller.fireKey); }, shootPoint, Constants.layerPlayer, 0.5f);
        //_weapon = new WeaponSemiAuto(() => { return Input.GetKey(controller.fireKey); }, shootPoint, Constants.layerPlayer, 0.25f);

        _weapon = new WeaponComplex(new WeaponSemiAuto(() => { return(Input.GetKey(controller.fireKey)); }, shootPoint, Constants.layerPlayer, 0.25f),
                                    new WeaponSpread3x(() => { return(Input.GetKey(controller.fireKey)); }, shootPoint, Constants.layerPlayer, 0.5f));


        _checkPoint    = new CheckPoint(transform.position, _weapon);
        _playerSubject = new PlayerSubject();
    }
예제 #2
0
    /// <summary>
    /// Sets chunks inactive if they are outside of the range.
    /// </summary>
    /// <param name="subject"></param>
    public override void Message(object subject)
    {
        if (subject != null)
        {
            PlayerSubject gObj = (PlayerSubject)subject;

            if (gObj != null)
            {
                Player player = gObj.GetComponent <Player>();
                {
                    Vector3 pPos       = player.transform.position;
                    float   distanceTo = Mathf.Abs(Vector3.Distance(this.transform.position, pPos));
                    if (distanceTo > GameManager.Instance.WorldChunkMinViewDistance)
                    {
                        this.gameObject.SetActive(false);
                    }
                    else
                    {
                        this.gameObject.SetActive(true);
                    }
                }
            }
        }
    }
 public void Detach(PlayerSubject pac)
 {
     pac.Detach(this);
 }
 public void Attach(PlayerSubject pac)
 {
     pac.Attach(this);
 }
 public EnemyOb(PlayerSubject pac)
 {
     State = EnemyStates.Patrol;
     pac.Attach(this);
 }
 public void Detach(PlayerSubject sub)
 {
     sub.Detach(this);
 }
 public void Attach(PlayerSubject sub)
 {
     sub.Attach(this);
 }
 public Manager(PlayerSubject sub)
 {
     this.State = ManagerState.NoState;
     sub.Attach(this);
 }