this was awesome! I loved the part where you read the paper about how santa knows if you were sleeping.
Have you heard of dnSpy? You can mess with the code without putting it into Unity! If you are feeling really fun, you can get a game into unity using dnSpy, but you need some other programs to do it. I made a short set of code that lets me press JKL to Duplicate, Delete, and Add physics to objects. For horror games with fog and stuff, I can press / to get light. If you wanted to see the code, I can show you, its pretty short.
Here it is! (All the tokens are added by dnSpy for some reason.):
using System;
using UnityEngine;
// Token: 0x02000011 RID: 17
[RequireComponent(typeof(CharacterController))]
public class SC_FPSController : MonoBehaviour
{
// Token: 0x0600002F RID: 47 RVA: 0x00002223 File Offset: 0x00000423
private void Start()
{
this.characterController = base.GetComponent<CharacterController>();
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
// Token: 0x06000030 RID: 48 RVA: 0x00002AF8 File Offset: 0x00000CF8
private void Update()
{
if (Input.GetKeyDown(KeyCode.Slash))
{
GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(new GameObject(), base.transform.position, new Quaternion(45f, 45f, 45f, 0f));
gameObject.AddComponent<Light>();
gameObject.GetComponent<Light>().range = 9999f;
gameObject.transform.SetParent(base.transform);
}
Vector3 a = base.transform.TransformDirection(Vector3.forward);
Vector3 a2 = base.transform.TransformDirection(Vector3.right);
bool key = Input.GetKey(KeyCode.LeftShift);
float d = this.canMove ? ((key ? (this.runningSpeed * 3f) : (this.walkingSpeed * 3f)) * Input.GetAxis("Vertical")) : 0f;
float d2 = this.canMove ? ((key ? (this.runningSpeed * 3f) : (this.walkingSpeed * 3f)) * Input.GetAxis("Horizontal")) : 0f;
float y = this.moveDirection.y;
this.moveDirection = a * d + a2 * d2;
if (Input.GetButton("Jump") && this.canMove && this.characterController.isGrounded)
{
this.moveDirection.y = 15f;
}
else
{
this.moveDirection.y = y;
}
if (!this.characterController.isGrounded)
{
this.moveDirection.y = this.moveDirection.y - this.gravity * Time.deltaTime;
}
this.characterController.Move(this.moveDirection * Time.deltaTime);
if (this.canMove)
{
this.rotationX += -Input.GetAxis("Mouse Y") * this.lookSpeed;
this.rotationX = Mathf.Clamp(this.rotationX, -this.lookXLimit, this.lookXLimit);
this.playerCamera.transform.localRotation = Quaternion.Euler(this.rotationX, 0f, 0f);
base.transform.rotation *= Quaternion.Euler(0f, Input.GetAxis("Mouse X") * this.lookSpeed, 0f);
}
if (Input.GetKeyDown("k"))
{
Vector3 forward = this.playerCamera.transform.forward;
RaycastHit raycastHit;
if (Physics.Raycast(this.playerCamera.transform.position + forward, forward, out raycastHit, 9999f))
{
raycastHit.transform.gameObject.SetActive(false);
}
}
if (Input.GetKeyDown("j"))
{
Vector3 forward2 = this.playerCamera.transform.forward;
RaycastHit raycastHit2;
if (Physics.Raycast(this.playerCamera.transform.position + forward2, forward2, out raycastHit2, 9999f))
{
UnityEngine.Object.Instantiate<GameObject>(raycastHit2.transform.gameObject, raycastHit2.transform.position, raycastHit2.transform.rotation);
}
}
if (Input.GetKeyDown("l"))
{
Vector3 forward3 = this.playerCamera.transform.forward;
RaycastHit raycastHit3;
if (Physics.Raycast(this.playerCamera.transform.position + forward3, forward3, out raycastHit3, 9999f))
{
if (raycastHit3.transform.gameObject.GetComponent<Rigidbody>() != null)
{
UnityEngine.Object.Destroy(raycastHit3.transform.gameObject.GetComponent<Rigidbody>());
}
raycastHit3.transform.gameObject.AddComponent<Rigidbody>();
return;
}
}
}
// Token: 0x04000041 RID: 65
public float walkingSpeed = 7.5f;
// Token: 0x04000042 RID: 66
public float runningSpeed = 11.5f;
// Token: 0x04000043 RID: 67
public float jumpSpeed = 8f;
// Token: 0x04000044 RID: 68
public float gravity = 20f;
// Token: 0x04000045 RID: 69
public Camera playerCamera;
// Token: 0x04000046 RID: 70
public float lookSpeed = 2f;
// Token: 0x04000047 RID: 71
public float lookXLimit = 45f;
// Token: 0x04000048 RID: 72
private CharacterController characterController;
// Token: 0x04000049 RID: 73
private Vector3 moveDirection = Vector3.zero;
// Token: 0x0400004A RID: 74
private float rotationX;
// Token: 0x0400004B RID: 75
[HideInInspector]
public bool canMove = true;
}