Created
July 22, 2023 13:54
-
-
Save kurtdekker/98227547b84506edbbfd9d7d2ae33543 to your computer and use it in GitHub Desktop.
Make a Unity project / build with zero scenes, just pure code.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
// @kurtdekker - for the purists who don't want ANY scenes in project | |
// | |
// All other Unity asset inclusion rules are still in effect, so no | |
// assets will make it into your project unless they are: | |
// | |
// - correctly in a Resources/ folder | |
// - referenced by something in the above | |
// - correctly in the Streaming Assets folder / system. | |
// - correctly bundled in Asset Bundles or Addressables | |
public class RunmeJohnny : MonoBehaviour | |
{ | |
// This is where it all begins. You will be called here the | |
// moment the Unity Engine is up and running and ready for you. | |
[RuntimeInitializeOnLoadMethod] | |
static void StartWithNoScenes() | |
{ | |
Camera cam = new GameObject("Camera").AddComponent<Camera>(); | |
cam.transform.position = new Vector3(0, 3, -10); | |
cam.orthographic = false; | |
cam.fieldOfView = 60.0f; | |
// NOTE: the material on this cube will NOT be included | |
// in the build because... you didn't reference it anywhere. | |
// | |
// You will need to get a material on this cube or | |
// else it will be hot pink. See comment at top. | |
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); | |
// inject an instance of this script to get things started | |
var runme = cube.AddComponent<RunmeJohnny>(); | |
runme.cube = cube; | |
} | |
// injected by the above (superfluous here, since it is ourselves, | |
// but provided as a way to inject other scripts with with stuff) | |
GameObject cube; | |
private void Update() | |
{ | |
float angle = Time.time * 100.0f; | |
cube.transform.rotation = Quaternion.Euler(0, angle, 0); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment