void Start() { //set up object and component references playerObj = Camera.main.transform.GetComponent <CameraControl>().playerObj; myTransform = transform;//store this object's transform for optimization playerObjTransform = playerObj.transform; mainCameraTransform = Camera.main.transform; FPSPlayerComponent = playerObj.GetComponent <FPSPlayer>(); weaponObj = FPSPlayerComponent.weaponObj; MouseLookComponent = transform.parent.transform.GetComponent <SmoothMouseLook>(); GunSwayComponent = weaponObj.GetComponent <GunSway>(); FPSWalkerComponent = playerObj.GetComponent <FPSRigidBodyWalker>(); VisibleBodyComponent = FPSWalkerComponent.VisibleBody.GetComponent <VisibleBody>(); IronsightsComponent = playerObj.GetComponent <Ironsights>(); InputComponent = playerObj.GetComponent <InputControl>(); if (playerObj.GetComponent <WorldRecenter>()) { WorldRecenterComponent = playerObj.GetComponent <WorldRecenter>(); } AnimationComponent = GetComponent <Animation>(); offsetAmt = offset; currentDistance = 0f; zoomDistance = 0f; }
void Start() { myTransform = transform; WorldRecenterComponent = Camera.main.GetComponent <CameraKick>().playerObj.transform.GetComponent <WorldRecenter>(); if (!isRadiusCollider) { //get radius value from sphere collider radius of child radius object radius = myTransform.GetComponentInChildren <SphereCollider>().radius; AlignToGround(); //automatically align radius collider object's angles and position with the ground underneath it } }
void Start() { myTransform = transform;//store this object's transform for optimization playerObjTransform = playerObj.transform; mainCameraTransform = Camera.main.transform; //define external script references FPSWalkerComponent = playerObj.GetComponent <FPSRigidBodyWalker>(); IronsightsComponent = playerObj.GetComponent <Ironsights>(); FPSPlayerComponent = playerObj.GetComponent <FPSPlayer>(); WorldRecenterComponent = playerObj.GetComponent <WorldRecenter>(); }
void FixedUpdate() { //set up external script references FPSRigidBodyWalker FPSWalkerComponent = playerObj.GetComponent <FPSRigidBodyWalker>(); PlayerWeapons PlayerWeaponsComponent = gunObj.transform.parent.GetComponent <PlayerWeapons>(); WorldRecenter WorldRecenterComponent = playerObj.transform.GetComponent <WorldRecenter>(); if (Time.time > shellRemovalTime) { Object.Destroy(lerpShell.gameObject); Object.Destroy(gameObject); } //Check if the player is on a moving platform to determine how to handle shell parenting and velocity //if(playerObjTransform.parent == FPSWalkerComponent.mainObj.transform){//if player is not on a moving platform if ((WorldRecenterComponent.removePrefabRoot && playerObjTransform.parent == null) || (!WorldRecenterComponent.removePrefabRoot && playerObjTransform.parent == FPSWalkerComponent.mainObj.transform)) { //Make the shell's parent the weapon object for a short time after ejection //to the link shell ejection position with weapon object for more consistent movement, if (((startTime + 0.35f < Time.time && parentState) //don't parent shell if switching weapon || (PlayerWeaponsComponent.switching && parentState) //don't parent shell if moving weapon to sprinting position || (FPSWalkerComponent.sprintActive && !FPSWalkerComponent.cancelSprint && parentState)) && FPSWalkerComponent.grounded) { Vector3 tempVelocity = playerObjTransform.GetComponent <Rigidbody>().velocity; tempVelocity.y = 0.0f; myTransform.parent = null; lerpShell.parent = null; //add player velocity to shell when unparenting from player object to prevent shell from suddenly changing direction if (!FPSWalkerComponent.sprintActive && !FPSWalkerComponent.canRun) //don't inherit parent velocity if sprinting to prevent visual glitches { GetComponent <Rigidbody>().AddForce(tempVelocity, ForceMode.VelocityChange); } parentState = false; } } else //if player is on elevator, keep gun object as parent for a longer time to prevent strange shell movements { if (startTime + 0.5f < Time.time && parentState) { myTransform.parent = null; lerpShell.parent = null; //add player velocity to shell when unparenting from player object to prevent shell from suddenly changing direction GetComponent <Rigidbody>().AddForce(playerObjTransform.GetComponent <Rigidbody>().velocity, ForceMode.VelocityChange); } } }