56 lines
1.6 KiB
C#
56 lines
1.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class GuardCamera : Photon.PunBehaviour {
|
|
|
|
public float xRotation = 0.0f;
|
|
public float yRotation = 0.0f;
|
|
public bool laserSightEnabled = false;
|
|
private GameObject line;
|
|
|
|
void Start () {
|
|
xRotation = transform.eulerAngles.y;
|
|
yRotation = transform.eulerAngles.x;
|
|
}
|
|
|
|
void Update () {
|
|
Quaternion newRotation = Quaternion.AngleAxis(xRotation, Vector3.up);
|
|
newRotation *= Quaternion.AngleAxis(-yRotation, -Vector3.right);
|
|
transform.localRotation = Quaternion.Slerp(transform.rotation, newRotation, Time.time * 0.01f);
|
|
|
|
if (laserSightEnabled)
|
|
{
|
|
if (line == null)
|
|
line = LineDrawer.MakeLine();
|
|
RaycastHit hit;
|
|
if (Physics.Raycast(transform.position, transform.forward, out hit))
|
|
LineDrawer.DrawLine(line, transform.position, hit.point);
|
|
else
|
|
LineDrawer.DrawLine(line, transform.position, transform.position + transform.forward * 20.0f);
|
|
}
|
|
else
|
|
{
|
|
if (line != null)
|
|
Destroy(line);
|
|
}
|
|
}
|
|
|
|
public void UpdateRotation()
|
|
{
|
|
photonView.RPC("UpdateRotation", PhotonTargets.All, xRotation, yRotation);
|
|
}
|
|
|
|
[PunRPC]
|
|
void UpdateRotation(float xRotation, float yRotation)
|
|
{
|
|
this.xRotation = xRotation;
|
|
this.yRotation = yRotation;
|
|
}
|
|
|
|
[PunRPC]
|
|
void SetEnabledRPC(bool enabled)
|
|
{
|
|
laserSightEnabled = enabled;
|
|
}
|
|
}
|