Question by 
               Guylian_Dev · Jan 02, 2018 at 10:20 AM · 
                collisioncharactercontroller  
              
 
              How do i check for a character controller to overlap a gameobject on a specific layer
I'm new to unity and i want to know how i can check if a character controller is touching a object on a specific layer.
Here is my code:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Player : MonoBehaviour {
 public CharacterController playerController = new CharacterController();
 public Vector2 playerVector = new Vector2(0, 0);
 //public Transform groundCheck;
 //public Collision2D coll;
 bool Grounded;
 float posX = 0;
 float posY = 0;
 bool canJump = false;
 bool inAir = true;
 // Use this for initialization
 void Start()
 {
     Debug.Log("test");
 }
 // Update is called once per frame
 void Update () {
     inAir = true;
     #region Directional Movement
     /*Getting user input*/
     if (Input.GetKey("right"))
     {
         if(posX < 16)
         {
             posX = posX + 8;
             playerVector.x = posX;
         }
     }
     else if (Input.GetKey("left"))
     {
         if (posX > -16)
         {
             posX = posX - 8;
             playerVector.x = posX;
         }
     }
     /*Add a slowdown effect to the movement*/
     if (!Input.GetKey("right"))
     {
         if (posX > 0)
         {
             posX = posX - 1;
             playerVector.x = posX;
         }
     }
     if (!Input.GetKey("left"))
     {
         if (posX < 0)
         {
             posX = posX + 1;
             playerVector.x = posX;
         }
     }
     #endregion
     #region Gravity
     /*Cast the line to see if we are on the ground*/
     //Grounded = playerController.isGrounded; Physics2D.Linecast(transform.position, groundCheck.position, 1<<LayerMask.NameToLayer("LevelGround"));
     /*if (coll.otherCollider.IsTouchingLayers(8))
     {
         Debug.Log("Hit");
     }
     if (Grounded == false)
     {
         inAir = true;
         Debug.Log("Air = true");
     }
     else
     {
         inAir = false;
         Debug.Log("Air = false");
     }*/
     /*Gravity Script*/
     if(inAir == true)
     {
         posY = posY - 1;
         playerVector.y = posY;
     }
     else
     {
         posY = posY + 1;
         playerVector.y = posY;
     }
     #endregion
     /*Moving the player*/
     playerController.Move((playerVector * 2) * Time.deltaTime);
 }
 
               }
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Player pushes object but gets pushed into the Wall/Boundary 0 Answers
I'm having issues with collision and Physics 1 Answer
How do I make player attack with LMB if the enemy is within range? 0 Answers
How do I make the player walk up walls using raycast? (making a mountain goat game prototype) 2 Answers
Flying character rigidbody - can't see any static collider 1 Answer