public class MyScriptableObject
[field: SerializeField] int MyValue { get; private set; }
public static MyScriptableObject CreateInstance(MyScriptableObject other)
if (other is null) throw new ArgumentNullException(nameof(other));
MyScriptableObject instance = ScriptableObject.CreateInstance<MyScriptableObject>();
instance.MyValue = other.MyValue;