public void AddWeapon(Equipment equip, int numb, bool right, int wActNumb, SpFunctions sp)
 {
     int i,j;
     int cLen = equip.bag [numb].GetComponent<ItemClass>().coordinates.Length/3;
     CharacterAnimator anim = equip.gameObject.GetComponent<CharacterAnimator> ();
     ItemClass item = equip.bag [numb].GetComponent<ItemClass> ();
     GameObject weapon;
     weapon = Instantiate (right == true ? item.objects [0] : item.objects [1],
                           new Vector3 (equip.gameObject.transform.position.x + item.coordinates [0]*equip.gameObject.transform.lossyScale.x,
                  equip.gameObject.transform.position.y + item.coordinates [1]*equip.gameObject.transform.lossyScale.y,
                  equip.gameObject.transform.position.z + item.coordinates [2]),
                           equip.gameObject.transform.rotation)as GameObject;
     weapon.transform.localScale=new Vector3(weapon.transform.localScale.x*sp.realSign(equip.gameObject.transform.localScale.x),
                                             weapon.transform.localScale.y,
                                             weapon.transform.localScale.z);
     weapon.transform.SetParent (equip.gameObject.transform);
     sp.SetMoveset(equip.gameObject,weapon.GetComponent<WeaponClass>());
     j = 0;
     while (j<item.parametres1.Length) {
         if (item.parametres1 [j] != 0)
             break;
         anim.allParts [item.parametres2 [j]].parts.Add (weapon.GetComponent<PartConroller> ());
         j++;
     }
     for (i=2; i<equip.bag[numb].GetComponent<ItemClass>().objects.Length; i++) {
         listOfObjects.Add (GameObject.Instantiate (item.objects [i],
                                                    new Vector3 (equip.gameObject.transform.position.x + item.coordinates [i * cLen]*equip.gameObject.transform.lossyScale.x,
                      equip.gameObject.transform.position.y + item.coordinates [i * cLen + 1]*equip.gameObject.transform.lossyScale.y,
                      equip.gameObject.transform.position.z + item.coordinates [i * cLen + 2]),
                                                    equip.gameObject.transform.rotation)as GameObject);
         listOfObjects [i-2].transform.localScale=new Vector3(listOfObjects [i-2].transform.localScale.x*sp.realSign(equip.gameObject.transform.localScale.x),
                                                              listOfObjects [i-2].transform.localScale.y,
                                                              listOfObjects [i-2].transform.localScale.z);
         listOfObjects [i-2].transform.SetParent (equip.gameObject.transform);
         listOfObjects[i-2].GetComponent<PartConroller>().right=(right==true? 1: -1);
         while (j<item.parametres1.Length) {
             if (item.parametres1 [j] != i)
                 break;
             anim.allParts [item.parametres2 [j]].parts.Add (listOfObjects [i-2].GetComponent<PartConroller> ());
             j++;
         }
     }
     equip.gameObject.GetComponent<Actions> ().activities [wActNumb].weapon = weapon.GetComponent<WeaponClass> ();
     equip.gameObject.GetComponent<Actions> ().activities [wActNumb].actMode = numb;
     if (weapon.GetComponent<WeaponClass> ().handEmployment == 2)
     {
         equip.gameObject.GetComponent<Actions> ().activities [wActNumb-1].weapon = weapon.GetComponent<WeaponClass> ();
         equip.gameObject.GetComponent<Actions> ().activities [wActNumb-1].actMode = numb;
         equip.leftWeapon=weapon.GetComponent<WeaponClass>();
     }
     if (right)
         equip.rightWeapon=weapon.GetComponent<WeaponClass>();
     else
         equip.leftWeapon=weapon.GetComponent<WeaponClass>();
     listOfObjects.Clear ();
 }
 //тип 1 номер 7
 public void MoveToClimb(Rigidbody2D rigid, Stats stats, InfoGets inf, int numb, SpFunctions sp)
 {
     RaycastHit2D hit;
     rigid.velocity = new Vector2 (0f, 0f);
     rigid.gravityScale = 0;
     int koof2;
     if (rigid.velocity.y>=0)
         koof2=1;
     else
         koof2=-1;
     bool k = Physics2D.Raycast (inf.infoGets [numb].OBJ [0].transform.position,
                                 new Vector2(inf.infoGets [numb].VCT [0].x*sp.realSign(stats.direction),
                                             inf.infoGets [numb].VCT [0].y*koof2).normalized,
                           inf.infoGets [numb].PRM2 [0],
                           inf.infoGets [numb].LYR);
     hit=Physics2D.Raycast (inf.infoGets [numb].OBJ [0].transform.position,
                            new Vector2(inf.infoGets [numb].VCT [0].x*sp.realSign(stats.direction),
                                        inf.infoGets [numb].VCT [0].y*koof2).normalized,
                            inf.infoGets [numb].PRM2 [0],
                            inf.infoGets [numb].LYR);
     float koof = -1*sp.realSign (hit.normal.x);
     if (k)
     {
             rigid.velocity=new Vector2(0f,0f);
             float length = hit.distance;
             Vector2 vect = inf.infoGets [numb].VCT [0].normalized;
             vect = new Vector2 (vect.x *koof* length, vect.y *koof2* length);
             rigid.gameObject.transform.position = new Vector3 (rigid.gameObject.transform.position.x + vect.x,
                                                                rigid.gameObject.transform.position.y + vect.y,
                                                                rigid.gameObject.transform.position.z);
     }
 }