public static void CreateFirstPerson() { GameObject charObj = GameObject.CreatePrimitive(PrimitiveType.Capsule); charObj.name = "First Person Character"; charObj.transform.position = new Vector3(0, 1, 0); Object.DestroyImmediate(charObj.GetComponent <MeshRenderer>()); Object.DestroyImmediate(charObj.GetComponent <MeshFilter>()); Rigidbody rb = charObj.AddComponent <Rigidbody>(); rb.useGravity = false; rb.constraints = RigidbodyConstraints.FreezeRotation; GameObject arrow = GameObject.CreatePrimitive(PrimitiveType.Cube); arrow.name = "Arrow"; arrow.transform.parent = charObj.transform; arrow.transform.localPosition = new Vector3(0, 1, 1); arrow.transform.localScale = new Vector3(0.2f, 0.2f, 2.0f); Object.DestroyImmediate(arrow.GetComponent <Collider>()); Brain brain = charObj.AddComponent <Brain>(); brain.channelsType = "CharacterChannels"; charObj.AddComponent <BasicCharacterController>(); CharacterMotor motor = charObj.AddComponent <CharacterMotor>(); motor.rotateMode = CharacterMotor.RotateMode.Control; GameObject headObj = new GameObject("Head"); headObj.transform.parent = charObj.transform; headObj.transform.localPosition = new Vector3(0, 0.5f, 0); CameraArm arm = headObj.AddComponent <CameraArm>(); arm.blocking = 0; arm.targetLength = 0; GameObject camObj = new GameObject("Camera"); camObj.tag = "MainCamera"; camObj.transform.parent = headObj.transform; camObj.transform.localPosition = Vector3.zero; camObj.AddComponent <Camera>(); camObj.AddComponent <FlareLayer>(); camObj.AddComponent <AudioListener>(); camObj.AddComponent <ViewTarget>(); Selection.activeGameObject = charObj; }
public static void CreateThirdPerson() { GameObject charObj = GameObject.CreatePrimitive(PrimitiveType.Capsule); charObj.name = "Third Person Character"; charObj.transform.position = new Vector3(0, 1, 0); Object.DestroyImmediate(charObj.GetComponent <MeshRenderer>()); Object.DestroyImmediate(charObj.GetComponent <MeshFilter>()); Rigidbody rb = charObj.AddComponent <Rigidbody>(); rb.useGravity = false; rb.constraints = RigidbodyConstraints.FreezeRotation; var arrow = CreateArrow(true); arrow.transform.parent = charObj.transform; arrow.transform.localPosition = new Vector3(0, 0, 0); charObj.AddComponent <StateManager>(); charObj.AddComponent <BasicCharacterController>(); CharacterMotor motor = charObj.AddComponent <CharacterMotor>(); motor.rotateMode = CharacterMotor.RotateMode.Movement; GameObject armObj = new GameObject("Camera Arm"); armObj.transform.parent = charObj.transform; armObj.transform.localPosition = Vector3.zero; CameraArm arm = armObj.AddComponent <CameraArm>(); GameObject camObj = new GameObject("Camera"); camObj.tag = "MainCamera"; camObj.transform.parent = armObj.transform; camObj.transform.localPosition = new Vector3(0, 0, -arm.targetLength); camObj.AddComponent <Camera>(); camObj.AddComponent <FlareLayer>(); camObj.AddComponent <AudioListener>(); camObj.AddComponent <ViewTarget>(); Selection.activeGameObject = charObj; Undo.RegisterCreatedObjectUndo(charObj, "Create Character"); }
// Use this for initialization void Start() { cameraArm = GetComponentInChildren <CameraArm>(); playerTank = FindObjectOfType <PlayerTankController>(); }
private void Start() { cameraArm = playerRigidBody.GetComponent <CameraArm>(); }