almost finished guard camera raycasting

This commit is contained in:
Steven 2017-11-09 14:04:38 -06:00
parent b90f683105
commit edc557811f
18 changed files with 105 additions and 79 deletions

Binary file not shown.

View file

@ -1,7 +1,6 @@
fileFormatVersion: 2
guid: e496172999d202948be110cc90eba6e2
folderAsset: yes
timeCreated: 1509473891
guid: 5c64151264d0426479cf614cf8110ebd
timeCreated: 1510253917
licenseType: Free
DefaultImporter:
userData:

View file

@ -21,7 +21,7 @@ GameObject:
- component: {fileID: 4142260045970492}
m_Layer: 0
m_Name: CameraRig
m_TagString: Untagged
m_TagString: CameraRig
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0

View file

@ -1,17 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 0}
m_Name: NpcColors
m_EditorClassIdentifier: Assembly-CSharp::NpcColors
colors:
- {r: 1, g: 0, b: 0, a: 0}
- {r: 0, g: 1, b: 0, a: 0}
- {r: 0, g: 0, b: 1, a: 0}

View file

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: 0ca93fb1ceb40684f8b400eb4d65bffe
timeCreated: 1507940030
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -73,4 +73,6 @@ MonoBehaviour:
- RemovePlayer
- CaughtSpyRPC
- GuardCaughtNPCRPC
- ReplaceNPCWithSpyRPC
- ReplaceSpyRPC
DisableAutoOpenWizard: 1

View file

@ -117,9 +117,10 @@ GameObject:
m_Component:
- component: {fileID: 40329370}
- component: {fileID: 40329369}
- component: {fileID: 40329371}
m_Layer: 0
m_Name: GameManager
m_TagString: Untagged
m_TagString: GameManager
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@ -141,15 +142,7 @@ MonoBehaviour:
cameraRigPrefab: {fileID: 1009033979625728, guid: 1764211b5690c164d82aa46fa4ec707d,
type: 2}
numNpcs: 10
spyMissionsComplete: 0
waitBetweenMissions: 5
onMissionCooldown: 0
missionsCompleteText: {fileID: 0}
winPanel: {fileID: 0}
guardPanel: {fileID: 0}
spyPanel: {fileID: 0}
guardCameraPanel: {fileID: 164040928}
winText: {fileID: 0}
--- !u!4 &40329370
Transform:
m_ObjectHideFlags: 0
@ -163,6 +156,31 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 12
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &40329371
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 40329368}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: aa584fbee541324448dd18d8409c7a41, type: 3}
m_Name:
m_EditorClassIdentifier:
ownerId: 0
group: 0
OwnerShipWasTransfered: 0
prefixBackup: -1
synchronization: 0
onSerializeTransformOption: 3
onSerializeRigidBodyOption: 2
ownershipTransfer: 0
ObservedComponents: []
ObservedComponentsFoldoutOpen: 1
viewIdField: 7
instantiationId: 7
currentMasterID: -1
isRuntimeInstantiated: 0
--- !u!1 &81075120
GameObject:
m_ObjectHideFlags: 0
@ -1229,6 +1247,10 @@ Prefab:
propertyPath: m_Layer
value: 10
objectReference: {fileID: 0}
- target: {fileID: 100000, guid: 0bce433961afa4d488cf2e08bff4f86a, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 0bce433961afa4d488cf2e08bff4f86a, type: 3}
m_IsPrefabParent: 0
@ -1268,12 +1290,12 @@ MonoBehaviour:
group: 0
OwnerShipWasTransfered: 0
prefixBackup: -1
synchronization: 3
synchronization: 0
onSerializeTransformOption: 3
onSerializeRigidBodyOption: 2
ownershipTransfer: 0
ObservedComponents:
- {fileID: 284817582}
- {fileID: 0}
ObservedComponentsFoldoutOpen: 1
viewIdField: 6
instantiationId: 6
@ -1444,6 +1466,10 @@ Prefab:
propertyPath: m_StaticEditorFlags
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 100000, guid: cc86ddd814bb12f43b57ded5958a2dd6, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: cc86ddd814bb12f43b57ded5958a2dd6, type: 3}
m_IsPrefabParent: 0
@ -1483,12 +1509,12 @@ MonoBehaviour:
group: 0
OwnerShipWasTransfered: 0
prefixBackup: -1
synchronization: 3
synchronization: 0
onSerializeTransformOption: 3
onSerializeRigidBodyOption: 2
ownershipTransfer: 0
ObservedComponents:
- {fileID: 316942571}
- {fileID: 0}
ObservedComponentsFoldoutOpen: 1
viewIdField: 5
instantiationId: 5

View file

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: 3b44e343791674a4692df18a304a5e9d
timeCreated: 1509473920
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 23800000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -106,7 +106,7 @@ public class GuardController : Photon.PunBehaviour {
}
else if (hit.transform.gameObject.tag == "Spy")
{
ScorePanelController.CaughtSpy();
ScorePanelController.CaughtSpy(hit.transform.gameObject.GetPhotonView().viewID);
}
}
}

View file

@ -2,23 +2,15 @@
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
public class GameManager : Photon.PunBehaviour {
public GameObject guardController;
public GameObject spyPrefab, NPCPrefab, cameraRigPrefab;
public int numNpcs = 9;
public int spyMissionsComplete = 0;
public float waitBetweenMissions = 5.0f;
public bool onMissionCooldown = false;
public Text missionsCompleteText;
public GameObject winPanel;
public GameObject guardPanel;
public GameObject spyPanel;
public GameObject guardCameraPanel;
public Text winText;
private int numOfMissions = 3;
private static GameManager _activeManager = null;
public override void OnLeftRoom()
{
@ -43,8 +35,21 @@ public class GameManager : Photon.PunBehaviour {
PhotonNetwork.LeaveRoom();
}
public static GameManager ActiveManager
{
get
{
return _activeManager;
}
}
void Start()
{
if (_activeManager == null)
_activeManager = this;
else
Debug.LogError("More than one game manager in the scene!");
if (PersistantPlayerSettings.character == PersistantPlayerSettings.Character.Guard)
{
guardController.SetActive(true);
@ -71,9 +76,33 @@ public class GameManager : Photon.PunBehaviour {
}
}
[PunRPC]
void SpawnNPC(Vector3 pos)
public List<StateController> GetNpcs()
{
Instantiate(NPCPrefab, pos, Quaternion.identity);
var npcList = new List<StateController>();
foreach (GameObject obj in GameObject.FindGameObjectsWithTag("NPC"))
{
npcList.Add(obj.GetComponent<StateController>());
}
return npcList;
}
[PunRPC]
void ReplaceNPCWithSpyRPC(int spyId, int npcId)
{
var randNPC = PhotonView.Find(npcId);
// Replace NPC with Spy
PhotonView spyView = PhotonView.Find(spyId);
if (spyView && spyView.isMine)
{
PhotonNetwork.Destroy(spyView.gameObject);
var spy = PhotonNetwork.Instantiate(spyPrefab.name, randNPC.transform.position, randNPC.transform.rotation, 0);
GameObject cameraRig = GameObject.FindGameObjectWithTag("CameraRig");
cameraRig.GetComponentInChildren<ThirdPersonCameraController>().SetTarget(spy.transform);
}
if (PhotonNetwork.isMasterClient)
{
PhotonNetwork.Destroy(randNPC.gameObject);
}
}
}

View file

@ -2,7 +2,6 @@
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "Colors/NpcColors")]
public static class NpcColors {
private static List<int> remainingIndices;

View file

@ -53,15 +53,13 @@ public class InteractionPanelController : MonoBehaviour {
var data = new InteractionData(interaction, false);
optionsList.Add(data);
}
if (true || controller.SelectedObject.CompareTag("Spy"))
foreach (Interaction interaction in controller.SelectedObject.spyInteractions)
{
foreach (Interaction interaction in controller.SelectedObject.spyInteractions)
{
var data = new InteractionData(interaction, true);
optionsList.Add(data);
}
var data = new InteractionData(interaction, true);
optionsList.Add(data);
}
interactionsDropdown.AddOptions(optionsList);
if (interactionsDropdown.value > interactionsDropdown.options.Count)
interactionsDropdown.value = 0;

View file

@ -9,7 +9,7 @@ public class ScorePanelController : Photon.PunBehaviour {
public Text _timerText;
public Image _guardScore, _spyScore;
private int _numOfMissions = 3, _maxGuardPoints = 3;
private int _numOfMissions = 5, _maxGuardPoints = 5;
private int _missionsComplete = 0, _numGuardPoints = 0;
private float waitBetweenMissions = 5.0f;
private bool onMissionCooldown = false;
@ -34,17 +34,20 @@ public class ScorePanelController : Photon.PunBehaviour {
{
if (ActivePanel.onMissionCooldown)
return;
ActivePanel.photonView.RPC("CompleteMissionRPC", PhotonTargets.All);
}
public static void CaughtSpy()
public static void CaughtSpy(int spyId)
{
ActivePanel.photonView.RPC("CaughtSpyRPC", PhotonTargets.All);
if (ActivePanel.onMissionCooldown)
return;
ActivePanel.photonView.RPC("CaughtSpyRPC", PhotonTargets.All, spyId);
}
public static void GuardCaughtNPC()
{
if (ActivePanel.onMissionCooldown)
return;
ActivePanel.photonView.RPC("GuardCaughtNPCRPC", PhotonTargets.All);
}
@ -168,12 +171,17 @@ public class ScorePanelController : Photon.PunBehaviour {
}
[PunRPC]
void CaughtSpyRPC()
void CaughtSpyRPC(int spyId)
{
Debug.Log("Spy Caught!");
_numGuardPoints++;
StartCoroutine(MissionCooldown());
StartCoroutine(IncreaseScoreBarAnimation(_guardScore, (float)_numGuardPoints / _maxGuardPoints));
// Get Random NPC
var npcs = GameManager.ActiveManager.GetNpcs();
int randInt = (int)(UnityEngine.Random.value * npcs.Count);
GameManager.ActiveManager.photonView.RPC("ReplaceNPCWithSpyRPC", PhotonTargets.All, spyId, npcs[randInt].photonView.viewID);
}
[PunRPC]
@ -191,5 +199,4 @@ public class ScorePanelController : Photon.PunBehaviour {
WinAnimationController.ActiveController.PlayWinAnimation(guardsOrSpies);
}
#endregion
}

View file

@ -10,6 +10,7 @@ TagManager:
- NPC
- GuardController
- GuardPanel
- CameraRig
layers:
- Default
- TransparentFX