How can I Get and Set visual script variables from c#

I am using Unity 2020.3 I have a saved variable in script machine an I’ll try to access this variable.

using UnityEngine.Purchasing;
//using System;
using UnityEngine;
//using UnityObject = UnityEngine.Object;
//using Ludiq;
//using Bolt;
using Unity.VisualScripting;
using System;

public class TestCodes : MonoBehaviour
{
//public int lola = (int)Unity.VisualScripting.Variables.Saved.Get(“Coins”);
//var lola = (int)Unity.VisualScripting.Variables.Object(totik).Get(“Coins”);
//public int altin = (int)Variables.Saved.Get(“Coins”);
// public int altin = public static Variables.Saved.Get(“Coins”);
//public int altin = (int)Variables.Saved.Get(“Coins”);
// public int altin = public static Variables.Saved.Get(“Coins”);
}

I’m not familiar with the visual scripting module(s), but from a quick search of the documentation, it looks you’re on the right track?

using Bolt;
using Ludiq;
using System;
using UnityEngine;
using Unity.VisualScripting;

public class TestCode : MonoBehaviour
{
   public int coins;

   private void Start()
   {
       coins = (int)Variables.Saved.Get("Coins");
   }
}

Most of your code is commented out? Is this intentional? Also, you have ‘public static’ in your variable assignment.

This way still doesn’t work???
Red line warning line “coins = (int)Variables.Saved.Get(“Coins”);”

using UnityEngine.Purchasing;
using UnityEngine;
using Unity.VisualScripting;

[IncludeInSettings(true)]

public class IAPCodes : MonoBehaviour
{
public static int coins;
public static int sonuc;

public static void Tata()
{
coins = (int)Variables.Saved.Get(“Coins”);
Debug.Log(coins);
sonuc = coins + 100;
Debug.Log(sonuc);
Variables.Saved.Set(“Coins”, sonuc);
}

public string Onaltin = “com.fefe.gerere.10coin”;
public string Ellialtin = “com.fefe.gerere.50coin”;
public string Yuzaltin = “com.fefe.gerere.100coin”;

public void OnPurchaseComplete(UnityEngine.Purchasing.Product product)
{

if (product.definition.id == Onaltin)
{
Debug.Log(“Purchased 100 coins!”);
Tata();

}
if (product.definition.id == Ellialtin)
{
Debug.Log(“Purchased 500 coins!”);

}
if (product.definition.id == Yuzaltin)
{
Debug.Log(“Purchased 1000 coins!”);

}
}
public void OnPurchaseFailed(UnityEngine.Purchasing.Product product,PurchaseFailureReason reson)
{
Debug.Log(" nedeni ile olumsuz!");
}

}

InvalidCastException: Specified cast is not valid.
IAPCodes.Tata () (at Assets/Scripts/IAPCodes.cs:15)
IAPCodes.OnPurchaseComplete (UnityEngine.Purchasing.Product product) (at Assets/Scripts/IAPCodes.cs:43)
UnityEngine.Events.InvokableCall1[T1].Invoke (T1 args0) (at <ca496b8c93454b2f9b9924292c19379f>:0) UnityEngine.Events.UnityEvent1[T0].Invoke (T0 arg0) (at :0)
UnityEngine.Purchasing.IAPButton.ProcessPurchase (UnityEngine.Purchasing.PurchaseEventArgs e) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Codeless/IAPButton.cs:202)
UnityEngine.Purchasing.CodelessIAPStoreListener.ProcessPurchase (UnityEngine.Purchasing.PurchaseEventArgs e) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Codeless/CodelessIAPStoreListener.cs:281)
UnityEngine.Purchasing.StoreListenerProxy.ProcessPurchase (UnityEngine.Purchasing.PurchaseEventArgs e) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Purchasing/StoreListenerProxy.cs:34)
UnityEngine.Purchasing.PurchasingManager.ProcessPurchaseIfNew (UnityEngine.Purchasing.Product product) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Purchasing/PurchasingManager.cs:259)
UnityEngine.Purchasing.PurchasingManager.OnPurchaseSucceeded (System.String id, System.String receipt, System.String transactionId) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Purchasing/PurchasingManager.cs:111)
UnityEngine.Purchasing.JSONStore.OnPurchaseSucceeded (System.String id, System.String receipt, System.String transactionID) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Stores/BaseStore/JSONStore.cs:165)
UnityEngine.Purchasing.FakeStore.<>n__0 (System.String id, System.String receipt, System.String transactionID) (at <5fd45a82abf24534823a77f51619edc7>:0)
UnityEngine.Purchasing.FakeStore+<>c__DisplayClass15_0.b__0 (System.Boolean allow, UnityEngine.Purchasing.PurchaseFailureReason failureReason) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Stores/FakeStore/FakeStore.cs:143)
UnityEngine.Purchasing.UIFakeStore+<>c__DisplayClass10_0`1[T].b__0 (System.Boolean result, System.Int32 codeValue) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Stores/FakeStore/UIFakeStore.cs:69)
UnityEngine.Purchasing.UIFakeStore.OkayButtonClicked () (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Stores/FakeStore/UIFakeStore.cs:248)
UnityEngine.Purchasing.UIFakeStoreWindow.OnOkClicked () (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Stores/FakeStore/UIFakeStoreWindow.cs:90)
UnityEngine.Purchasing.UIFakeStoreWindow.DoMainGUI (System.Int32 windowID) (at Library/PackageCache/com.unity.purchasing@4.0.3/Runtime/Stores/FakeStore/UIFakeStoreWindow.cs:69)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.GUI+WindowFunction func, System.Int32 id, System.Int32 instanceID, UnityEngine.GUISkin _skin, System.Int32 forceRect, System.Single width, System.Single height, UnityEngine.GUIStyle style) (at <00a477ed1abf4030be646c3244bd3667>:0)

Try doing coins = (int)(Variables.Saved.Get("Coins"));. This specifies that you want to convert whatever the Get method returns, not the Variables class.

public static void Tata()
{
coins = (int)Variables.Saved.Get(“Coins”);
Debug.Log(coins);
sonuc = coins + 100;
Debug.Log(sonuc);
Variables.Saved.Set(“Coins”, sonuc);
}

change to :

public void Tata()
{
coins = (int)Variables.Saved.Get(“Coins”);
Debug.Log(coins);
sonuc = coins + 100;
Debug.Log(sonuc);
Variables.Saved.Set(“Coins”, sonuc);
}