Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ground material detector #476

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Conversation

HosseinPan
Copy link

@HosseinPan HosseinPan commented Jul 9, 2021

  • forum thread

  • What will this PR bring to the project for everyone?
    This will detect the type of ground under the character. This feature is a prerequisite for footsteps sounds.

  • How did you implement them?
    with a raycast it checks the gameobject's tag.

If its "Ground":
It finds the nearest vertex color on the ground mesh to the character then It will iterate over all the defined groundTypes that hasGroundTag property set to true and finds the one that has closest value to the VertexColorRGB property of the GroundType and this will be the result of the GetGroundType() method.

If the tag isn't "Ground":
It will iterate over all the defined groundTypes that hasGroundTag property set to false. And find the one that the Tag is matched with the gameObjectTag property of the GroundType and this will be the result of the GetGroundType() method.

For implementing footsteps sounds we can call GetGroundType() method to get the GroundType at anytime. We can define ScriptableObjects to pair the GroundType and AudioCue for footsteps.

  • Steps for this feature to work:
  1. Ground GameObjects need to have a "Ground" tag. And not marked as static.
    The reason for not being static is that we cannot read vertex color in static meshes.

Unity_F06P4pYPU9

2. Other GameObjects that characters can walk on should have a specific tag for each type.

Unity_z3VHjiBioy

3. Create GroundType ScriptableObject for each ground type in game.

Unity_p4VeAnOJ9O

4. Create one GroundTypeList ScriptableObject and add all the GroundType ScriptableObjects to the list.

Unity_6KIAAMtl5x

5. GroundTypeDetector script should be attached to the character. And reference the GroundTypeList to it.

Unity_5UKn4OZeRs

@CLAassistant
Copy link

CLAassistant commented Jul 9, 2021

CLA assistant check
All committers have signed the CLA.

@amel-unity amel-unity added the enhancement New feature or request label Jul 12, 2021
@amel-unity amel-unity self-assigned this Aug 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants