first commit
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d5bf40305d1278191842ca48ac81756d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,564 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public static class Lab2SceneBuilder
|
||||
{
|
||||
private const string ScriptsFolder = "Assets/_Scripts";
|
||||
private const string DataFolder = "Assets/_Data";
|
||||
private const string PrefabsFolder = "Assets/_Prefabs";
|
||||
private const string ScenesFolder = "Assets/_Scenes";
|
||||
private const string MaterialsFolder = "Assets/_Materials";
|
||||
private const string FontsFolder = "Assets/_Fonts";
|
||||
private const string EditorFolder = "Assets/Editor";
|
||||
private const string ScenePath = "Assets/_Scenes/WeaponTest.unity";
|
||||
|
||||
[MenuItem("Tools/Technical Game Design/Lab2/Create Weapon System Scene")]
|
||||
public static void CreateWeaponSystemScene()
|
||||
{
|
||||
if (EditorApplication.isPlayingOrWillChangePlaymode)
|
||||
{
|
||||
EditorUtility.DisplayDialog("Lab 2", "Stop Play Mode before generating the scene.", "OK");
|
||||
return;
|
||||
}
|
||||
|
||||
CreateFolders();
|
||||
Font uiFont = CreateOrLoadUbuntuFont();
|
||||
|
||||
Material floorMaterial = CreateMaterial("Floor_Mat", new Color(0.35f, 0.38f, 0.34f));
|
||||
Material wallMaterial = CreateMaterial("Wall_Mat", new Color(0.48f, 0.50f, 0.52f));
|
||||
Material targetMaterial = CreateMaterial("Target_Mat", new Color(0.85f, 0.15f, 0.12f));
|
||||
Material pistolMaterial = CreateMaterial("Pistol_Mat", new Color(0.05f, 0.11f, 0.25f));
|
||||
Material rifleMaterial = CreateMaterial("Rifle_Mat", new Color(0.20f, 0.35f, 0.27f));
|
||||
Material shotgunMaterial = CreateMaterial("Shotgun_Mat", new Color(0.45f, 0.18f, 0.10f));
|
||||
Material smgMaterial = CreateMaterial("SMG_Mat", new Color(0.35f, 0.35f, 0.38f));
|
||||
Material muzzleMaterial = CreateMaterial("MuzzleFlash_Mat", new Color(1f, 0.62f, 0.08f));
|
||||
Material hitMaterial = CreateMaterial("HitEffect_Mat", new Color(1f, 0.95f, 0.25f));
|
||||
|
||||
GameObject muzzleFlashPrefab = CreateEffectPrefab("MuzzleFlashPrefab", muzzleMaterial, new Vector3(0.16f, 0.16f, 0.16f));
|
||||
GameObject hitEffectPrefab = CreateEffectPrefab("HitEffectPrefab", hitMaterial, new Vector3(0.12f, 0.12f, 0.12f));
|
||||
|
||||
WeaponData pistolData = CreateWeaponData(
|
||||
"PistolData",
|
||||
"Pistol",
|
||||
15f,
|
||||
0.25f,
|
||||
8,
|
||||
40,
|
||||
0.02f,
|
||||
1.2f,
|
||||
1.5f,
|
||||
1,
|
||||
80f,
|
||||
false,
|
||||
pistolMaterial.color,
|
||||
"Accurate semi-automatic weapon for medium range.",
|
||||
muzzleFlashPrefab,
|
||||
hitEffectPrefab);
|
||||
|
||||
WeaponData rifleData = CreateWeaponData(
|
||||
"RifleData",
|
||||
"Rifle",
|
||||
10f,
|
||||
0.1f,
|
||||
30,
|
||||
90,
|
||||
0.06f,
|
||||
2f,
|
||||
2f,
|
||||
1,
|
||||
100f,
|
||||
true,
|
||||
rifleMaterial.color,
|
||||
"Automatic rifle with high fire rate and moderate spread.",
|
||||
muzzleFlashPrefab,
|
||||
hitEffectPrefab);
|
||||
|
||||
WeaponData shotgunData = CreateWeaponData(
|
||||
"ShotgunData",
|
||||
"Shotgun",
|
||||
8f,
|
||||
0.8f,
|
||||
5,
|
||||
25,
|
||||
0.18f,
|
||||
4f,
|
||||
2.5f,
|
||||
8,
|
||||
45f,
|
||||
false,
|
||||
shotgunMaterial.color,
|
||||
"Close-range shotgun that fires several pellets per shot.",
|
||||
muzzleFlashPrefab,
|
||||
hitEffectPrefab);
|
||||
|
||||
CreateWeaponData(
|
||||
"SMGData",
|
||||
"SMG",
|
||||
7f,
|
||||
0.075f,
|
||||
24,
|
||||
120,
|
||||
0.08f,
|
||||
1.6f,
|
||||
1.8f,
|
||||
1,
|
||||
75f,
|
||||
true,
|
||||
smgMaterial.color,
|
||||
"Additional data-only weapon example. It is not active in the scene.",
|
||||
muzzleFlashPrefab,
|
||||
hitEffectPrefab);
|
||||
|
||||
CreateWeaponPrefabTemplate("Pistol", pistolData, pistolMaterial);
|
||||
CreateWeaponPrefabTemplate("Rifle", rifleData, rifleMaterial);
|
||||
CreateWeaponPrefabTemplate("Shotgun", shotgunData, shotgunMaterial);
|
||||
|
||||
EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
|
||||
Scene scene = SceneManager.GetActiveScene();
|
||||
|
||||
CreateLighting();
|
||||
CreateEnvironment(floorMaterial, wallMaterial);
|
||||
|
||||
WeaponHUD hud = CreateUI(uiFont, out Text ammoText, out Text weaponNameText, out Text reloadText);
|
||||
GameObject player = CreatePlayer(out Camera playerCamera, out Transform weaponHolder);
|
||||
|
||||
Weapon pistol = CreateSceneWeapon("Pistol", pistolData, pistolMaterial, weaponHolder, playerCamera, hud, ammoText, weaponNameText, reloadText, new Vector3(0f, 0f, 0f));
|
||||
Weapon rifle = CreateSceneWeapon("Rifle", rifleData, rifleMaterial, weaponHolder, playerCamera, hud, ammoText, weaponNameText, reloadText, new Vector3(0f, -0.02f, 0.02f));
|
||||
Weapon shotgun = CreateSceneWeapon("Shotgun", shotgunData, shotgunMaterial, weaponHolder, playerCamera, hud, ammoText, weaponNameText, reloadText, new Vector3(0f, -0.02f, 0.02f));
|
||||
|
||||
WeaponSwitcher switcher = player.AddComponent<WeaponSwitcher>();
|
||||
switcher.weapons = new[] { pistol, rifle, shotgun };
|
||||
switcher.currentIndex = 0;
|
||||
switcher.weaponNameText = weaponNameText;
|
||||
switcher.hud = hud;
|
||||
|
||||
pistol.gameObject.SetActive(true);
|
||||
rifle.gameObject.SetActive(false);
|
||||
shotgun.gameObject.SetActive(false);
|
||||
|
||||
CreateTargets(targetMaterial, uiFont);
|
||||
|
||||
EditorSceneManager.SaveScene(scene, ScenePath);
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
|
||||
string resultMessage = "Weapon system scene was generated: " + ScenePath;
|
||||
if (Application.isBatchMode)
|
||||
Debug.Log(resultMessage);
|
||||
else
|
||||
EditorUtility.DisplayDialog("Lab 2", resultMessage, "OK");
|
||||
}
|
||||
|
||||
private static void CreateFolders()
|
||||
{
|
||||
EnsureFolder(ScriptsFolder);
|
||||
EnsureFolder(DataFolder);
|
||||
EnsureFolder(PrefabsFolder);
|
||||
EnsureFolder(ScenesFolder);
|
||||
EnsureFolder(MaterialsFolder);
|
||||
EnsureFolder(FontsFolder);
|
||||
EnsureFolder(EditorFolder);
|
||||
}
|
||||
|
||||
private static void EnsureFolder(string path)
|
||||
{
|
||||
if (AssetDatabase.IsValidFolder(path))
|
||||
return;
|
||||
|
||||
string parent = System.IO.Path.GetDirectoryName(path)?.Replace("\\", "/");
|
||||
string name = System.IO.Path.GetFileName(path);
|
||||
|
||||
if (string.IsNullOrEmpty(parent))
|
||||
parent = "Assets";
|
||||
|
||||
AssetDatabase.CreateFolder(parent, name);
|
||||
}
|
||||
|
||||
private static Material CreateMaterial(string assetName, Color color)
|
||||
{
|
||||
string path = MaterialsFolder + "/" + assetName + ".mat";
|
||||
Material material = AssetDatabase.LoadAssetAtPath<Material>(path);
|
||||
|
||||
if (material == null)
|
||||
{
|
||||
Shader shader = Shader.Find("Standard");
|
||||
material = new Material(shader);
|
||||
AssetDatabase.CreateAsset(material, path);
|
||||
}
|
||||
|
||||
material.color = color;
|
||||
EditorUtility.SetDirty(material);
|
||||
return material;
|
||||
}
|
||||
|
||||
private static Font CreateOrLoadUbuntuFont()
|
||||
{
|
||||
const string fontAssetPath = FontsFolder + "/Ubuntu-Regular.ttf";
|
||||
|
||||
Font projectFont = AssetDatabase.LoadAssetAtPath<Font>(fontAssetPath);
|
||||
if (projectFont != null)
|
||||
return projectFont;
|
||||
|
||||
string[] ubuntuFontCandidates =
|
||||
{
|
||||
"/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf",
|
||||
"/usr/share/fonts/truetype/ubuntu/Ubuntu-Regular.ttf",
|
||||
"/usr/share/fonts/TTF/Ubuntu-R.ttf",
|
||||
"/home/ruby/.local/share/fonts/Ubuntu-R.ttf",
|
||||
"/home/ruby/.local/share/fonts/Ubuntu-Regular.ttf"
|
||||
};
|
||||
|
||||
foreach (string sourcePath in ubuntuFontCandidates)
|
||||
{
|
||||
if (!System.IO.File.Exists(sourcePath))
|
||||
continue;
|
||||
|
||||
FileUtil.CopyFileOrDirectory(sourcePath, fontAssetPath);
|
||||
AssetDatabase.ImportAsset(fontAssetPath, ImportAssetOptions.ForceUpdate);
|
||||
projectFont = AssetDatabase.LoadAssetAtPath<Font>(fontAssetPath);
|
||||
|
||||
if (projectFont != null)
|
||||
return projectFont;
|
||||
}
|
||||
|
||||
Font osUbuntuFont = Font.CreateDynamicFontFromOSFont("Ubuntu", 18);
|
||||
if (osUbuntuFont != null)
|
||||
return osUbuntuFont;
|
||||
|
||||
return Resources.GetBuiltinResource<Font>("LegacyRuntime.ttf");
|
||||
}
|
||||
|
||||
private static GameObject CreateEffectPrefab(string name, Material material, Vector3 scale)
|
||||
{
|
||||
string path = PrefabsFolder + "/" + name + ".prefab";
|
||||
GameObject temp = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||
temp.name = name;
|
||||
temp.transform.localScale = scale;
|
||||
|
||||
Collider collider = temp.GetComponent<Collider>();
|
||||
if (collider != null)
|
||||
Object.DestroyImmediate(collider);
|
||||
|
||||
Renderer renderer = temp.GetComponent<Renderer>();
|
||||
renderer.sharedMaterial = material;
|
||||
|
||||
GameObject prefab = PrefabUtility.SaveAsPrefabAsset(temp, path);
|
||||
Object.DestroyImmediate(temp);
|
||||
return prefab;
|
||||
}
|
||||
|
||||
private static WeaponData CreateWeaponData(
|
||||
string assetName,
|
||||
string weaponName,
|
||||
float damage,
|
||||
float fireRate,
|
||||
int magazineSize,
|
||||
int reserveAmmo,
|
||||
float spread,
|
||||
float recoilForce,
|
||||
float reloadTime,
|
||||
int pelletsPerShot,
|
||||
float range,
|
||||
bool automatic,
|
||||
Color weaponColor,
|
||||
string description,
|
||||
GameObject muzzleFlashPrefab,
|
||||
GameObject hitEffectPrefab)
|
||||
{
|
||||
string path = DataFolder + "/" + assetName + ".asset";
|
||||
WeaponData data = AssetDatabase.LoadAssetAtPath<WeaponData>(path);
|
||||
|
||||
if (data == null)
|
||||
{
|
||||
data = ScriptableObject.CreateInstance<WeaponData>();
|
||||
AssetDatabase.CreateAsset(data, path);
|
||||
}
|
||||
|
||||
data.weaponName = weaponName;
|
||||
data.damage = damage;
|
||||
data.fireRate = fireRate;
|
||||
data.magazineSize = magazineSize;
|
||||
data.totalReserveAmmo = reserveAmmo;
|
||||
data.spread = spread;
|
||||
data.recoilForce = recoilForce;
|
||||
data.reloadTime = reloadTime;
|
||||
data.pelletsPerShot = pelletsPerShot;
|
||||
data.range = range;
|
||||
data.automatic = automatic;
|
||||
data.weaponColor = weaponColor;
|
||||
data.description = description;
|
||||
data.muzzleFlashPrefab = muzzleFlashPrefab;
|
||||
data.hitEffectPrefab = hitEffectPrefab;
|
||||
|
||||
EditorUtility.SetDirty(data);
|
||||
return data;
|
||||
}
|
||||
|
||||
private static void CreateWeaponPrefabTemplate(string name, WeaponData data, Material material)
|
||||
{
|
||||
GameObject root = BuildWeaponModel(name, data, material);
|
||||
Weapon weapon = root.AddComponent<Weapon>();
|
||||
weapon.data = data;
|
||||
weapon.firePoint = root.transform.Find("FirePoint");
|
||||
|
||||
PrefabUtility.SaveAsPrefabAsset(root, PrefabsFolder + "/" + name + ".prefab");
|
||||
Object.DestroyImmediate(root);
|
||||
}
|
||||
|
||||
private static void CreateLighting()
|
||||
{
|
||||
GameObject lightObject = new GameObject("Directional Light");
|
||||
Light light = lightObject.AddComponent<Light>();
|
||||
light.type = LightType.Directional;
|
||||
light.intensity = 1.2f;
|
||||
lightObject.transform.rotation = Quaternion.Euler(50f, -30f, 0f);
|
||||
|
||||
RenderSettings.ambientLight = new Color(0.45f, 0.45f, 0.45f);
|
||||
}
|
||||
|
||||
private static void CreateEnvironment(Material floorMaterial, Material wallMaterial)
|
||||
{
|
||||
GameObject floor = GameObject.CreatePrimitive(PrimitiveType.Plane);
|
||||
floor.name = "Floor";
|
||||
floor.transform.localScale = new Vector3(4f, 1f, 4f);
|
||||
floor.GetComponent<Renderer>().sharedMaterial = floorMaterial;
|
||||
|
||||
CreateWall("Back Wall", new Vector3(0f, 2f, 18f), new Vector3(22f, 4f, 0.35f), wallMaterial);
|
||||
CreateWall("Left Wall", new Vector3(-11f, 2f, 6f), new Vector3(0.35f, 4f, 24f), wallMaterial);
|
||||
CreateWall("Right Wall", new Vector3(11f, 2f, 6f), new Vector3(0.35f, 4f, 24f), wallMaterial);
|
||||
CreateWall("Low Cover", new Vector3(0f, 0.75f, 7f), new Vector3(4f, 1.5f, 0.4f), wallMaterial);
|
||||
}
|
||||
|
||||
private static void CreateWall(string name, Vector3 position, Vector3 scale, Material material)
|
||||
{
|
||||
GameObject wall = GameObject.CreatePrimitive(PrimitiveType.Cube);
|
||||
wall.name = name;
|
||||
wall.transform.position = position;
|
||||
wall.transform.localScale = scale;
|
||||
wall.GetComponent<Renderer>().sharedMaterial = material;
|
||||
}
|
||||
|
||||
private static GameObject CreatePlayer(out Camera playerCamera, out Transform weaponHolder)
|
||||
{
|
||||
GameObject player = new GameObject("Player");
|
||||
player.transform.position = new Vector3(0f, 1.1f, -6f);
|
||||
|
||||
CharacterController controller = player.AddComponent<CharacterController>();
|
||||
controller.height = 1.8f;
|
||||
controller.radius = 0.35f;
|
||||
controller.center = new Vector3(0f, 0.9f, 0f);
|
||||
|
||||
SimpleFPSController fpsController = player.AddComponent<SimpleFPSController>();
|
||||
|
||||
GameObject cameraObject = new GameObject("Main Camera");
|
||||
cameraObject.tag = "MainCamera";
|
||||
cameraObject.transform.SetParent(player.transform);
|
||||
cameraObject.transform.localPosition = new Vector3(0f, 1.6f, 0f);
|
||||
cameraObject.transform.localRotation = Quaternion.identity;
|
||||
|
||||
playerCamera = cameraObject.AddComponent<Camera>();
|
||||
playerCamera.nearClipPlane = 0.01f;
|
||||
playerCamera.fieldOfView = 70f;
|
||||
cameraObject.AddComponent<AudioListener>();
|
||||
fpsController.playerCamera = playerCamera;
|
||||
|
||||
GameObject holder = new GameObject("WeaponHolder");
|
||||
holder.transform.SetParent(cameraObject.transform);
|
||||
holder.transform.localPosition = new Vector3(0.38f, -0.34f, 0.72f);
|
||||
holder.transform.localRotation = Quaternion.Euler(0f, -2f, 0f);
|
||||
weaponHolder = holder.transform;
|
||||
|
||||
return player;
|
||||
}
|
||||
|
||||
private static WeaponHUD CreateUI(Font uiFont, out Text ammoText, out Text weaponNameText, out Text reloadText)
|
||||
{
|
||||
GameObject canvasObject = new GameObject("HUD Canvas");
|
||||
Canvas canvas = canvasObject.AddComponent<Canvas>();
|
||||
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||||
|
||||
CanvasScaler scaler = canvasObject.AddComponent<CanvasScaler>();
|
||||
scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
|
||||
scaler.referenceResolution = new Vector2(1920f, 1080f);
|
||||
scaler.matchWidthOrHeight = 0.5f;
|
||||
|
||||
canvasObject.AddComponent<GraphicRaycaster>();
|
||||
WeaponHUD hud = canvasObject.AddComponent<WeaponHUD>();
|
||||
|
||||
hud.labTitleText = CreateText(canvasObject.transform, "Lab Title", "Лабораторная работа №2 — Data-Driven система оружия", 30, TextAnchor.UpperLeft, new Vector2(24f, -18f), new Vector2(760f, 48f), new Vector2(0f, 1f), new Vector2(0f, 1f), uiFont);
|
||||
weaponNameText = CreateText(canvasObject.transform, "Weapon Name", "Weapon: Pistol", 26, TextAnchor.UpperLeft, new Vector2(24f, -78f), new Vector2(360f, 38f), new Vector2(0f, 1f), new Vector2(0f, 1f), uiFont);
|
||||
ammoText = CreateText(canvasObject.transform, "Ammo", "Ammo: 8 / 40", 26, TextAnchor.UpperLeft, new Vector2(24f, -118f), new Vector2(320f, 38f), new Vector2(0f, 1f), new Vector2(0f, 1f), uiFont);
|
||||
reloadText = CreateText(canvasObject.transform, "Reload Status", "Ready", 24, TextAnchor.UpperLeft, new Vector2(24f, -158f), new Vector2(320f, 34f), new Vector2(0f, 1f), new Vector2(0f, 1f), uiFont);
|
||||
|
||||
hud.hintsText = CreateText(canvasObject.transform, "Controls Hint", "ЛКМ — стрелять\nR — перезарядка\n1/2/3 или колесо мыши — смена оружия\nWASD + мышь — движение", 21, TextAnchor.UpperLeft, new Vector2(24f, 152f), new Vector2(520f, 150f), new Vector2(0f, 0f), new Vector2(0f, 0f), uiFont);
|
||||
hud.statsText = CreateText(canvasObject.transform, "Weapon Stats", string.Empty, 22, TextAnchor.UpperRight, new Vector2(-24f, -78f), new Vector2(330f, 190f), new Vector2(1f, 1f), new Vector2(1f, 1f), uiFont);
|
||||
hud.messageText = CreateText(canvasObject.transform, "Message", string.Empty, 24, TextAnchor.MiddleCenter, new Vector2(0f, -210f), new Vector2(560f, 44f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), uiFont);
|
||||
hud.dataDrivenText = CreateText(canvasObject.transform, "Data Driven Note", "Параметры оружия хранятся в ScriptableObject-ассетах в папке Assets/_Data. Для добавления нового оружия достаточно создать новый WeaponData и назначить его объекту Weapon.", 19, TextAnchor.LowerRight, new Vector2(-24f, 22f), new Vector2(720f, 82f), new Vector2(1f, 0f), new Vector2(1f, 0f), uiFont);
|
||||
|
||||
hud.weaponNameText = weaponNameText;
|
||||
hud.ammoText = ammoText;
|
||||
hud.reloadText = reloadText;
|
||||
hud.SetReloading(false);
|
||||
|
||||
return hud;
|
||||
}
|
||||
|
||||
private static Text CreateText(Transform parent, string name, string value, int fontSize, TextAnchor alignment, Vector2 anchoredPosition, Vector2 size, Vector2 anchorMin, Vector2 anchorMax, Font uiFont)
|
||||
{
|
||||
GameObject textObject = new GameObject(name);
|
||||
textObject.transform.SetParent(parent, false);
|
||||
|
||||
RectTransform rect = textObject.AddComponent<RectTransform>();
|
||||
rect.anchorMin = anchorMin;
|
||||
rect.anchorMax = anchorMax;
|
||||
rect.pivot = new Vector2(anchorMin.x == anchorMax.x ? anchorMin.x : 0.5f, anchorMin.y == anchorMax.y ? anchorMin.y : 0.5f);
|
||||
rect.anchoredPosition = anchoredPosition;
|
||||
rect.sizeDelta = size;
|
||||
|
||||
Text text = textObject.AddComponent<Text>();
|
||||
text.text = value;
|
||||
text.font = uiFont;
|
||||
text.fontSize = fontSize;
|
||||
text.alignment = alignment;
|
||||
text.color = Color.white;
|
||||
text.horizontalOverflow = HorizontalWrapMode.Wrap;
|
||||
text.verticalOverflow = VerticalWrapMode.Overflow;
|
||||
|
||||
Outline outline = textObject.AddComponent<Outline>();
|
||||
outline.effectColor = new Color(0f, 0f, 0f, 0.85f);
|
||||
outline.effectDistance = new Vector2(1.5f, -1.5f);
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
private static Weapon CreateSceneWeapon(
|
||||
string name,
|
||||
WeaponData data,
|
||||
Material material,
|
||||
Transform parent,
|
||||
Camera playerCamera,
|
||||
WeaponHUD hud,
|
||||
Text ammoText,
|
||||
Text weaponNameText,
|
||||
Text reloadText,
|
||||
Vector3 localOffset)
|
||||
{
|
||||
GameObject weaponObject = BuildWeaponModel(name, data, material);
|
||||
weaponObject.transform.SetParent(parent, false);
|
||||
weaponObject.transform.localPosition = localOffset;
|
||||
weaponObject.transform.localRotation = Quaternion.identity;
|
||||
|
||||
Weapon weapon = weaponObject.AddComponent<Weapon>();
|
||||
weapon.data = data;
|
||||
weapon.playerCamera = playerCamera;
|
||||
weapon.hud = hud;
|
||||
weapon.ammoText = ammoText;
|
||||
weapon.weaponNameText = weaponNameText;
|
||||
weapon.reloadText = reloadText;
|
||||
weapon.firePoint = weaponObject.transform.Find("FirePoint");
|
||||
weaponObject.AddComponent<AudioSource>().spatialBlend = 0f;
|
||||
|
||||
return weapon;
|
||||
}
|
||||
|
||||
private static GameObject BuildWeaponModel(string name, WeaponData data, Material material)
|
||||
{
|
||||
GameObject root = new GameObject(name);
|
||||
|
||||
if (name == "Pistol")
|
||||
{
|
||||
AddPart(root.transform, "Slide", new Vector3(0f, 0f, 0.18f), new Vector3(0.18f, 0.12f, 0.55f), material);
|
||||
AddPart(root.transform, "Grip", new Vector3(0f, -0.16f, -0.02f), new Vector3(0.14f, 0.34f, 0.16f), material);
|
||||
AddPart(root.transform, "Barrel", new Vector3(0f, 0.02f, 0.52f), new Vector3(0.08f, 0.08f, 0.24f), material);
|
||||
CreateFirePoint(root.transform, new Vector3(0f, 0.02f, 0.66f));
|
||||
}
|
||||
else if (name == "Rifle")
|
||||
{
|
||||
AddPart(root.transform, "Body", new Vector3(0f, 0f, 0.3f), new Vector3(0.18f, 0.14f, 0.95f), material);
|
||||
AddPart(root.transform, "Stock", new Vector3(0f, 0f, -0.28f), new Vector3(0.2f, 0.16f, 0.34f), material);
|
||||
AddPart(root.transform, "Grip", new Vector3(0f, -0.18f, 0.05f), new Vector3(0.12f, 0.34f, 0.14f), material);
|
||||
AddPart(root.transform, "Barrel", new Vector3(0f, 0.02f, 0.92f), new Vector3(0.07f, 0.07f, 0.45f), material);
|
||||
CreateFirePoint(root.transform, new Vector3(0f, 0.02f, 1.16f));
|
||||
}
|
||||
else
|
||||
{
|
||||
AddPart(root.transform, "Wide Body", new Vector3(0f, 0f, 0.25f), new Vector3(0.24f, 0.16f, 0.86f), material);
|
||||
AddPart(root.transform, "Pump", new Vector3(0f, -0.08f, 0.54f), new Vector3(0.28f, 0.12f, 0.28f), material);
|
||||
AddPart(root.transform, "Grip", new Vector3(0f, -0.20f, -0.04f), new Vector3(0.13f, 0.36f, 0.16f), material);
|
||||
AddPart(root.transform, "Short Barrel", new Vector3(0f, 0.04f, 0.88f), new Vector3(0.14f, 0.10f, 0.36f), material);
|
||||
CreateFirePoint(root.transform, new Vector3(0f, 0.04f, 1.08f));
|
||||
}
|
||||
|
||||
root.transform.localRotation = Quaternion.identity;
|
||||
return root;
|
||||
}
|
||||
|
||||
private static void AddPart(Transform parent, string name, Vector3 localPosition, Vector3 localScale, Material material)
|
||||
{
|
||||
GameObject part = GameObject.CreatePrimitive(PrimitiveType.Cube);
|
||||
part.name = name;
|
||||
part.transform.SetParent(parent, false);
|
||||
part.transform.localPosition = localPosition;
|
||||
part.transform.localScale = localScale;
|
||||
|
||||
Collider collider = part.GetComponent<Collider>();
|
||||
if (collider != null)
|
||||
Object.DestroyImmediate(collider);
|
||||
|
||||
part.GetComponent<Renderer>().sharedMaterial = material;
|
||||
}
|
||||
|
||||
private static void CreateFirePoint(Transform parent, Vector3 localPosition)
|
||||
{
|
||||
GameObject firePoint = new GameObject("FirePoint");
|
||||
firePoint.transform.SetParent(parent, false);
|
||||
firePoint.transform.localPosition = localPosition;
|
||||
firePoint.transform.localRotation = Quaternion.identity;
|
||||
}
|
||||
|
||||
private static void CreateTargets(Material targetMaterial, Font uiFont)
|
||||
{
|
||||
List<Vector3> positions = new List<Vector3>
|
||||
{
|
||||
new Vector3(-3.5f, 1f, 5f),
|
||||
new Vector3(0f, 1f, 8f),
|
||||
new Vector3(3.5f, 1f, 11f),
|
||||
new Vector3(-5.5f, 1f, 14f),
|
||||
new Vector3(5.5f, 1f, 16f)
|
||||
};
|
||||
|
||||
for (int i = 0; i < positions.Count; i++)
|
||||
CreateTarget("EnemyTarget_" + (i + 1), positions[i], targetMaterial, uiFont);
|
||||
}
|
||||
|
||||
private static void CreateTarget(string name, Vector3 position, Material material, Font uiFont)
|
||||
{
|
||||
GameObject target = GameObject.CreatePrimitive(PrimitiveType.Cube);
|
||||
target.name = name;
|
||||
target.transform.position = position;
|
||||
target.transform.localScale = new Vector3(1.2f, 2f, 0.35f);
|
||||
target.GetComponent<Renderer>().sharedMaterial = material;
|
||||
|
||||
EnemyTarget enemyTarget = target.AddComponent<EnemyTarget>();
|
||||
enemyTarget.maxHealth = 100f;
|
||||
enemyTarget.targetRenderer = target.GetComponent<Renderer>();
|
||||
|
||||
GameObject canvasObject = new GameObject("Health Canvas");
|
||||
canvasObject.transform.SetParent(target.transform, false);
|
||||
canvasObject.transform.localPosition = new Vector3(0f, 1.25f, 0f);
|
||||
canvasObject.transform.localScale = Vector3.one * 0.012f;
|
||||
|
||||
Canvas canvas = canvasObject.AddComponent<Canvas>();
|
||||
canvas.renderMode = RenderMode.WorldSpace;
|
||||
|
||||
RectTransform canvasRect = canvasObject.GetComponent<RectTransform>();
|
||||
canvasRect.sizeDelta = new Vector2(220f, 50f);
|
||||
|
||||
Text healthText = CreateText(canvasObject.transform, "Health Text", "HP: 100 / 100", 24, TextAnchor.MiddleCenter, Vector2.zero, new Vector2(220f, 50f), new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), uiFont);
|
||||
enemyTarget.healthText = healthText;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e4fcda2f741dc8a5bbc73efb582bc11d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: caa758216f579305cb3c3d86791d5a4d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,267 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 705507994}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 12
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 500
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 500
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 2
|
||||
m_PVRDenoiserTypeDirect: 0
|
||||
m_PVRDenoiserTypeIndirect: 0
|
||||
m_PVRDenoiserTypeAO: 0
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 0
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &705507993
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 705507995}
|
||||
- component: {fileID: 705507994}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &705507994
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 705507993}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 8
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
||||
m_Intensity: 1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Lightmapping: 1
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
--- !u!4 &705507995
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 705507993}
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!1 &963194225
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 963194228}
|
||||
- component: {fileID: 963194227}
|
||||
- component: {fileID: 963194226}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &963194226
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 963194225}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &963194227
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 963194225}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_GateFitMode: 2
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: -1
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &963194228
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 963194225}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9fc0d4010bbf28b4594072e72b8655ab
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 773ab14c51ca4ae97b0e9d4bab3be03b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5413f03360d4e8dc6835d6046d00f28b, type: 3}
|
||||
m_Name: PistolData
|
||||
m_EditorClassIdentifier:
|
||||
weaponName: Pistol
|
||||
damage: 15
|
||||
fireRate: 0.25
|
||||
magazineSize: 8
|
||||
totalReserveAmmo: 40
|
||||
spread: 0.02
|
||||
recoilForce: 1.2
|
||||
reloadTime: 1.5
|
||||
pelletsPerShot: 1
|
||||
range: 80
|
||||
automatic: 0
|
||||
muzzleFlashPrefab: {fileID: 2375919680844321927, guid: fb16e27e3442d2a819f80f84ab728810, type: 3}
|
||||
hitEffectPrefab: {fileID: 7218625511766885412, guid: f6a3874fe457e298da8dd48ecb65faaf, type: 3}
|
||||
shootSound: {fileID: 0}
|
||||
reloadSound: {fileID: 0}
|
||||
weaponColor: {r: 0.049999982, g: 0.10999996, b: 0.24999997, a: 1}
|
||||
description: Accurate semi-automatic weapon for medium range.
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cafff696d0c93a0adbe0501c53e431ff
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5413f03360d4e8dc6835d6046d00f28b, type: 3}
|
||||
m_Name: RifleData
|
||||
m_EditorClassIdentifier:
|
||||
weaponName: Rifle
|
||||
damage: 10
|
||||
fireRate: 0.1
|
||||
magazineSize: 30
|
||||
totalReserveAmmo: 90
|
||||
spread: 0.06
|
||||
recoilForce: 2
|
||||
reloadTime: 2
|
||||
pelletsPerShot: 1
|
||||
range: 100
|
||||
automatic: 1
|
||||
muzzleFlashPrefab: {fileID: 2375919680844321927, guid: fb16e27e3442d2a819f80f84ab728810, type: 3}
|
||||
hitEffectPrefab: {fileID: 7218625511766885412, guid: f6a3874fe457e298da8dd48ecb65faaf, type: 3}
|
||||
shootSound: {fileID: 0}
|
||||
reloadSound: {fileID: 0}
|
||||
weaponColor: {r: 0.19999996, g: 0.34999996, b: 0.26999995, a: 1}
|
||||
description: Automatic rifle with high fire rate and moderate spread.
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f385d51a40c215f2fb35e401a7f4d0b0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5413f03360d4e8dc6835d6046d00f28b, type: 3}
|
||||
m_Name: SMGData
|
||||
m_EditorClassIdentifier:
|
||||
weaponName: SMG
|
||||
damage: 7
|
||||
fireRate: 0.075
|
||||
magazineSize: 24
|
||||
totalReserveAmmo: 120
|
||||
spread: 0.08
|
||||
recoilForce: 1.6
|
||||
reloadTime: 1.8
|
||||
pelletsPerShot: 1
|
||||
range: 75
|
||||
automatic: 1
|
||||
muzzleFlashPrefab: {fileID: 2375919680844321927, guid: fb16e27e3442d2a819f80f84ab728810, type: 3}
|
||||
hitEffectPrefab: {fileID: 7218625511766885412, guid: f6a3874fe457e298da8dd48ecb65faaf, type: 3}
|
||||
shootSound: {fileID: 0}
|
||||
reloadSound: {fileID: 0}
|
||||
weaponColor: {r: 0.34999996, g: 0.34999996, b: 0.37999994, a: 1}
|
||||
description: Additional data-only weapon example. It is not active in the scene.
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d6cd493448cdc02a9369bdb18cf72f7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5413f03360d4e8dc6835d6046d00f28b, type: 3}
|
||||
m_Name: ShotgunData
|
||||
m_EditorClassIdentifier:
|
||||
weaponName: Shotgun
|
||||
damage: 8
|
||||
fireRate: 0.8
|
||||
magazineSize: 5
|
||||
totalReserveAmmo: 25
|
||||
spread: 0.18
|
||||
recoilForce: 4
|
||||
reloadTime: 2.5
|
||||
pelletsPerShot: 8
|
||||
range: 45
|
||||
automatic: 0
|
||||
muzzleFlashPrefab: {fileID: 2375919680844321927, guid: fb16e27e3442d2a819f80f84ab728810, type: 3}
|
||||
hitEffectPrefab: {fileID: 7218625511766885412, guid: f6a3874fe457e298da8dd48ecb65faaf, type: 3}
|
||||
shootSound: {fileID: 0}
|
||||
reloadSound: {fileID: 0}
|
||||
weaponColor: {r: 0.45, g: 0.17999998, b: 0.09999997, a: 1}
|
||||
description: Close-range shotgun that fires several pellets per shot.
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5c0ec36ea12932e1962f8d82bca155b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 987b1f168c79aa6f19b2bbf42631e279
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f3bf8b7f9f7939da842c4f428b9e18a
|
||||
TrueTypeFontImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontNames:
|
||||
- Ubuntu
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
useLegacyBoundsCalculation: 0
|
||||
shouldRoundAdvanceValue: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7beb71aa4eb686116a9ebca66241e9ca
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Floor_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.35, g: 0.38, b: 0.34, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e7e99483e4ded3a3fa4998ca4f41fc52
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: HitEffect_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 0.95, b: 0.25, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d405687cdeaf8d4e3a16625cc2a7e6f7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: MuzzleFlash_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 0.62, b: 0.08, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bdc4c0fb99a571ec5bf54af991731694
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Pistol_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.05, g: 0.11, b: 0.25, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 050625036241b74d49575792e5eb090b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Rifle_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.2, g: 0.35, b: 0.27, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c49e2399b96eb6928982a2decddcb6f7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SMG_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.35, g: 0.35, b: 0.38, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78f2b6751532b412ca7fd9ecf313a0dd
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Shotgun_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.45, g: 0.18, b: 0.1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bc12325fdcb05d0b889bd3006d6d2f33
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Target_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.85, g: 0.15, b: 0.12, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ffbd18ea77742281592cd2e377c4f1c0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Wall_Mat
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.48, g: 0.5, b: 0.52, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1ec129bdecaf79927a146ba6f8cc9226
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 405eb6bb6ce8e09e89ccdbcdd0cced08
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,85 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7218625511766885412
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9045286354320748952}
|
||||
- component: {fileID: 7057309781195940068}
|
||||
- component: {fileID: 1536490455385039854}
|
||||
m_Layer: 0
|
||||
m_Name: HitEffectPrefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &9045286354320748952
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7218625511766885412}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.12, y: 0.12, z: 0.12}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &7057309781195940068
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7218625511766885412}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1536490455385039854
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7218625511766885412}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: d405687cdeaf8d4e3a16625cc2a7e6f7, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f6a3874fe457e298da8dd48ecb65faaf
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,85 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2375919680844321927
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 415517523925977850}
|
||||
- component: {fileID: 7792221044574738222}
|
||||
- component: {fileID: 7594471547344008558}
|
||||
m_Layer: 0
|
||||
m_Name: MuzzleFlashPrefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &415517523925977850
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2375919680844321927}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.16, y: 0.16, z: 0.16}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &7792221044574738222
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2375919680844321927}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &7594471547344008558
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2375919680844321927}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: bdc4c0fb99a571ec5bf54af991731694, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb16e27e3442d2a819f80f84ab728810
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,337 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4042176457210071675
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5693183096586515302}
|
||||
- component: {fileID: 3222751591043261249}
|
||||
- component: {fileID: 1862036877359489011}
|
||||
m_Layer: 0
|
||||
m_Name: Barrel
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5693183096586515302
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4042176457210071675}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.02, z: 0.52}
|
||||
m_LocalScale: {x: 0.08, y: 0.08, z: 0.24}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1330390943368278448}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &3222751591043261249
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4042176457210071675}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1862036877359489011
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4042176457210071675}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 050625036241b74d49575792e5eb090b, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &4338026986620260685
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5088431697170412315}
|
||||
- component: {fileID: 2277589533704708186}
|
||||
- component: {fileID: 4019030041743371663}
|
||||
m_Layer: 0
|
||||
m_Name: Grip
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5088431697170412315
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4338026986620260685}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: -0.16, z: -0.02}
|
||||
m_LocalScale: {x: 0.14, y: 0.34, z: 0.16}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1330390943368278448}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &2277589533704708186
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4338026986620260685}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &4019030041743371663
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4338026986620260685}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 050625036241b74d49575792e5eb090b, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &5015471023039688736
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4897858283511949598}
|
||||
- component: {fileID: 4406487227357745661}
|
||||
- component: {fileID: 7137031797597648445}
|
||||
m_Layer: 0
|
||||
m_Name: Slide
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4897858283511949598
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5015471023039688736}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0.18}
|
||||
m_LocalScale: {x: 0.18, y: 0.12, z: 0.55}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1330390943368278448}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &4406487227357745661
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5015471023039688736}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &7137031797597648445
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5015471023039688736}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 050625036241b74d49575792e5eb090b, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &5292384601144118981
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 486653740642904275}
|
||||
m_Layer: 0
|
||||
m_Name: FirePoint
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &486653740642904275
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5292384601144118981}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.02, z: 0.66}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1330390943368278448}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &6330796900015103458
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1330390943368278448}
|
||||
- component: {fileID: 3214801697263151392}
|
||||
m_Layer: 0
|
||||
m_Name: Pistol
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1330390943368278448
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6330796900015103458}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4897858283511949598}
|
||||
- {fileID: 5088431697170412315}
|
||||
- {fileID: 5693183096586515302}
|
||||
- {fileID: 486653740642904275}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3214801697263151392
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6330796900015103458}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c13135be72d369f4899a428acb107b04, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
data: {fileID: 11400000, guid: cafff696d0c93a0adbe0501c53e431ff, type: 2}
|
||||
ammoText: {fileID: 0}
|
||||
weaponNameText: {fileID: 0}
|
||||
reloadText: {fileID: 0}
|
||||
firePoint: {fileID: 486653740642904275}
|
||||
playerCamera: {fileID: 0}
|
||||
hud: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 68114cbb98fcdc1078d1677a8fd72ef0
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,421 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &757181968375255903
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1351220927963418134}
|
||||
- component: {fileID: 8802922111499631476}
|
||||
- component: {fileID: 6307715318599274672}
|
||||
m_Layer: 0
|
||||
m_Name: Barrel
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1351220927963418134
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 757181968375255903}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.02, z: 0.92}
|
||||
m_LocalScale: {x: 0.07, y: 0.07, z: 0.45}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6844259275194334896}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &8802922111499631476
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 757181968375255903}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6307715318599274672
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 757181968375255903}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: c49e2399b96eb6928982a2decddcb6f7, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &858182757830319000
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3899930314630631340}
|
||||
- component: {fileID: 1186506318302073656}
|
||||
- component: {fileID: 457827248353690492}
|
||||
m_Layer: 0
|
||||
m_Name: Body
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3899930314630631340
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 858182757830319000}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0.3}
|
||||
m_LocalScale: {x: 0.18, y: 0.14, z: 0.95}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6844259275194334896}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1186506318302073656
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 858182757830319000}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &457827248353690492
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 858182757830319000}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: c49e2399b96eb6928982a2decddcb6f7, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &3890013257684271586
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 21286511543041169}
|
||||
m_Layer: 0
|
||||
m_Name: FirePoint
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &21286511543041169
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3890013257684271586}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.02, z: 1.16}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6844259275194334896}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &4632473261715385793
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7978456678909318299}
|
||||
- component: {fileID: 7220342218110321628}
|
||||
- component: {fileID: 3226458718294997331}
|
||||
m_Layer: 0
|
||||
m_Name: Stock
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7978456678909318299
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4632473261715385793}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -0.28}
|
||||
m_LocalScale: {x: 0.2, y: 0.16, z: 0.34}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6844259275194334896}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &7220342218110321628
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4632473261715385793}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &3226458718294997331
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4632473261715385793}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: c49e2399b96eb6928982a2decddcb6f7, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &6976358252015130939
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3791447936061779950}
|
||||
- component: {fileID: 4460395880266643245}
|
||||
- component: {fileID: 1999819693862302499}
|
||||
m_Layer: 0
|
||||
m_Name: Grip
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3791447936061779950
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6976358252015130939}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: -0.18, z: 0.05}
|
||||
m_LocalScale: {x: 0.12, y: 0.34, z: 0.14}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6844259275194334896}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &4460395880266643245
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6976358252015130939}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1999819693862302499
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6976358252015130939}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: c49e2399b96eb6928982a2decddcb6f7, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &8076372765466031516
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6844259275194334896}
|
||||
- component: {fileID: 4088657663760291813}
|
||||
m_Layer: 0
|
||||
m_Name: Rifle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6844259275194334896
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8076372765466031516}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3899930314630631340}
|
||||
- {fileID: 7978456678909318299}
|
||||
- {fileID: 3791447936061779950}
|
||||
- {fileID: 1351220927963418134}
|
||||
- {fileID: 21286511543041169}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &4088657663760291813
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8076372765466031516}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c13135be72d369f4899a428acb107b04, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
data: {fileID: 11400000, guid: f385d51a40c215f2fb35e401a7f4d0b0, type: 2}
|
||||
ammoText: {fileID: 0}
|
||||
weaponNameText: {fileID: 0}
|
||||
reloadText: {fileID: 0}
|
||||
firePoint: {fileID: 21286511543041169}
|
||||
playerCamera: {fileID: 0}
|
||||
hud: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77b757c7134c8173f9d027fae714d210
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,421 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &63121835525005297
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5243328157770315139}
|
||||
- component: {fileID: 6833791753375853336}
|
||||
- component: {fileID: 6954618063708699190}
|
||||
m_Layer: 0
|
||||
m_Name: Wide Body
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5243328157770315139
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 63121835525005297}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0.25}
|
||||
m_LocalScale: {x: 0.24, y: 0.16, z: 0.86}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1978200230901984874}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &6833791753375853336
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 63121835525005297}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6954618063708699190
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 63121835525005297}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: bc12325fdcb05d0b889bd3006d6d2f33, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &394034197789831260
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5137599621283714398}
|
||||
m_Layer: 0
|
||||
m_Name: FirePoint
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5137599621283714398
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 394034197789831260}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.04, z: 1.08}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1978200230901984874}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1985309591138871185
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1297132711649629897}
|
||||
- component: {fileID: 6517111209813865581}
|
||||
- component: {fileID: 3315122235276491020}
|
||||
m_Layer: 0
|
||||
m_Name: Short Barrel
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1297132711649629897
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1985309591138871185}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.04, z: 0.88}
|
||||
m_LocalScale: {x: 0.14, y: 0.1, z: 0.36}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1978200230901984874}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &6517111209813865581
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1985309591138871185}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &3315122235276491020
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1985309591138871185}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: bc12325fdcb05d0b889bd3006d6d2f33, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &5325579715283459654
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1053883567382507757}
|
||||
- component: {fileID: 6846391629667302497}
|
||||
- component: {fileID: 6378617807156234044}
|
||||
m_Layer: 0
|
||||
m_Name: Pump
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1053883567382507757
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5325579715283459654}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: -0.08, z: 0.54}
|
||||
m_LocalScale: {x: 0.28, y: 0.12, z: 0.28}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1978200230901984874}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &6846391629667302497
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5325579715283459654}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6378617807156234044
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5325579715283459654}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: bc12325fdcb05d0b889bd3006d6d2f33, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &7811065747230418672
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9164233543046456228}
|
||||
- component: {fileID: 3742049285071034644}
|
||||
- component: {fileID: 3475367063622263694}
|
||||
m_Layer: 0
|
||||
m_Name: Grip
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &9164233543046456228
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7811065747230418672}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: -0.2, z: -0.04}
|
||||
m_LocalScale: {x: 0.13, y: 0.36, z: 0.16}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1978200230901984874}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &3742049285071034644
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7811065747230418672}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &3475367063622263694
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7811065747230418672}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: bc12325fdcb05d0b889bd3006d6d2f33, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &8862271019811539429
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1978200230901984874}
|
||||
- component: {fileID: 1984225442873349170}
|
||||
m_Layer: 0
|
||||
m_Name: Shotgun
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1978200230901984874
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8862271019811539429}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 5243328157770315139}
|
||||
- {fileID: 1053883567382507757}
|
||||
- {fileID: 9164233543046456228}
|
||||
- {fileID: 1297132711649629897}
|
||||
- {fileID: 5137599621283714398}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1984225442873349170
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8862271019811539429}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c13135be72d369f4899a428acb107b04, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
data: {fileID: 11400000, guid: e5c0ec36ea12932e1962f8d82bca155b, type: 2}
|
||||
ammoText: {fileID: 0}
|
||||
weaponNameText: {fileID: 0}
|
||||
reloadText: {fileID: 0}
|
||||
firePoint: {fileID: 5137599621283714398}
|
||||
playerCamera: {fileID: 0}
|
||||
hud: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1259ae71ebf627f1d9dc287dc45c5a67
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7da597460209c99f78a577bc0495fbdb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc46d7160868229f2802847e6a2d5a8d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c30eb3150c8ebe07bc4c6f73cf6e583
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,98 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class EnemyTarget : MonoBehaviour
|
||||
{
|
||||
public float maxHealth = 100f;
|
||||
public float currentHealth;
|
||||
public Text healthText;
|
||||
public Renderer targetRenderer;
|
||||
|
||||
private Color originalColor = Color.white;
|
||||
private Collider targetCollider;
|
||||
private Coroutine flashRoutine;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (targetRenderer == null)
|
||||
targetRenderer = GetComponentInChildren<Renderer>();
|
||||
|
||||
targetCollider = GetComponent<Collider>();
|
||||
|
||||
if (targetRenderer != null)
|
||||
originalColor = targetRenderer.material.color;
|
||||
|
||||
ResetTarget();
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
if (healthText != null && Camera.main != null)
|
||||
healthText.transform.rotation = Quaternion.LookRotation(healthText.transform.position - Camera.main.transform.position);
|
||||
}
|
||||
|
||||
public void TakeDamage(float amount)
|
||||
{
|
||||
if (currentHealth <= 0f)
|
||||
return;
|
||||
|
||||
// Targets can be reused in tests through ResetTarget without rebuilding the scene.
|
||||
currentHealth = Mathf.Max(0f, currentHealth - Mathf.Max(0f, amount));
|
||||
UpdateHealthText();
|
||||
|
||||
if (currentHealth <= 0f)
|
||||
{
|
||||
Die();
|
||||
return;
|
||||
}
|
||||
|
||||
if (flashRoutine != null)
|
||||
StopCoroutine(flashRoutine);
|
||||
|
||||
flashRoutine = StartCoroutine(FlashRoutine());
|
||||
}
|
||||
|
||||
public void ResetTarget()
|
||||
{
|
||||
currentHealth = maxHealth;
|
||||
|
||||
if (targetCollider != null)
|
||||
targetCollider.enabled = true;
|
||||
|
||||
if (targetRenderer != null)
|
||||
targetRenderer.material.color = originalColor;
|
||||
|
||||
UpdateHealthText();
|
||||
}
|
||||
|
||||
private void Die()
|
||||
{
|
||||
if (targetCollider != null)
|
||||
targetCollider.enabled = false;
|
||||
|
||||
if (targetRenderer != null)
|
||||
targetRenderer.material.color = Color.black;
|
||||
|
||||
UpdateHealthText();
|
||||
}
|
||||
|
||||
private IEnumerator FlashRoutine()
|
||||
{
|
||||
if (targetRenderer != null)
|
||||
targetRenderer.material.color = Color.yellow;
|
||||
|
||||
yield return new WaitForSeconds(0.08f);
|
||||
|
||||
if (targetRenderer != null && currentHealth > 0f)
|
||||
targetRenderer.material.color = originalColor;
|
||||
|
||||
flashRoutine = null;
|
||||
}
|
||||
|
||||
private void UpdateHealthText()
|
||||
{
|
||||
if (healthText != null)
|
||||
healthText.text = "HP: " + Mathf.CeilToInt(currentHealth) + " / " + Mathf.CeilToInt(maxHealth);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91bdd1bdbdab9312fb7492c3e0712c7f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
using UnityEngine;
|
||||
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
public class SimpleFPSController : MonoBehaviour
|
||||
{
|
||||
public Camera playerCamera;
|
||||
public float moveSpeed = 6f;
|
||||
public float mouseSensitivity = 2f;
|
||||
public float gravity = -20f;
|
||||
public float jumpHeight = 1.2f;
|
||||
public float recoilReturnSpeed = 18f;
|
||||
|
||||
private CharacterController characterController;
|
||||
private float verticalVelocity;
|
||||
private float pitch;
|
||||
private float recoilPitchOffset;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
characterController = GetComponent<CharacterController>();
|
||||
|
||||
if (playerCamera == null)
|
||||
playerCamera = GetComponentInChildren<Camera>();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
Cursor.visible = false;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
Look();
|
||||
Move();
|
||||
}
|
||||
|
||||
public void AddRecoil(float amount)
|
||||
{
|
||||
recoilPitchOffset -= Mathf.Clamp(amount, 0f, 8f);
|
||||
}
|
||||
|
||||
private void Look()
|
||||
{
|
||||
float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity;
|
||||
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity;
|
||||
|
||||
transform.Rotate(Vector3.up * mouseX);
|
||||
pitch = Mathf.Clamp(pitch - mouseY, -85f, 85f);
|
||||
recoilPitchOffset = Mathf.MoveTowards(recoilPitchOffset, 0f, recoilReturnSpeed * Time.deltaTime);
|
||||
|
||||
if (playerCamera != null)
|
||||
playerCamera.transform.localRotation = Quaternion.Euler(pitch + recoilPitchOffset, 0f, 0f);
|
||||
}
|
||||
|
||||
private void Move()
|
||||
{
|
||||
Vector3 input = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
|
||||
input = Vector3.ClampMagnitude(input, 1f);
|
||||
|
||||
Vector3 move = transform.TransformDirection(input) * moveSpeed;
|
||||
|
||||
if (characterController.isGrounded && verticalVelocity < 0f)
|
||||
verticalVelocity = -2f;
|
||||
|
||||
if (characterController.isGrounded && Input.GetKeyDown(KeyCode.Space))
|
||||
verticalVelocity = Mathf.Sqrt(jumpHeight * -2f * gravity);
|
||||
|
||||
verticalVelocity += gravity * Time.deltaTime;
|
||||
move.y = verticalVelocity;
|
||||
|
||||
characterController.Move(move * Time.deltaTime);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cffd232c30a413e2580e7585626facfb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,307 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class Weapon : MonoBehaviour
|
||||
{
|
||||
public WeaponData data;
|
||||
public Text ammoText;
|
||||
public Text weaponNameText;
|
||||
public Text reloadText;
|
||||
public Transform firePoint;
|
||||
public Camera playerCamera;
|
||||
public WeaponHUD hud;
|
||||
|
||||
private int currentAmmo;
|
||||
private int currentReserve;
|
||||
private float nextFireTime;
|
||||
private bool isReloading;
|
||||
private Vector3 originalLocalPosition;
|
||||
private Quaternion originalCameraRotation;
|
||||
|
||||
private bool initialized;
|
||||
private AudioSource audioSource;
|
||||
private Coroutine reloadRoutine;
|
||||
private Coroutine recoilRoutine;
|
||||
private SimpleFPSController fpsController;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
audioSource = GetComponent<AudioSource>();
|
||||
originalLocalPosition = transform.localPosition;
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
OnSelected();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (data == null)
|
||||
return;
|
||||
|
||||
bool wantsToShoot = data.automatic ? Input.GetButton("Fire1") : Input.GetButtonDown("Fire1");
|
||||
|
||||
if (wantsToShoot)
|
||||
TryShoot();
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.R))
|
||||
Reload();
|
||||
|
||||
UpdateUI();
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
if (data == null || initialized)
|
||||
return;
|
||||
|
||||
currentAmmo = Mathf.Max(0, data.magazineSize);
|
||||
currentReserve = Mathf.Max(0, data.totalReserveAmmo);
|
||||
originalLocalPosition = transform.localPosition;
|
||||
|
||||
if (playerCamera != null)
|
||||
{
|
||||
originalCameraRotation = playerCamera.transform.localRotation;
|
||||
fpsController = playerCamera.GetComponentInParent<SimpleFPSController>();
|
||||
}
|
||||
|
||||
initialized = true;
|
||||
UpdateUI();
|
||||
}
|
||||
|
||||
public void TryShoot()
|
||||
{
|
||||
if (data == null)
|
||||
return;
|
||||
|
||||
// Shooting behavior is data-driven: automatic weapons use held Fire1, semi-auto weapons use one click.
|
||||
if (isReloading)
|
||||
return;
|
||||
|
||||
if (currentAmmo <= 0)
|
||||
{
|
||||
ShowMessage("No ammo. Press R to reload.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Time.time < nextFireTime)
|
||||
return;
|
||||
|
||||
if (!CanShoot())
|
||||
return;
|
||||
|
||||
Shoot();
|
||||
}
|
||||
|
||||
public void Shoot()
|
||||
{
|
||||
if (data == null || playerCamera == null)
|
||||
return;
|
||||
|
||||
currentAmmo--;
|
||||
nextFireTime = Time.time + Mathf.Max(0.01f, data.fireRate);
|
||||
|
||||
PlaySound(data.shootSound);
|
||||
SpawnMuzzleFlash();
|
||||
|
||||
int pelletCount = Mathf.Max(1, data.pelletsPerShot);
|
||||
for (int i = 0; i < pelletCount; i++)
|
||||
FireRay();
|
||||
|
||||
ApplyRecoil();
|
||||
UpdateUI();
|
||||
}
|
||||
|
||||
public void Reload()
|
||||
{
|
||||
if (data == null || isReloading)
|
||||
return;
|
||||
|
||||
if (currentAmmo >= data.magazineSize)
|
||||
{
|
||||
ShowMessage("Magazine is full.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentReserve <= 0)
|
||||
{
|
||||
ShowMessage("No reserve ammo.");
|
||||
return;
|
||||
}
|
||||
|
||||
reloadRoutine = StartCoroutine(ReloadRoutine());
|
||||
}
|
||||
|
||||
public void UpdateUI()
|
||||
{
|
||||
if (data != null && weaponNameText != null)
|
||||
weaponNameText.text = "Weapon: " + data.weaponName;
|
||||
|
||||
if (ammoText != null)
|
||||
ammoText.text = "Ammo: " + currentAmmo + " / " + currentReserve;
|
||||
|
||||
if (reloadText != null)
|
||||
reloadText.text = isReloading ? "Reloading..." : "Ready";
|
||||
|
||||
if (hud != null)
|
||||
{
|
||||
hud.SetWeapon(data);
|
||||
hud.SetAmmo(currentAmmo, currentReserve);
|
||||
hud.SetReloading(isReloading);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnSelected()
|
||||
{
|
||||
Initialize();
|
||||
UpdateUI();
|
||||
}
|
||||
|
||||
public void OnDeselected()
|
||||
{
|
||||
if (recoilRoutine != null)
|
||||
{
|
||||
StopCoroutine(recoilRoutine);
|
||||
recoilRoutine = null;
|
||||
}
|
||||
|
||||
transform.localPosition = originalLocalPosition;
|
||||
}
|
||||
|
||||
public bool CanShoot()
|
||||
{
|
||||
return data != null && !isReloading && currentAmmo > 0 && Time.time >= nextFireTime;
|
||||
}
|
||||
|
||||
public int GetCurrentAmmo()
|
||||
{
|
||||
return currentAmmo;
|
||||
}
|
||||
|
||||
public int GetCurrentReserve()
|
||||
{
|
||||
return currentReserve;
|
||||
}
|
||||
|
||||
public bool IsReloading()
|
||||
{
|
||||
return isReloading;
|
||||
}
|
||||
|
||||
private IEnumerator ReloadRoutine()
|
||||
{
|
||||
isReloading = true;
|
||||
UpdateUI();
|
||||
PlaySound(data.reloadSound);
|
||||
|
||||
yield return new WaitForSeconds(Mathf.Max(0f, data.reloadTime));
|
||||
|
||||
int neededAmmo = Mathf.Max(0, data.magazineSize - currentAmmo);
|
||||
int ammoToLoad = Mathf.Min(neededAmmo, currentReserve);
|
||||
|
||||
currentAmmo += ammoToLoad;
|
||||
currentReserve -= ammoToLoad;
|
||||
isReloading = false;
|
||||
reloadRoutine = null;
|
||||
UpdateUI();
|
||||
}
|
||||
|
||||
private void FireRay()
|
||||
{
|
||||
Vector3 origin = playerCamera.transform.position;
|
||||
|
||||
// Spread is applied around the camera forward vector, so all weapons use the same aiming source.
|
||||
Vector2 randomOffset = Random.insideUnitCircle * Mathf.Max(0f, data.spread);
|
||||
Vector3 direction = playerCamera.transform.forward +
|
||||
playerCamera.transform.right * randomOffset.x +
|
||||
playerCamera.transform.up * randomOffset.y;
|
||||
direction.Normalize();
|
||||
|
||||
Debug.DrawRay(origin, direction * data.range, Color.yellow, 1f);
|
||||
|
||||
if (Physics.Raycast(origin, direction, out RaycastHit hit, Mathf.Max(0.1f, data.range)))
|
||||
{
|
||||
EnemyTarget target = hit.collider.GetComponentInParent<EnemyTarget>();
|
||||
if (target != null)
|
||||
target.TakeDamage(data.damage);
|
||||
|
||||
SpawnHitEffect(hit);
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyRecoil()
|
||||
{
|
||||
// The FPS controller owns camera look; the weapon only feeds a temporary visual recoil offset.
|
||||
if (fpsController != null)
|
||||
fpsController.AddRecoil(data.recoilForce);
|
||||
else if (playerCamera != null)
|
||||
playerCamera.transform.localRotation = originalCameraRotation * Quaternion.Euler(-data.recoilForce, 0f, 0f);
|
||||
|
||||
if (recoilRoutine != null)
|
||||
StopCoroutine(recoilRoutine);
|
||||
|
||||
recoilRoutine = StartCoroutine(RecoilRoutine());
|
||||
}
|
||||
|
||||
private IEnumerator RecoilRoutine()
|
||||
{
|
||||
Vector3 recoilPosition = originalLocalPosition - Vector3.forward * Mathf.Clamp(data.recoilForce * 0.035f, 0.02f, 0.18f);
|
||||
float t = 0f;
|
||||
|
||||
while (t < 1f)
|
||||
{
|
||||
t += Time.deltaTime * 20f;
|
||||
transform.localPosition = Vector3.Lerp(transform.localPosition, recoilPosition, t);
|
||||
yield return null;
|
||||
}
|
||||
|
||||
t = 0f;
|
||||
while (t < 1f)
|
||||
{
|
||||
t += Time.deltaTime * 10f;
|
||||
transform.localPosition = Vector3.Lerp(transform.localPosition, originalLocalPosition, t);
|
||||
|
||||
if (fpsController == null && playerCamera != null)
|
||||
playerCamera.transform.localRotation = Quaternion.Slerp(playerCamera.transform.localRotation, originalCameraRotation, t);
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
||||
transform.localPosition = originalLocalPosition;
|
||||
recoilRoutine = null;
|
||||
}
|
||||
|
||||
private void SpawnMuzzleFlash()
|
||||
{
|
||||
if (data.muzzleFlashPrefab == null || firePoint == null)
|
||||
return;
|
||||
|
||||
GameObject flash = Instantiate(data.muzzleFlashPrefab, firePoint.position, firePoint.rotation, firePoint);
|
||||
Destroy(flash, 0.08f);
|
||||
}
|
||||
|
||||
private void SpawnHitEffect(RaycastHit hit)
|
||||
{
|
||||
if (data.hitEffectPrefab == null)
|
||||
return;
|
||||
|
||||
Quaternion rotation = Quaternion.LookRotation(hit.normal);
|
||||
GameObject effect = Instantiate(data.hitEffectPrefab, hit.point + hit.normal * 0.01f, rotation);
|
||||
Destroy(effect, 0.8f);
|
||||
}
|
||||
|
||||
private void PlaySound(AudioClip clip)
|
||||
{
|
||||
if (clip != null && audioSource != null)
|
||||
audioSource.PlayOneShot(clip);
|
||||
}
|
||||
|
||||
private void ShowMessage(string message)
|
||||
{
|
||||
if (hud != null)
|
||||
hud.ShowMessage(message);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c13135be72d369f4899a428acb107b04
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,23 @@
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "WeaponData", menuName = "WeaponSystem/WeaponData")]
|
||||
public class WeaponData : ScriptableObject
|
||||
{
|
||||
public string weaponName;
|
||||
public float damage;
|
||||
public float fireRate;
|
||||
public int magazineSize;
|
||||
public int totalReserveAmmo;
|
||||
public float spread;
|
||||
public float recoilForce;
|
||||
public float reloadTime;
|
||||
public int pelletsPerShot;
|
||||
public float range;
|
||||
public bool automatic;
|
||||
public GameObject muzzleFlashPrefab;
|
||||
public GameObject hitEffectPrefab;
|
||||
public AudioClip shootSound;
|
||||
public AudioClip reloadSound;
|
||||
public Color weaponColor;
|
||||
[TextArea(2, 5)] public string description;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5413f03360d4e8dc6835d6046d00f28b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,92 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class WeaponHUD : MonoBehaviour
|
||||
{
|
||||
public Text labTitleText;
|
||||
public Text weaponNameText;
|
||||
public Text ammoText;
|
||||
public Text reloadText;
|
||||
public Text hintsText;
|
||||
public Text statsText;
|
||||
public Text messageText;
|
||||
public Text dataDrivenText;
|
||||
|
||||
private Coroutine messageRoutine;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
SetText(labTitleText, "Лабораторная работа №2 — Data-Driven система оружия");
|
||||
SetText(hintsText, "ЛКМ — стрелять\nR — перезарядка\n1/2/3 или колесо мыши — смена оружия\nWASD + мышь — движение");
|
||||
SetText(dataDrivenText, "Параметры оружия хранятся в ScriptableObject-ассетах в папке Assets/_Data. Для добавления нового оружия достаточно создать новый WeaponData и назначить его объекту Weapon.");
|
||||
SetReloading(false);
|
||||
}
|
||||
|
||||
public void SetWeapon(WeaponData data)
|
||||
{
|
||||
if (data == null)
|
||||
{
|
||||
SetText(weaponNameText, "Weapon: None");
|
||||
UpdateWeaponStats(null);
|
||||
return;
|
||||
}
|
||||
|
||||
SetText(weaponNameText, "Weapon: " + data.weaponName);
|
||||
UpdateWeaponStats(data);
|
||||
}
|
||||
|
||||
public void SetAmmo(int currentAmmo, int reserve)
|
||||
{
|
||||
SetText(ammoText, "Ammo: " + currentAmmo + " / " + reserve);
|
||||
}
|
||||
|
||||
public void SetReloading(bool isReloading)
|
||||
{
|
||||
SetText(reloadText, isReloading ? "Reloading..." : "Ready");
|
||||
}
|
||||
|
||||
public void ShowMessage(string message)
|
||||
{
|
||||
if (messageText == null)
|
||||
return;
|
||||
|
||||
if (messageRoutine != null)
|
||||
StopCoroutine(messageRoutine);
|
||||
|
||||
messageRoutine = StartCoroutine(MessageRoutine(message));
|
||||
}
|
||||
|
||||
public void UpdateWeaponStats(WeaponData data)
|
||||
{
|
||||
if (data == null)
|
||||
{
|
||||
SetText(statsText, "Damage: -\nFire Rate: -\nSpread: -\nRecoil: -\nMagazine: -\nPellets: -");
|
||||
return;
|
||||
}
|
||||
|
||||
string stats =
|
||||
"Damage: " + data.damage.ToString("0.##") +
|
||||
"\nFire Rate: " + data.fireRate.ToString("0.##") + " sec" +
|
||||
"\nSpread: " + data.spread.ToString("0.###") +
|
||||
"\nRecoil: " + data.recoilForce.ToString("0.##") +
|
||||
"\nMagazine: " + data.magazineSize +
|
||||
"\nPellets: " + Mathf.Max(1, data.pelletsPerShot);
|
||||
|
||||
SetText(statsText, stats);
|
||||
}
|
||||
|
||||
private IEnumerator MessageRoutine(string message)
|
||||
{
|
||||
SetText(messageText, message);
|
||||
yield return new WaitForSeconds(2f);
|
||||
SetText(messageText, string.Empty);
|
||||
messageRoutine = null;
|
||||
}
|
||||
|
||||
private static void SetText(Text target, string value)
|
||||
{
|
||||
if (target != null)
|
||||
target.text = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f8b80e2f8ae09bd4ab5926760700b87a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,115 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class WeaponSwitcher : MonoBehaviour
|
||||
{
|
||||
public Weapon[] weapons;
|
||||
public int currentIndex;
|
||||
public Text weaponNameText;
|
||||
public WeaponHUD hud;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (weapons == null || weapons.Length == 0)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < weapons.Length; i++)
|
||||
{
|
||||
if (weapons[i] == null)
|
||||
continue;
|
||||
|
||||
weapons[i].Initialize();
|
||||
weapons[i].gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
currentIndex = Mathf.Clamp(currentIndex, 0, weapons.Length - 1);
|
||||
SwitchTo(currentIndex);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (weapons == null || weapons.Length == 0)
|
||||
return;
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.Alpha1))
|
||||
SwitchTo(0);
|
||||
else if (Input.GetKeyDown(KeyCode.Alpha2))
|
||||
SwitchTo(1);
|
||||
else if (Input.GetKeyDown(KeyCode.Alpha3))
|
||||
SwitchTo(2);
|
||||
|
||||
float scroll = Input.GetAxis("Mouse ScrollWheel");
|
||||
if (scroll > 0.01f)
|
||||
NextWeapon();
|
||||
else if (scroll < -0.01f)
|
||||
PreviousWeapon();
|
||||
}
|
||||
|
||||
public void SwitchTo(int index)
|
||||
{
|
||||
if (weapons == null || weapons.Length == 0 || index < 0 || index >= weapons.Length)
|
||||
return;
|
||||
|
||||
// Reloading locks weapon switching to keep ammo state predictable.
|
||||
Weapon currentWeapon = GetCurrentWeapon();
|
||||
if (currentWeapon != null && currentWeapon.IsReloading())
|
||||
{
|
||||
if (hud != null)
|
||||
hud.ShowMessage("Cannot switch while reloading.");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < weapons.Length; i++)
|
||||
{
|
||||
if (weapons[i] == null)
|
||||
continue;
|
||||
|
||||
bool active = i == index;
|
||||
if (!active && weapons[i].gameObject.activeSelf)
|
||||
weapons[i].OnDeselected();
|
||||
|
||||
weapons[i].gameObject.SetActive(active);
|
||||
}
|
||||
|
||||
currentIndex = index;
|
||||
Weapon selected = GetCurrentWeapon();
|
||||
if (selected != null)
|
||||
{
|
||||
selected.OnSelected();
|
||||
|
||||
if (weaponNameText != null && selected.data != null)
|
||||
weaponNameText.text = "Weapon: " + selected.data.weaponName;
|
||||
|
||||
if (hud != null)
|
||||
hud.SetWeapon(selected.data);
|
||||
}
|
||||
}
|
||||
|
||||
public void NextWeapon()
|
||||
{
|
||||
if (weapons == null || weapons.Length == 0)
|
||||
return;
|
||||
|
||||
SwitchTo((currentIndex + 1) % weapons.Length);
|
||||
}
|
||||
|
||||
public void PreviousWeapon()
|
||||
{
|
||||
if (weapons == null || weapons.Length == 0)
|
||||
return;
|
||||
|
||||
int nextIndex = currentIndex - 1;
|
||||
if (nextIndex < 0)
|
||||
nextIndex = weapons.Length - 1;
|
||||
|
||||
SwitchTo(nextIndex);
|
||||
}
|
||||
|
||||
public Weapon GetCurrentWeapon()
|
||||
{
|
||||
if (weapons == null || weapons.Length == 0 || currentIndex < 0 || currentIndex >= weapons.Length)
|
||||
return null;
|
||||
|
||||
return weapons[currentIndex];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfb51c15323d884dd814637ab1d51485
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user