I am attempting to create a script which needs force to be applied in an opposite direction to a transform when the transform collides with something. The amount of force is determined by a force calculator. The thing I am having trouble with is setting the vector to be the exact opposite way that the transform is facing. It should give direction as if it is bouncing against the ground. e.g. if the transform is at 180 then the force goes in direction 360 and if transform is equal to 90 then the force goes 270. If at all possible I would like this to be done in C# terms. Thanks in advance.
I think there is some confusion here about the way a “transform is facing”. The orientation of a transform can’t be described as a single degree, but rather 3 degrees, one for each axis.
It seems like the thing you are looking for is transform.forward
. This is a vector that points in the local z-axis of a transform, which is often used as the way a transform is “facing”. So if you are trying to apply a force in the opposite direction of its facing:
rigidbody.AddForce(-transform.forward * forceStrength);
You can’t just apply forces directly to transforms, so you’ll need to add a rigidbody component to whatever you are adding the force to.