- Home /
Question by
yoethan642 · Mar 04, 2021 at 05:40 AM ·
shootingholding
Gun is not in the same position everytime is take it
The gun is placed in different positions every time it is held. My code for holding: public GameObject Player; public Transform Gun;
private void OnTriggerExit(Collider other)
{
if(other.gameObject == Player)
{
Player.transform.parent = transform;
Gun.localPosition = Vector3.zero;
Gun.localRotation = Quaternion.Euler(Vector3.zero);
}
}
My gun script: public Transform barrel; public float range = 0f; private LineRenderer lineRenderer; public Transform Player; public Transform Camera; public GameObject Guns; // Start is called before the first frame update void Start() { lineRenderer = GetComponent(); lineRenderer.enabled = false; lineRenderer.useWorldSpace = true; }
// Update is called once per frame
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
StartCoroutine("Fire");
lineRenderer.enabled = true;
Debug.DrawRay(transform.position, transform.forward * range, Color.blue, 50);
lineRenderer.positionCount = 2;
float rayLength = 10.0f;
Vector3[] positions = { transform.position, transform.position + (transform.forward * rayLength) };
lineRenderer.SetPositions(positions);
}
else
{
lineRenderer.enabled = false;
}
}
IEnumerator Fire()
{
RaycastHit hit;
Ray ray = new Ray(transform.position, transform.forward);
if (Physics.Raycast(ray, out hit, range))
{
if(hit.collider.tag == "Enemy")
{
Enemy enemy = hit.collider.GetComponent<Enemy>();
enemy.health -= 1;
}
}
yield return null;
}
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "Player")
{
transform.position = Player.position;
transform.rotation = Player.rotation;
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613030150im_/https://answers.unity.com/themes/thub/images/avi.jpg)