Ogólnie jestem młody i jestem debilem XD. Próbuje to napisać od dłuższego czasu (Unity2D). Problem jest z "transform.localRotation = Quaternion.Euler(0f, 0f, 0f);", nie zmienia to rotacji, co jest nie tak. Z góry dziękuję.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LogicGuns : MonoBehaviour
{
public int toMinus;
public Transform renkaR;
public Transform renkaL;
public bool leftHand = false;
// Update is called once per frame
void Update()
{
gun_rotation();
}
public void gun_rotation()
{
Vector3 mouse_position;
Vector3 gun_position;
gun_position = transform.position;
mouse_position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
float rotation = Mathf.Atan2(mouse_position.y - transform.position.y, mouse_position.x - transform.position.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, rotation));
float rotationY = Mathf.Atan2(mouse_position.z - transform.position.z, mouse_position.x - transform.position.x) * Mathf.Rad2Deg;
if ((rotation > 150 || rotation < -150) && !leftHand)
{
leftHand = true;
transform.SetParent(renkaL);
transform.localPosition = new Vector3(0, 0, 0);
transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
}
else if ((rotation > 150 || rotation < -150) && leftHand)
{
leftHand = false;
transform.SetParent(renkaR);
transform.localPosition = new Vector3(0, 0, 0);
transform.localRotation = Quaternion.Euler(0f, 0f, 0f);
}
}
}