// Use this for initialization void Start() { actions = GetComponent <UnitActions>(); if (actions == null) { Debug.LogError("actions is null in complexactions"); } sensor = GetComponent <UnitSensor>(); if (sensor == null) { Debug.LogError("sensor is null in complexactions"); } path = new NavMeshPath(); relativeHeight = new Vector3(0, transform.position.y, 0); if (relativeHeight.y > 1.6) { Debug.Log("make sure to spawn agent right above ground"); } stuckIteration = -1; obstaclesCheckExtend = new Vector3(0.2f, transform.position.y, 1f); lastJumpTime = Time.timeSinceLevelLoad; lastStuckIncrement = Time.realtimeSinceStartup; agentLayer = LayerMask.GetMask("Agent"); physicalLayer = LayerMask.GetMask("PickupAble"); if (sensor.rightStartWeapon != null) { Physics.IgnoreCollision(GetComponent <CapsuleCollider>(), sensor.rightStartWeapon.GetComponent <Collider>()); actions.PickupObject(sensor.rightStartWeapon, sensor.rightHand, sensor.rightWeaponPos); } if (sensor.leftStartWeapon != null) { Physics.IgnoreCollision(GetComponent <CapsuleCollider>(), sensor.leftStartWeapon.GetComponent <Collider>()); actions.PickupObject(sensor.leftStartWeapon, sensor.leftHand, sensor.leftWeaponPos); } }
// Update is called once per frame void FixedUpdate() { // ALL of this is debug // TODO: remove if (doMoveTowards) { actionSet.MoveTowards(target.position, moveSpeed); } if (doJump) { actionSet.Jump(jumpHeight); doJump = false; } if (doPickupRight) { Physics.IgnoreCollision(GetComponent <CapsuleCollider>(), rightPickupTarget.GetComponent <Collider>()); actionSet.PickupObject(rightPickupTarget, rightHand, rightHand.Find("WeaponPos")); doPickupRight = false; } if (doPickupLeft) { Physics.IgnoreCollision(GetComponent <CapsuleCollider>(), leftPickupTarget.GetComponent <Collider>()); actionSet.PickupObject(leftPickupTarget, leftHand, leftHand.Find("WeaponPos")); doPickupLeft = false; } /*if (doDrop) * { * Vector3 velocity = hand.GetComponent<Rigidbody>().velocity; * actionSet.DropObject(pickupTarget, hand.transform, velocity); * doDrop = false; * }*/ if (doActivateRight) { actionSet.ActivateObject(rightPickupTarget, rightHand.Find("WeaponPos")); } if (doActivateLeft) { actionSet.ActivateObject(leftPickupTarget, leftHand.Find("WeaponPos")); } if (doAimAtRight) { rightSlerpPos += 0.2f; actionSet.AimAt(rightHand, target.position, rightSlerpPos); if (rightSlerpPos > 1) { rightSlerpPos = 0; } //doAimAtRight = false; } if (doAimAtLeft) { leftSlerpPos += 0.2f; actionSet.AimAt(leftHand, target.position, leftSlerpPos); if (leftSlerpPos > 1) { leftSlerpPos = 0; } } if (doCrouch) { actionSet.Crouch(leg, originalHeight, 0.3f); doCrouch = false; } if (doStandup) { actionSet.StandUp(leg, originalHeight); doStandup = false; } if (doReload) { actionSet.ReloadWeapon(rightPickupTarget); actionSet.ReloadWeapon(leftPickupTarget); doReload = false; } if (doOrientate) { actionSet.TurnTowards(target, 1.0f, 2.0f, 7f); } if (setDestinationWithStrafe) { setDestinationWithoutStrafe = false; setDestinationWithStrafe = activitySet.GoTowardsDestination(destination.position); actionSet.TurnTowards(destination, 1.0f, 2.0f, 7f); } if (setDestinationWithoutStrafe) { setDestinationWithStrafe = false; setDestinationWithoutStrafe = activitySet.GoTowardsDestination(destination.position, false); //actionSet.TurnTowards(destination, 1.0f, 2.0f, 7f); } //animator.SetInteger("RoutineStatus", routineStatus); }