void LateUpdate() { Transform currTarget = iKThrowController.GetTarget(); if (lastTarget != currTarget) { if (aimingCameraTargetGroup.m_Targets.Length > 1) { aimingCameraTargetGroup.RemoveMember(lastTarget); } aimingCameraTargetGroup.AddMember(currTarget, 1.5f, 1.0f); lastTarget = currTarget; } UpdateTargetMarkerPosition(); }
void Update() { float x = Input.GetAxis("Horizontal"); float z = Input.GetAxis("Vertical"); Vector3 flatCameraForward = Camera.main.transform.forward; flatCameraForward.y = 0.0f; Vector3 flatCameraRight = Camera.main.transform.right; flatCameraRight.y = 0.0f; Vector3 controlledMovement = flatCameraForward.normalized * z + flatCameraRight.normalized * x; controlledMovement *= moveSpeed; if (isActive) { switch (movementState) { case MovementState.Standard: TurnToDir(controlledMovement.normalized); movement = new Vector3(controlledMovement.x, movement.y, controlledMovement.z); if (iKThrowController.GetThrowState() != IKThrowController.ThrowState.None) { movementState = MovementState.Aiming; } break; case MovementState.Aiming: if (iKThrowController.GetTarget()) { Vector3 targetDir = iKThrowController.GetTarget().position - transform.position; Vector3 flatTargetDir = new Vector3(targetDir.x, 0.0f, targetDir.z); TurnToDir(flatTargetDir.normalized); } movement = new Vector3(controlledMovement.x, movement.y, controlledMovement.z); if (iKThrowController.GetThrowState() == IKThrowController.ThrowState.None) { movementState = MovementState.Standard; } break; } movement += Physics.gravity * Time.deltaTime; cc.Move(movement * Time.deltaTime); } }