コード例 #1
0
ファイル: FragileWallSC.cs プロジェクト: cabera2/PLS
 void OnTriggerEnter2D(Collider2D col)
 {
     if (col.gameObject.name == "Slash(Clone)")
     {
         _PS.Play();
         if (_HitCount > 1)
         {
             _HitCount -= 1;
             StartCoroutine(_Shake());
             _AS.PlayOneShot(_SFX[Random.Range(0, 1)], SysSaveSC._Vol_Master * SysSaveSC._Vol_SFX * 0.01f);
         }
         else
         {
             for (int i = 0; i < _Swords.Count; i++)
             {
                 if (StageManagerSC._LumiaInst.transform.parent = _Swords[i].transform)
                 {
                     StageManagerSC._LumiaInst.GetComponent <Lumia_SC>()._CancelHanging();
                 }
                 _Swords[i].GetComponent <SwordSC>()._DestroySword(true);
             }
             _AS.PlayOneShot(_SFX[2], SysSaveSC._Vol_Master * SysSaveSC._Vol_SFX * 0.01f);
             if (GetComponent <MapSaverSC>() != null)
             {
                 GetComponent <MapSaverSC>()._SaveStatus();
             }
             StageManagerSC._CamSC._Shake(0.2f);
             GetComponent <BoxCollider2D>().enabled = false;
             if (_Bottom == null)
             {
                 _WallChild.SetActive(false);
             }
             else
             {
                 _SR.sprite = _Bottom;
             }
             for (int i = 0; i < _FragCount; i++)
             {
                 GameObject FragInst;
                 FragInst = Instantiate(_FrageObj);
                 FragInst.GetComponent <SpriteRenderer>().sprite = _FragSpr[Random.Range(0, _FragSpr.Length)];
                 FragInst.AddComponent(typeof(PolygonCollider2D));
                 FragInst.transform.position = transform.position + new Vector3(Random.Range(-0.5f, 0.5f), Random.Range(-2f, 2f), 0);
                 float _Dir   = transform.position.x - col.transform.position.x;
                 float _Force = _Dir > 0 ? 300 : _Dir < 0 ? -300 : 0;
                 FragInst.GetComponent <Rigidbody2D>().AddForce(new Vector2(_Force, 0f));
             }
         }
     }
 }
コード例 #2
0
ファイル: FragileGroundSC.cs プロジェクト: cabera2/PLS
    void _Break()
    {
        if (GetComponent <MapSaverSC>() != null)
        {
            GetComponent <MapSaverSC>()._SaveStatus();
        }
        _AS.PlayOneShot(_SFX[1], SysSaveSC._Vol_Master * SysSaveSC._Vol_SFX * 0.01f);
        BoxCollider2D _BC2D  = transform.parent.GetComponent <BoxCollider2D>();
        float         _Width = _BC2D.size.x / 2;

        _BC2D.enabled = false;
        for (int i = 0; i < transform.childCount; i++)
        {
            transform.GetChild(i).gameObject.SetActive(false);
        }
        for (int i = 0; i < _FragCount; i++)
        {
            GameObject FragInst;
            FragInst = Instantiate(_FrageObj);
            FragInst.GetComponent <SpriteRenderer>().sprite = _FragSpr[Random.Range(0, _FragSpr.Length)];
            FragInst.AddComponent(typeof(PolygonCollider2D));
            FragInst.transform.position = transform.position + new Vector3(Random.Range(-_Width, _Width), Random.Range(-0.5f, 0.5f), 0);
        }
    }