public void Walk(float axis) { velocity.x = speed.x * axis; lastPosition = currPosition; currPosition = CharacterCont.GetCharacterPosition(); if (axis < 0) { scale = new Vector2(-1f, 1f); direction = Direction.Left; } else if (axis > 0) { scale = new Vector2(1f, 1f); direction = Direction.Right; } world.checkpointManager.Check(); if (cbOnWalk != null) { cbOnWalk(this); } }
void Start() { Instance = this; world = WorldController.Instance.world; CreateCharacter(); }
// Update is called once per frame void Update() { if (GetComponent <Health>().alive) { if (!hasSeen) { int mask = 1 << LayerMask.NameToLayer("Ignore Raycast"); mask = ~mask; RaycastHit hit; Vector3 toPlayer = player.transform.position - transform.position; Physics.Raycast(transform.position, toPlayer.normalized, out hit, toPlayer.magnitude); CharacterCont cc = player.GetComponent <CharacterCont>(); float speed = cc.currentSpeed; float distance = Vector3.Distance(transform.position, player.transform.position); float inverseTime = (speed / distance); float angle = Vector3.Angle(transform.forward, player.transform.position - transform.position); if (inverseTime > 1 || (hit.transform && (angle < 45 && hit.transform.tag == "Player") && (hit.transform.GetComponent <CharacterCont>().currentSpeed > .1f || Time.time - spawnTime > 3))) { hasSeen = true; audioSource.clip = spotted; audioSource.Play(); } } if (hasSeen) { if (Vector3.Distance(transform.position, player.transform.position) < (weapon ? ((MeleeWep)weapon).arcRadius : 1)) { transform.forward = player.transform.position - transform.position; if (weapon && Time.time - lastAttacked > weapon.fireRate) { lastAttacked = Time.time; animator.SetTrigger("AttackWeak"); agent.SetDestination(transform.position); } } else { agent.SetDestination(player.transform.position); } UpdateAnimator(); prevPos = transform.position; prevDir = transform.forward; } } else { if (GetComponent <Collider>()) { Destroy(GetComponent <Collider>()); agent.enabled = false; } } }
public bool IsCharacterAtEdge() { Vector3 characterPos = CharacterCont.GetCharacterPosition(); Vector3 leftCameraEdge = CameraController.GetLeftEdgePosition(); Vector3 rightCameraEdge = CameraController.GetRightEdgePosition(); // FIXME: Make constant offsets. if (characterPos.x <= leftCameraEdge.x + 2f && direction == Direction.Left || characterPos.x >= rightCameraEdge.x - 2f && direction == Direction.Right ) { return(true); } return(false); }
void Start() { player = GameObject.FindGameObjectWithTag("Player").GetComponent <CharacterCont>(); }
// Use this for initialization void Start() { charCont = GetComponent <CharacterCont>(); audioSource = GetComponent <AudioSource>(); }