Strange behavior with collisions in unity - unity3d

I have a gameobject player that has a character controller and a gameobject cube that has a rigidbody.
I'd like to make my character go through the cubes like a Trigger. Except that I want the cubes to keep their gravity and physics.
I did a little research and found Physics.IgnoreCollision or the layer collision matrix. Both methods work, I get through my cubes well, except that I have a weird behavior that makes me feel like I'm bumping into each one of them, so I find myself slowed down in my momentum...
Is there a solution to my problem?

In the Unity menu bar, go to Edit > Project Settings, then select the Physics category to open the Physics window. You will find a Matrix and here you can uncheck the collision between 2 layers. If you put the cubes in a layer and the player in another layer and in the matrix you uncheck the box, cubes will maintain their properties and player will pass through them.

Related

How can I remove small part of collider of game object in unity 2d

click here for gif show of what I want
I want to remove mesh of object when user click on object and also remove its collider to make another object fall from that removed mesh area...
I am using unity since last month so I don't have much experience and knowledge, please help me...
Creating the destructable ground particles
One way to achieve whats shown in the gif is by creating a prefab of e.g. a circle collider that is instantiated in the area of where the dirt is in your gif. It acts as a "ground particle" and keeps the objects above itself.
You instantiate a lot of them in the area so it acts as a big collider although it is actually a whole array of smaller colliders.
Implementing the interaction logic and deactivating the ground particles
Ater that you implement the functionality of dragging the mouse over the ground particles, removing them. That is also not difficult. Shoot raycasts into the screen at the postition of the mouse (remember to use Camera.ScreenToWorldPoint) and get the collision information (confer to https://docs.unity3d.com/ScriptReference/Collider2D.Raycast.html). With the collision information you can get the reference to the instance of your ground particle(raycasthit.other.gameobject) which is then disabled through script(gameobject.setActive(false)).

Capsule Collider not visible in the scene view?

I am trying to hit a ball using a golf club. My golf club has three components (three game objects: handle, shaft and head as shown in the first attached image). Head gameobject's inspector can be seen in the another attached image.
To hit the golf ball, we need a collider. So I put a Capsule Collider at head game object. But I don't see any collider at head gameobject.
The head is shown in the last image.
Why I can't put Capsule Collider at the object?
EDIT:
Thanks for the reply.
I increased the radius but still the same.
I placed a Quad in the scene and put Mesh collider onto it (called AW52Collider). Please see in the
first image. We can see the collider clearly.
But I did the same thing to Club head, as it is also a game object I should be able to put a Mesh collider. But I don't see anything. Why?
Please see in the second image.
One more thing I don't understand is when I put AW52Collider inside Club Head object, I don't see AW52Collider also. Why? Please see in the third image.
Increase the size of your collider, those values do not look like you should see the gizmos at all. Best would be to reset the collider to its default values and then play with them until you are happy.
It is best practice to create a child object with colliders on it. The reason is the placement of the collider. The collider is always centered around the pivot point of a GameObject. But you probably want to move your collider freely or disable a group of colliders manually for testing (or optimization) purposes. Also consider that an object with multiple small colliders as child objects is considered one big collider (rigidbody wise). Source (Compound Colliders)
Just enable Gizmos button and you'll find your capsule collider.
See this picture to know exactly where to find it:
(It's in the toolbar below the Scene tab)

How to make FBX model climbing on a slope

Related to the image below:
The Tank is a FBX model, imported with "Generate Colliders" checked. I want to make the tank walking the slope in front of it, which is just a resize cube from Unity ediftor. I tried different approaches : I added a rigidbody to the tank (receiving a message error), I added rigidbody to the cube. Nothing works.
This is my Tank Setting Capture
Could you help me ?
You Should Uncheck the 'Is Trigger' Option for that cube, So that it'll stop Your Tank colliding in to the Cube
One option you could try is implementing NavMesh and NavMeshAgent in your tank and environment. NavMeshAgent allows you to choose how big objects the agent can ignore and how steep slope it can cross etc.
Basic NavMesh implementation can be found on the unity docs: Unity Building navmesh
Remember to set all the environment as navigation static from the navigation menu in order for agent to realize that it can climb over them etc.
Maybe a bit silly, but do you have a mesh collider added to the tank object?

How to move a tile (sprite) with drag and drop in Unity 2D?

I would like to move a tile with drag and drop in Unity 2D. The tile is a sprite. The scene is an 'Unblock me' or 'Blocked in' like gameplay.
Because the tiles in real life correspond to physical objects it seemed be to a good idea to model them with colliders and rigidbody. The border of the table surrunded with invisible colliders. I hoped these will constrain the moves of the tiles realistic, when the player moves them.
Then I implemented a simple (mouse based) drag and drop behavior which is worked perfectly except the moved tile penetrates to other tiles and the border, and sometimes jumps over them. Then I learned if I am overriding physics by explicitly setting transforms position (which I do exactly in my drag and drop implementation), this will happen. OK I accept, I should set only forces, ect. on rigidbody never directly the position.
Now the question:
I am stuck here. I still want to drag and drop like user experience, and some realistic visual result. When in the real life a player moves a tile, it seems it is "glued" to its finger. How can I achieve this (ot at least similar) with just applying forces? Any suggestions or point similar existing sample/blog code?
(I know as a backup plan I can omit all the physics and constrain the tile positions by code, and create some tweens to move the tiles. Is the real solution (what I am asking for) so complicated I should vote on this backup plan?)
Edit
According to comments I've added a video:
There is nothing wrong with the way you are manipulating your dragging. The beauty of developing is being able to do things in your own way. If it works for your game, then don't fret.
Now, i recommend:
Create a new physic material. Assets > Create > Physic Material
Set your new physic material inspector settings both to 0
Attach the physic material to all your wall object colliders. This should allow for your object being dragged to move smoothly against the walls without chopping.
Do a check to see if your mouse is over another collider. If so, then stop the movement in that direction.
Since your movements seem to always be on a single axis, on collision, tell your object to snap to the edge of the wall object. You know the Wall position and scales, also you have the position and scales of the object being dragged. with that you can write a function that will offset it to the correct position when the collision occurs.
Let me know if any of that works out :P

How to get a wind effect afecting multiple meshes in Unity3D

I have a very tall, and thin, tower of cubes one on top of the other, each with a rigidbody attached.
I'm trying to build it higher and higher and have a wind blowing at random heights to try to blow it up and demolish it. It seems simple, but I can't do it properly.
I need to do something as the wind zones for tree, and I cannot attach the forces to the cubes since I need something to instantiate randomly at certain times or places that "pushes" the cubes to make them fall.
I've tried with a particle system, but I was unable to make the particles as collider objects (is this even possible?).
Any suggestion?
Interactive cloth might be your choice.
To add an Interactive Cloth in the scene, click menu
GameObject -> Create Other -> Cloth.
Add new anchor GameObjects (Menu GameObject > Create Empty Object)
For each game object, add a collider component (Menu Component >
Physics > Box Collider)
For each collider, specify the center and size of the collider
For each collider, specify the 3D location of collider, at which the
cloth remains static
Make sure the collider overlaps/intersects with the cloth, otherwise, it won’t work.
For your case, if you wish to programmatically specify the anchor position (since it is random), you might wish to refer to this tutorial as well.