86 lines
2.6 KiB
C#
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);
|
|
}
|
|
}
|