How do I call script on trigger and activate it on game object?
I tried to follow whatever answers I found such as GetComponent<>(), AddComponent<>(), but none of them worked out so far. What I want to do is, I want to rotate camera upside down as if gravity is reversed (I got the reverse gravity part).
code 1 - camera function:
public class FPSCamera : MonoBehaviour {
void Update() {
transform.rotation = Quaternion.Euler (180, 0, 0);
}
}
Above code is to rotate the camera - upside down. This one works fine.
code 2 - OnTriggerEnter:
void OnTriggerEnter (Collider col) {
if (col.gameObject.tag == "Portal_5th_floor_exit") {
Physics.gravity = new Vector3 (0, 9.81f, 0);
controller.ReverseGrav = true;
}
}
above code will reverse gravity under certain condition and make sure player object does not fall from ceiling.
code 3 - mouse control:
public class MouseController : MonoBehaviour {
Vector2 mouseLook;
Vector2 smoothV;
public float sensitivity;
public float smoothing;
GameObject character;
void Start () {
character = this.transform.parent.gameObject; //character is camera's parent
}
void Update () {
var md = new Vector2 (Input.GetAxisRaw ("Mouse X"), Input.GetAxisRaw ("Mouse Y")); //mouse delta is changed every update
md = Vector2.Scale (md, new Vector2 (sensitivity * smoothing, sensitivity * smoothing));
smoothV.x = Mathf.Lerp (smoothV.x, md.x, 1f / smoothing); //move camera smoothly between 2 points rather than instantly changing
smoothV.y = Mathf.Lerp (smoothV.y, md.y, 1f / smoothing);
mouseLook += smoothV;
mouseLook.y = Mathf.Clamp (mouseLook.y, -90f, 90f);
transform.localRotation = Quaternion.AngleAxis (-mouseLook.y, Vector3.right); //mouse look - up and down
character.transform.localRotation = Quaternion.AngleAxis (mouseLook.x, character.transform.up);//mouse look - left and right
}
}
What happens when I link FPSCamera to player controller: it inverts the mouse axis. I don't want this. I want to rotate camera view upside down, which is 180 degrees on x-axis. How do I know that camera works fine with rotating? I tried in different scene with basic movement and with just FPSCamera function; no mouse controller. It worked for that scene. With Mouse Controller in-project, it's not working as intended.
What should I do to rotate my camera's view upside down when on trigger enter? (if possible, without hurting Mouse Controller - this one is also linked with other object).
Thanks for help in advance.
Your answer
![](https://koobas.hobune.stream/wayback/20220612094848im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Player moves when camera rotates 0 Answers
OnTriggerExit happens when a rigibody instantiate 0 Answers
how to load a scene using OnTriggerEnter 0 Answers