move a child object to a specific xyz coordinates

hello
i have a problem when trying to move my camera to a xyz coordinates relative to the parent object (3rd person controller) im using this class/script attached to the camera, and calling it’s methods from another script with the xyz values.

using UnityEngine;
using System.Collections;

public class PosCam : MonoBehaviour {

    public void chPos(Vector3 val)
    {
        this.transform.position = val;
        //transform.position = val;
        //gameObject.transform.position = val;
    }

    public void chPos(Vector3 val, float x, float y, float z)
    {
        this.transform.position = val;
        //transform.position = val;
        //gameObject.transform.position = val;
       this.transform.Rotate(x, y, z);//no problem in this line for now
    }
}

the problem is, no matter if i send 0,0,0 as the “val” value, this is sending the position of my camera to a crazy position like 500,-9,80 something like that.
image with the hierarchy attached, my player seems like that46443-capture.png

pd: im trying to move my camera for a “first person view” in some places.

any suggestion will be very appreciated.
thanks for reading

Try using transform.localPosition instead of transform.position.

Transform.position uses Scene Coordinates.
Transform.localPosition uses coordinates local to the parent object.

So, setting Transform.localPosition to (0,0,0) will make it match the location of the parent.

Try using transform.localPosition