Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by DeeIsNuts · Sep 29, 2021 at 05:22 PM · beginnerinteractionspherecastinteract

Spherecast returning false if character is too close to gameobject

Hi all,

So, I'm trying to be able to interact with objects in front of my player character by using SphereCast to check whether the object is within a Sphere that is in front of my player. The reason I dont want to use Raycast is because I want to check for objects below and above as well. It works, however If my player moves within "touching" distance of the object, the interaction no longer works.

From the Spherecast API:

Notes: SphereCast will not detect colliders for which the sphere overlaps the collider.

How does this work? Does the whole object collider have to overlap the sphere?

My character is using a character controller, and is on a Player Layer, and I am using a mask to filter it out, so I should not be colliding with myself.

I have attached my Interaction script below:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class PlayerInteraction : MonoBehaviour
 {
     //Serialized Vars
     [SerializeField] private LayerMask interactionMask;
     [SerializeField] private Transform playerTransform;
     //--------------------------------------------------
     // Other Vars
     RaycastHit hitObject;
     private bool interactQueued;
     //--------------------------------------------------
     // Start is called before the first frame update
     void Start()
     {
         
     }
 
     // Update is called once per frame
     void Update()
     {
         //Check 'E' key
         if (Input.GetKeyDown(KeyCode.E)) {
             interactQueued = true;
         }
         
     }
 
     //Called once per physics frame
     void FixedUpdate() {
         //Check for Interact bool
         if (interactQueued) {
             interactQueued = false;
             //Cast a Sphere from the player mesh position, of radius Xf, going forward, stores a RaycastHit, goes for length Xf, and uses LayerMask
             //returns true if it hits something
             if (Physics.SphereCast(playerTransform.transform.position, 0.8f, playerTransform.forward, out hitObject, 1f, interactionMask))
             {
                 Debug.Log("Interacting blyat");
             }
         
         }
         
 
 
 
 
     }
     //Debug to see SphereCast
     void OnDrawGizmos()
     {
         Gizmos.color = Color.yellow;
         Debug.DrawLine(playerTransform.transform.position, playerTransform.transform.position + playerTransform.forward * 1f);
         Gizmos.DrawWireSphere(playerTransform.transform.position + playerTransform.forward * 1f, 0.8f);
     }
 
 }



Edit: If there is a better way to do this, I am open to ideas. I am trying to only interact with objects the player is facing, and within a certain distance of, that could be at ground level or slightly above the player.

A visualization of the SphereCast in question: alt text

spherecast.png (267.0 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

141 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Using CheckSphere to affect another Game Object? 2 Answers

Pickup Script, Lerping to position needs to stay. 0 Answers

Syncing a Seperate Object's Position and Animation with a Playable Character 1 Answer

Scripting/Animation Help? 3 Answers

Collision Detection When Picking Up GameObjects 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges