public override void Awake() { if (collider != null) { collider.CheckDropAxis(); body = collider.connectedBody; if (body == null) { body = Physics.AddBody(); body.Position = VectorConverter.Convert(transform.position, collider.to2dMode); body.Rotation = MathHelper.ToRadians(VectorConverter.Angle(transform.rotation.eulerAngles, collider.to2dMode)); body.UserData = collider; collider.AddCollider(body, mass); } body.BodyType = (isKinematic) ? BodyType.Kinematic : BodyType.Dynamic; body.Enabled = gameObject.active; body.LinearDamping = drag; body.AngularDamping = angularDrag; body.FixedRotation = freezeRotation; RescaleMass(); if (!isKinematic) { Physics.AddRigidBody(body); } } else { #if DEBUG Debug.LogWarning("No collider set on this rigid body " + ToString()); #endif } }
public override void OnRegister() { base.OnRegister(); _playerBody = new VoxelRigidBody(WorldSettings.PlayerSettings.Radius, WorldSettings.PlayerSettings.Height, View.transform); //Register player to Physics Physics.AddRigidBody(_playerBody); //Reparent the camera under player var cameraTransform = ViewConfig.Camera3d.transform; cameraTransform.SetParent(View.CameraContainer); cameraTransform.localPosition = Vector3.zero; //Start PlayerController PlayerController.Init(_playerBody, View.CameraContainer, View.PlayerPick); }