Show / Hide Table of Contents

Class SteamDistro

Distro that uploads builds to Steam.

Inheritance
System.Object
UnityEngine.Object
UnityEngine.ScriptableObject
DistroBase
SteamDistro
Inherited Members
DistroBase.builds
DistroBase.CanRunWithoutBuildTargets
DistroBase.IsRunning
DistroBase.HasAllBuilds()
DistroBase.Build()
DistroBase.Distribute()
DistroBase.Distribute(Boolean)
DistroBase.ForceCancel()
DistroBase.Cancel()
DistroBase.BuildAndGetBuildPaths(Boolean)
DistroBase.DistributeCoroutine(Boolean)
DistroBase.runningScripts
DistroBase.Execute(String, String, String, Action<String>, Action<String>)
DistroBase.Execute(ProcessStartInfo, String, Action<String>, Action<String>)
DistroBase.RunCoroutine(IEnumerator)
DistroBase.GetSubroutineResult<T>()
Namespace: sttz.Trimmer.Editor
Assembly: Trimmer-Editor.dll
Syntax
[CreateAssetMenu(fileName = "Steam Distro.asset", menuName = "Trimmer/Steam", order = 100)]
public class SteamDistro : DistroBase
Remarks

Uses Steam's ContentBuilder to upload the builds to Steam.

You need the Steam SDK (or only the ContentBuilder folder inside its tools directory as well as a Steam developer account.

The upload is configured using VDF scripts, refer to Valve's documentation on how they are set up.

Trimmer distros are path independent, i.e. the build path can be anything. The Build Profile decides on the path and then passes it on to the distribution for processing. However, Steam's scripts only allow for configuring fixed paths and don't support variable substitution.

Therefore, SteamDistro performs its own variable substitution to fill in the dynamic build paths into the VDF scripts. It takes a directory of scripts as input, processes those scripts and then writes them to a temporary directory. Your scripts will therefore not run from the scripts folder but from an essentially random path. Use variables to refer to the build, assets inside the script folder or files in the Unity project.

Supported variables:

  • {{BuiltTarget}}: Path to the last build of the given target
  • {{project}}: Path to the Unity project root
  • {{scripts}}: Path to the original scripts folder

The {{BuildTarget}} variables come from the given Build Profiles. Adding a variable from a build target that doesn't exist in any Build Profile will result in an error. Extra build targets that are never inserted into a script will result in a warning. If multiple Build Profiles share a target, the last one will be used.

Fields

| Improve this Doc View Source

appScript

Main app VDF script file.

Declaration
public string appScript
Field Value
Type Description
System.String
| Improve this Doc View Source

scriptsFolder

The folder where the VDF content builder scripts are stored.

Declaration
public string scriptsFolder
Field Value
Type Description
System.String
| Improve this Doc View Source

steamdSDKPath

Path to the Steam SDK.

Declaration
public string steamdSDKPath
Field Value
Type Description
System.String
| Improve this Doc View Source

steamLogin

The user used to log into steam.

Declaration
[Keychain("SteamDistro", null)]
public Login steamLogin
Field Value
Type Description
Login

Methods

| Improve this Doc View Source

DistributeCoroutine(IEnumerable<DistroBase.BuildPath>, Boolean)

Declaration
protected override IEnumerator DistributeCoroutine(IEnumerable<DistroBase.BuildPath> buildPaths, bool forceBuild)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<DistroBase.BuildPath> buildPaths
System.Boolean forceBuild
Returns
Type Description
System.Collections.IEnumerator
Overrides
DistroBase.DistributeCoroutine(IEnumerable<DistroBase.BuildPath>, Boolean)
| Improve this Doc View Source

FindSteamCmd()

Find the SteamCmd tool in the Steam SDK.

Declaration
public string FindSteamCmd()
Returns
Type Description
System.String
  • Improve this Doc
  • View Source
Back to top © 2017 Adrian Stutz