コード例 #1
0
 private void AttachGrainToPlayer(PollenGrain grain)
 {
     GrainCount++;
     SeekAvailableAnchor();
     PlayerPollenColor        = grain.GrainColor;
     grain.transform.parent   = _availableAnchor;
     grain.AttachedToPlayer   = true;
     grain.MovingTowardPlayer = true;
 }
コード例 #2
0
    private void OnTriggerExit2D(Collider2D collider)
    {
        PollenGrain _grain = collider.gameObject.GetComponent <PollenGrain> ();

        if (_grain && !_grain.AttachedToPlayer)
        {
            _grain.Pushed = false;
        }
    }
コード例 #3
0
    private void SpawnGrain(Transform grainParent)
    {
        GameObject _newGrain = Instantiate(PollenGrain, grainParent.position, Quaternion.identity, grainParent);

        _newGrain.transform.GetChild(0).gameObject.layer = 12;
        PollenGrain _grain = _newGrain.GetComponent <PollenGrain> ();

        _grain.GrainColor = PollenColor;
    }
コード例 #4
0
    private void OnTriggerStay2D(Collider2D collider)
    {
        float       _colDist = Vector3.Magnitude(collider.transform.position - transform.parent.position);
        PollenGrain _grain   = collider.gameObject.GetComponent <PollenGrain> ();

        if (collider.tag == "Movable" && _colDist <= _pushLength)
        {
            _grain.Pushed = true;
            ApplyForce(collider, _colDist);
        }
    }
コード例 #5
0
 private void DetachAllGrain()
 {
     GrainCount = 0;
     foreach (Transform child in PollenContainer.transform)
     {
         if (child.childCount != 0)
         {
             PollenGrain _grain = child.GetComponentInChildren <PollenGrain> ();
             _grain.AttachedToPlayer = false;
             _grain.tag    = "Movable";
             _grain.Fading = true;
         }
     }
     PlayerPollenColor = PollenColor.None;
 }
コード例 #6
0
    private void OnTriggerEnter2D(Collider2D collider)
    {
        PollenGrain _grain = collider.gameObject.GetComponent <PollenGrain> ();

        if (_grain)
        {
            if (!_grain.AttachedToPlayer && _grain.OnFlower)
            {
                if (_grain.GrainColor != PlayerPollenColor)
                {
                    DetachAllGrain();
                }
                if (GrainCount < PollenContainer.transform.childCount)
                {
                    AttachGrainToPlayer(_grain);
                }
            }
        }
    }
コード例 #7
0
    private void OnTriggerEnter2D(Collider2D collider)
    {
        PlayerPollen _player = collider.gameObject.GetComponent <PlayerPollen> ();
        PollenGrain  _grain  = collider.gameObject.GetComponent <PollenGrain> ();

        if (_player)
        {
            if (_player.PlayerPollenColor == Bud.PollenColor && PlayerPollen.GrainCount > 0)
            {
                Bud.EnablePlatforms();
                _player.DestroyOneGrain();
            }
        }
        else if (_grain)
        {
            if (_grain.GrainColor == Bud.PollenColor)
            {
                Destroy(_grain.gameObject);
                Bud.EnablePlatforms();
            }
        }
    }