Scene Change Animation Error

Hello!
My game uses UnityStandardAssets.CrossPlatformInput it is mobile game but:
So i have player with attached to him sword
in scene one, keyboard attack of weapon works fine, animation fine, and UI button, of that same attack works fine, animation works fine.
I cloned that scene, renamed it and press run:
First scene all right, player moves, keyboard attack works, animation work, UI attack works and the animation work too.
Moving to scene two(cloned from first)
Player moves, keyboard attack works fine, animation perfect, when i press the UI button(same attack like keybord) Error:

The variable anim of Weapon has not been assigned.

How it can be? keyboard controls works fine,animation of attack perfect, but UI button give me error of ANIMATION???
Thank You!

My weapon script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Weapon : Collidable
{
    //Damage structure
    public int[] damagePoint = {1,2,3,4,5,6,7 };
    public float[] pushForce = { 1.5f, 2.0f, 2.5f, 3f, 3.2f, 3.6f, 4f};

    //Upgrade
    public int weaponLevel = 0;
    private SpriteRenderer spriteRenderer;

    //Swing
    private Animator anim;
    private float cooldown = 0.5f;
    private float lastSwing;

    private void Awake()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
    }
    protected override void Start()
    {
        base.Start();
        anim = GetComponent<Animator>();
    }

    protected override void Update()
    {
        base.Update();

        if (Input.GetKeyDown(KeyCode.Space))
        {
            if (Time.time - lastSwing > cooldown)
            {
                lastSwing = Time.time;
                Swing();
            }
        }
    }

    protected override void OnCollide(Collider2D coll)
    {

        if (coll.tag == "Fighter")
        {
            if (coll.name == "Player")
                return;

            // Damage to object with TAG Fighter
            Damage dmg = new Damage
            {
                damageAmount = damagePoint[weaponLevel],
                origin = transform.position,
                pushForce = pushForce[weaponLevel]
            };

            coll.SendMessage("ReceiveDamage", dmg);
        }
    }

    public void Swing()
    {
        anim.SetTrigger("Swing");
    }
    public void UpgradeWeapon()
    {
        weaponLevel++;
        spriteRenderer.sprite = GameManager.instance.weaponSprites[weaponLevel];

        //Change stats
    }

    public void SetWeaponLevel(int level)
    {
        weaponLevel = level;
        spriteRenderer.sprite = GameManager.instance.weaponSprites[weaponLevel];
    }
}

Yeah)
i figure out that problem
it all was prefab of player & weapon
separated they are very different who knew))
“Closed”