pgiz3/Assets/Low Poly Guns/Scripts/GunView.cs
2026-03-22 01:50:14 +03:00

86 lines
2.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GunView : MonoBehaviour
{
Vector3 baseScale = new Vector3(0.7f, 0.7f, 0.7f);
bool isPhone = false, isFirst = true;
float zRot = 0, yRot = 0;
Vector3 startPos;
private void OnEnable()
{
transform.localScale = baseScale;
if (SystemInfo.deviceType == DeviceType.Handheld)
isPhone = true;
isFirst = true;
}
void Update()
{
if(isPhone)
{
if (Input.touchCount > 0)
{
if (isFirst)
{
isFirst = false;
startPos = Input.GetTouch(0).position;
return;
}
else
{
zRot += (Input.GetTouch(0).position.y - startPos.y) * 0.09f;
zRot = Mathf.Clamp(zRot, -55, 55);
yRot += (Input.GetTouch(0).position.x - startPos.x) *0.25f;
//yRot = Mathf.Clamp(yRot, -75, 75);
startPos = Input.GetTouch(0).position;
}
ScaleUp();
}
else
{
isFirst = true;
zRot = Mathf.Lerp(zRot, 0, 0.08f);
yRot = Mathf.Lerp(yRot, 0, 0.08f);
ScaleDown();
}
transform.eulerAngles = new Vector3(0, 90 + yRot, zRot);
}
else
{
if (Input.GetMouseButton(0))
{
if(isFirst)
{
isFirst = false;
startPos = Input.mousePosition;
return;
}else
{
zRot += (Input.mousePosition.y - startPos.y) * 0.1f;
zRot = Mathf.Clamp(zRot, -55, 55);
yRot += (Input.mousePosition.x - startPos.x) * 0.3f;
//yRot = Mathf.Clamp(yRot, -55, 55);
startPos = Input.mousePosition;
}
ScaleUp();
}else
{
isFirst = true;
zRot = Mathf.Lerp(zRot, 0, 0.2f);
yRot = Mathf.Lerp(yRot, 0, 0.2f);
ScaleDown();
}
transform.eulerAngles = new Vector3(0,90 + yRot,zRot);
}
}
void ScaleUp()
{
transform.localScale = Vector3.Lerp(transform.localScale, Vector3.one, 0.075f);
}
void ScaleDown()
{
transform.localScale = Vector3.Lerp(transform.localScale, baseScale, 0.075f);
}
}