add some extra assets FX and SFX

This commit is contained in:
Robii Aragon
2026-03-29 23:03:14 -07:00
parent 6ef3eb1535
commit 24dc66a81e
10142 changed files with 2535978 additions and 36608 deletions

View File

@@ -6,478 +6,515 @@ using UnityEngine.UI;
public class attrackObjectsSystem : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
[Header ("Main Settings")]
[Space]
public bool attractionEnabled;
public bool attractionEnabled;
public bool attractionApplyForce = true;
public bool attractionActive;
public float attractionRadius = 20;
public bool attractionApplyForce = true;
public float attractionRadius = 20;
public LayerMask layerToSearch;
public LayerMask layerToSearch;
public float attractionVelocity = 10;
public float attractionForce = 1000;
public ForceMode forceMode;
[Space]
public float maxThrowForce = 3500;
public float increaseThrowForceSpeed = 1500;
public float attractionVelocity = 10;
public float attractionForce = 1000;
public ForceMode forceMode;
public List<string> tagToLocate = new List<string> ();
public float maxThrowForce = 3500;
public float increaseThrowForceSpeed = 1500;
public LayerMask layerToDamage;
public List<string> tagToLocate = new List<string> ();
[Space]
[Header ("Remote Events Settings")]
[Space]
public LayerMask layerToDamage;
public bool useRemoteEventOnObjectsFound;
public List<string> remoteEventNameListOnGrabObject = new List<string> ();
public List<string> remoteEventNameListOnDropObject = new List<string> ();
[Space]
[Header ("Remote Events Settings")]
[Space]
[Space]
[Header ("Debug")]
[Space]
public bool useRemoteEventOnObjectsFound;
public List<string> remoteEventNameListOnGrabObject = new List<string> ();
public List<string> remoteEventNameListOnDropObject = new List<string> ();
public bool carryingObjects;
[Space]
[Header ("Debug")]
[Space]
[Space]
[Header ("Events Settings")]
[Space]
public bool carryingObjects;
public bool attractionActive;
public UnityEvent eventsOnActivateAttraction;
public UnityEvent eventOnDeactivateAttraction;
[Space]
[Header ("Events Settings")]
[Space]
[Space]
[Header ("Components")]
[Space]
public UnityEvent eventsOnActivateAttraction;
public UnityEvent eventOnDeactivateAttraction;
public Slider powerSlider;
public Transform mainCameraTransform;
public Transform attractionPosition;
public Collider playerCollider;
public GameObject playerGameObject;
[Space]
[Header ("Components")]
[Space]
public playerWeaponSystem mainPlayerWeaponSystem;
public Slider powerSlider;
public Transform mainCameraTransform;
public Transform attractionPosition;
public Collider playerCollider;
public GameObject playerGameObject;
float currentForceToLaunchObjects;
public playerWeaponSystem mainPlayerWeaponSystem;
Rigidbody currentRigidbody;
float currentForceToLaunchObjects;
Vector3 attractDirection;
Rigidbody currentRigidbody;
Vector3 currentPosition;
Vector3 attractDirection;
RaycastHit hit;
Vector3 currentPosition;
List<grabbedObject> grabbedObjectList = new List<grabbedObject> ();
RaycastHit hit;
float lastTimeActivateAttraction;
List<grabbedObject> grabbedObjectList = new List<grabbedObject> ();
Vector3 nextObjectHeldPosition;
Vector3 currentObjectHeldPosition;
float lastTimeActivateAttraction;
Coroutine grabObjectsCoroutine;
Vector3 nextObjectHeldPosition;
Vector3 currentObjectHeldPosition;
bool componentsInitialized;
Coroutine grabObjectsCoroutine;
bool componentsInitialized;
void Awake ()
{
if (mainCameraTransform == null) {
mainCameraTransform = transform;
}
Coroutine updateCoroutine;
if (playerGameObject == null) {
playerGameObject = gameObject;
}
}
void FixedUpdate ()
{
if (attractionActive) {
if (!carryingObjects) {
return;
}
void Awake ()
{
if (mainCameraTransform == null) {
mainCameraTransform = transform;
}
currentPosition = attractionPosition.position;
if (playerGameObject == null) {
playerGameObject = gameObject;
}
}
for (int i = 0; i < grabbedObjectList.Count; i++) {
if (grabbedObjectList [i].objectToMove != null) {
currentRigidbody = grabbedObjectList [i].mainRigidbody;
if (currentRigidbody != null) {
public void stopUpdateCoroutine ()
{
if (updateCoroutine != null) {
StopCoroutine (updateCoroutine);
}
}
if (attractionApplyForce) {
attractDirection = currentPosition - currentRigidbody.position;
currentRigidbody.AddForce (attractDirection.normalized * (attractionForce * currentRigidbody.mass * Time.fixedDeltaTime), forceMode);
} else {
nextObjectHeldPosition = currentPosition + attractionPosition.forward;
currentObjectHeldPosition = currentRigidbody.position;
IEnumerator updateSystemCoroutine ()
{
var waitTime = new WaitForFixedUpdate ();
currentRigidbody.linearVelocity = (nextObjectHeldPosition - currentObjectHeldPosition) * attractionVelocity;
}
}
}
}
}
}
while (true) {
updateSystem ();
public void setAttractionEnabledState (bool state)
{
attractionEnabled = state;
}
yield return waitTime;
}
}
public void checkGrabObject ()
{
if (grabObjectsCoroutine != null) {
StopCoroutine (grabObjectsCoroutine);
}
void updateSystem ()
{
if (attractionActive) {
grabObjectsCoroutine = StartCoroutine (checkGrabObjectCoroutine ());
}
if (!carryingObjects) {
return;
}
IEnumerator checkGrabObjectCoroutine ()
{
yield return new WaitForSeconds (0.05f);
currentPosition = attractionPosition.position;
if (attractionEnabled && !carryingObjects) {
lastTimeActivateAttraction = Time.time;
int grabbedObjectListCount = grabbedObjectList.Count;
initializeComponents ();
for (int i = 0; i < grabbedObjectListCount; i++) {
if (grabbedObjectList [i].objectToMove != null) {
currentRigidbody = grabbedObjectList [i].mainRigidbody;
attractionActive = true;
if (currentRigidbody != null) {
grabCloseObjects ();
if (attractionApplyForce) {
attractDirection = currentPosition - currentRigidbody.position;
if (carryingObjects) {
eventsOnActivateAttraction.Invoke ();
}
}
}
currentRigidbody.AddForce (attractDirection.normalized * (attractionForce * currentRigidbody.mass * Time.fixedDeltaTime), forceMode);
} else {
nextObjectHeldPosition = currentPosition + attractionPosition.forward;
public void inputGrabObjects ()
{
checkGrabObject ();
}
currentObjectHeldPosition = currentRigidbody.position;
public void inputHoldToLaunchObject ()
{
if (!attractionEnabled) {
return;
}
currentRigidbody.linearVelocity = (nextObjectHeldPosition - currentObjectHeldPosition) * attractionVelocity;
}
}
}
}
}
}
if (carryingObjects) {
if (Time.time > lastTimeActivateAttraction + 0.5f) {
addForceToLaunchObjects ();
}
}
}
public void setAttractionEnabledState (bool state)
{
attractionEnabled = state;
public void inputReleaseToLaunchObject ()
{
if (!attractionEnabled) {
return;
}
if (!attractionEnabled) {
updateSystemCoroutine ();
}
}
if (carryingObjects) {
if (Time.time > lastTimeActivateAttraction + 0.5f) {
dropObjects ();
public void checkGrabObject ()
{
if (grabObjectsCoroutine != null) {
StopCoroutine (grabObjectsCoroutine);
}
attractionActive = false;
grabObjectsCoroutine = StartCoroutine (checkGrabObjectCoroutine ());
}
eventOnDeactivateAttraction.Invoke ();
}
}
}
IEnumerator checkGrabObjectCoroutine ()
{
yield return new WaitForSeconds (0.05f);
public void grabCloseObjects ()
{
//if the player has not grabbedObjects, store them
if (grabbedObjectList.Count == 0) {
//check in a radius, the close objects which can be grabbed
currentPosition = attractionPosition.position;
if (attractionEnabled && !carryingObjects) {
lastTimeActivateAttraction = Time.time;
int ignoreRaycastLayerIndex = LayerMask.NameToLayer ("Ignore Raycast");
initializeComponents ();
Collider[] objects = Physics.OverlapSphere (currentPosition, attractionRadius, layerToSearch);
foreach (Collider currentCollider in objects) {
Rigidbody currentRigidbody = currentCollider.GetComponent<Rigidbody> ();
attractionActive = true;
if (tagToLocate.Contains (currentCollider.tag) && currentRigidbody != null) {
if (currentRigidbody.isKinematic) {
currentRigidbody.isKinematic = false;
}
updateCoroutine = StartCoroutine (updateSystemCoroutine ());
grabbedObject newGrabbedObject = new grabbedObject ();
//removed tag and layer after store them, so the camera can still use raycast properly
grabCloseObjects ();
GameObject currentObject = currentCollider.gameObject;
newGrabbedObject.objectToMove = currentObject;
newGrabbedObject.objectTag = currentObject.tag;
newGrabbedObject.objectLayer = currentObject.layer;
newGrabbedObject.mainRigidbody = currentRigidbody;
if (carryingObjects) {
eventsOnActivateAttraction.Invoke ();
}
}
}
if (useRemoteEventOnObjectsFound) {
remoteEventSystem currentRemoteEventSystem = currentObject.GetComponent<remoteEventSystem> ();
public void inputGrabObjects ()
{
checkGrabObject ();
}
if (currentRemoteEventSystem != null) {
for (int i = 0; i < remoteEventNameListOnGrabObject.Count; i++) {
public void inputHoldToLaunchObject ()
{
if (!attractionEnabled) {
return;
}
currentRemoteEventSystem.callRemoteEvent (remoteEventNameListOnGrabObject [i]);
}
}
}
if (carryingObjects) {
if (Time.time > lastTimeActivateAttraction + 0.5f) {
addForceToLaunchObjects ();
}
}
}
currentObject.tag = "Untagged";
public void inputReleaseToLaunchObject ()
{
if (!attractionEnabled) {
return;
}
currentObject.layer = ignoreRaycastLayerIndex;
if (carryingObjects) {
if (Time.time > lastTimeActivateAttraction + 0.5f) {
dropObjects ();
currentRigidbody.useGravity = false;
attractionActive = false;
//get the distance from every object to left and right side of the player, to set every side as parent of every object
//disable collisions between the player and the objects, to avoid issues
if (playerCollider != null) {
Physics.IgnoreCollision (currentCollider, playerCollider, true);
}
stopUpdateCoroutine ();
//if any object grabbed has its own gravity, paused the script to move the object properly
artificialObjectGravity currentArtificialObjectGravity = currentObject.GetComponent<artificialObjectGravity> ();
eventOnDeactivateAttraction.Invoke ();
}
}
}
if (currentArtificialObjectGravity != null) {
currentArtificialObjectGravity.setActiveState (false);
}
grabObjectProperties currentGrabObjectProperties = currentObject.GetComponent<grabObjectProperties> ();
if (currentGrabObjectProperties != null) {
currentGrabObjectProperties.checkEventsOnGrabObject ();
}
public void grabCloseObjects ()
{
//if the player has not grabbedObjects, store them
if (grabbedObjectList.Count == 0) {
//check in a radius, the close objects which can be grabbed
currentPosition = attractionPosition.position;
grabbedObjectState currentGrabbedObjectState = currentObject.GetComponent<grabbedObjectState> ();
int ignoreRaycastLayerIndex = LayerMask.NameToLayer ("Ignore Raycast");
if (currentGrabbedObjectState == null) {
currentGrabbedObjectState = currentObject.AddComponent<grabbedObjectState> ();
}
Collider [] objects = Physics.OverlapSphere (currentPosition, attractionRadius, layerToSearch);
foreach (Collider currentCollider in objects) {
objectToPlaceSystem currentObjectToPlaceSystem = currentObject.GetComponent<objectToPlaceSystem> ();
Rigidbody currentRigidbody = currentCollider.GetComponent<Rigidbody> ();
if (currentObjectToPlaceSystem != null) {
currentObjectToPlaceSystem.setObjectInGrabbedState (true);
}
if (tagToLocate.Contains (currentCollider.tag) && currentRigidbody != null) {
if (currentRigidbody.isKinematic) {
currentRigidbody.isKinematic = false;
}
//if any object is pickable and is inside an opened chest, activate its trigger or if it has been grabbed by the player, remove of the list
pickUpObject currentPickUpObject = currentObject.GetComponent<pickUpObject> ();
grabbedObject newGrabbedObject = new grabbedObject ();
//removed tag and layer after store them, so the camera can still use raycast properly
if (currentPickUpObject) {
currentPickUpObject.activateObjectTrigger ();
}
GameObject currentObject = currentCollider.gameObject;
newGrabbedObject.objectToMove = currentObject;
newGrabbedObject.objectTag = currentObject.tag;
newGrabbedObject.objectLayer = currentObject.layer;
newGrabbedObject.mainRigidbody = currentRigidbody;
deviceStringAction currentDeviceStringAction = currentObject.GetComponentInChildren<deviceStringAction> ();
if (useRemoteEventOnObjectsFound) {
remoteEventSystem currentRemoteEventSystem = currentObject.GetComponent<remoteEventSystem> ();
if (currentDeviceStringAction != null) {
currentDeviceStringAction.setIconEnabledState (false);
}
if (currentRemoteEventSystem != null) {
for (int i = 0; i < remoteEventNameListOnGrabObject.Count; i++) {
if (currentGrabbedObjectState != null) {
currentGrabbedObjectState.setCurrentHolder (gameObject);
currentRemoteEventSystem.callRemoteEvent (remoteEventNameListOnGrabObject [i]);
}
}
}
currentGrabbedObjectState.setGrabbedState (true);
}
currentObject.tag = "Untagged";
grabbedObjectList.Add (newGrabbedObject);
}
}
currentObject.layer = ignoreRaycastLayerIndex;
//if there are not any object close to the player, cancel
if (grabbedObjectList.Count > 0) {
carryingObjects = true;
} else {
attractionActive = false;
}
currentRigidbody.useGravity = false;
powerSlider.maxValue = maxThrowForce;
//get the distance from every object to left and right side of the player, to set every side as parent of every object
//disable collisions between the player and the objects, to avoid issues
if (playerCollider != null) {
Physics.IgnoreCollision (currentCollider, playerCollider, true);
}
currentForceToLaunchObjects = 0;
}
}
//if any object grabbed has its own gravity, paused the script to move the object properly
artificialObjectGravity currentArtificialObjectGravity = currentObject.GetComponent<artificialObjectGravity> ();
//drop or throw the current grabbed objects
public void dropObjects ()
{
//get the point at which the camera is looking, to throw the objects in that direction
Vector3 hitDirection = Vector3.zero;
if (currentArtificialObjectGravity != null) {
currentArtificialObjectGravity.setActiveState (false);
}
bool surfaceFound = false;
grabObjectProperties currentGrabObjectProperties = currentObject.GetComponent<grabObjectProperties> ();
if (Physics.Raycast (mainCameraTransform.position, mainCameraTransform.forward, out hit, Mathf.Infinity, layerToDamage)) {
if (hit.collider != playerCollider) {
surfaceFound = true;
} else {
if (Physics.Raycast (hit.point + mainCameraTransform.forward, mainCameraTransform.forward, out hit, Mathf.Infinity, layerToDamage)) {
surfaceFound = true;
}
}
}
if (currentGrabObjectProperties != null) {
currentGrabObjectProperties.checkEventsOnGrabObject ();
}
if (surfaceFound) {
hitDirection = hit.point;
}
grabbedObjectState currentGrabbedObjectState = currentObject.GetComponent<grabbedObjectState> ();
for (int j = 0; j < grabbedObjectList.Count; j++) {
dropObject (grabbedObjectList [j], hitDirection);
}
if (currentGrabbedObjectState == null) {
currentGrabbedObjectState = currentObject.AddComponent<grabbedObjectState> ();
}
carryingObjects = false;
grabbedObjectList.Clear ();
objectToPlaceSystem currentObjectToPlaceSystem = currentObject.GetComponent<objectToPlaceSystem> ();
powerSlider.value = 0;
}
if (currentObjectToPlaceSystem != null) {
currentObjectToPlaceSystem.setObjectInGrabbedState (true);
}
public void addForceToLaunchObjects ()
{
if (currentForceToLaunchObjects < maxThrowForce) {
//enable the power slider in the center of the screen
currentForceToLaunchObjects += Time.deltaTime * increaseThrowForceSpeed;
//if any object is pickable and is inside an opened chest, activate its trigger or if it has been grabbed by the player, remove of the list
pickUpObject currentPickUpObject = currentObject.GetComponent<pickUpObject> ();
if (currentForceToLaunchObjects > 300) {
powerSlider.value = currentForceToLaunchObjects;
}
}
}
if (currentPickUpObject) {
currentPickUpObject.activateObjectTrigger ();
}
public void dropObject (grabbedObject currentGrabbedObject, Vector3 launchDirection)
{
GameObject currentObject = currentGrabbedObject.objectToMove;
deviceStringAction currentDeviceStringAction = currentObject.GetComponentInChildren<deviceStringAction> ();
Rigidbody currentRigidbody = currentGrabbedObject.mainRigidbody;
if (currentDeviceStringAction != null) {
currentDeviceStringAction.setIconEnabledState (false);
}
if (useRemoteEventOnObjectsFound) {
remoteEventSystem currentRemoteEventSystem = currentObject.GetComponent<remoteEventSystem> ();
if (currentGrabbedObjectState != null) {
currentGrabbedObjectState.setCurrentHolder (gameObject);
if (currentRemoteEventSystem != null) {
for (int i = 0; i < remoteEventNameListOnDropObject.Count; i++) {
currentGrabbedObjectState.setGrabbedState (true);
}
currentRemoteEventSystem.callRemoteEvent (remoteEventNameListOnDropObject [i]);
}
}
}
grabbedObjectList.Add (newGrabbedObject);
}
}
currentObject.transform.SetParent (null);
//if there are not any object close to the player, cancel
if (grabbedObjectList.Count > 0) {
carryingObjects = true;
} else {
attractionActive = false;
currentObject.tag = currentGrabbedObject.objectTag;
currentObject.layer = currentGrabbedObject.objectLayer;
stopUpdateCoroutine ();
}
//drop the objects, because the grab objects button has been pressed quickly
if (currentForceToLaunchObjects < 300) {
if (playerCollider != null) {
Physics.IgnoreCollision (currentObject.GetComponent<Collider> (), playerCollider, false);
}
}
//launch the objects according to the amount of time that the player has held the buttton
if (currentForceToLaunchObjects > 300) {
//if the objects are launched, add the script launchedObject, to damage any enemy that the object would touch
currentObject.AddComponent<launchedObjects> ().setCurrentPlayerAndCollider (playerGameObject, playerCollider);
powerSlider.maxValue = maxThrowForce;
//if there are any collider in from of the camera, use the hit point, else, use the camera direciton
if (launchDirection != Vector3.zero) {
Vector3 throwDirection = launchDirection - currentObject.transform.position;
throwDirection = throwDirection / throwDirection.magnitude;
currentRigidbody.AddForce (throwDirection * currentForceToLaunchObjects * currentRigidbody.mass);
} else {
currentRigidbody.AddForce (mainCameraTransform.TransformDirection (Vector3.forward) * currentForceToLaunchObjects * currentRigidbody.mass);
}
}
//set again the custom gravity of the object
artificialObjectGravity currentArtificialObjectGravity = currentObject.GetComponent<artificialObjectGravity> ();
currentForceToLaunchObjects = 0;
}
}
if (currentArtificialObjectGravity != null) {
currentArtificialObjectGravity.setActiveState (true);
}
grabObjectProperties currentGrabObjectProperties = currentObject.GetComponent<grabObjectProperties> ();
if (currentGrabObjectProperties != null) {
currentGrabObjectProperties.checkEventsOnDropObject ();
}
deviceStringAction currentDeviceStringAction = currentObject.GetComponentInChildren<deviceStringAction> ();
//drop or throw the current grabbed objects
public void dropObjects ()
{
//get the point at which the camera is looking, to throw the objects in that direction
Vector3 hitDirection = Vector3.zero;
if (currentDeviceStringAction != null) {
currentDeviceStringAction.setIconEnabledState (true);
}
objectToPlaceSystem currentObjectToPlaceSystem = currentObject.GetComponent<objectToPlaceSystem> ();
if (currentObjectToPlaceSystem != null) {
currentObjectToPlaceSystem.setObjectInGrabbedState (false);
}
bool surfaceFound = false;
grabbedObjectState currentGrabbedObjectState = currentObject.GetComponent<grabbedObjectState> ();
if (Physics.Raycast (mainCameraTransform.position, mainCameraTransform.forward, out hit, Mathf.Infinity, layerToDamage)) {
if (hit.collider != playerCollider) {
surfaceFound = true;
} else {
if (Physics.Raycast (hit.point + mainCameraTransform.forward, mainCameraTransform.forward, out hit, Mathf.Infinity, layerToDamage)) {
surfaceFound = true;
}
}
}
if (currentGrabbedObjectState != null) {
bool currentObjectWasInsideGravityRoom = currentGrabbedObjectState.isInsideZeroGravityRoom ();
if (surfaceFound) {
hitDirection = hit.point;
}
currentGrabbedObjectState.checkGravityRoomState ();
for (int j = 0; j < grabbedObjectList.Count; j++) {
dropObject (grabbedObjectList [j], hitDirection);
}
currentGrabbedObjectState.setGrabbedState (false);
carryingObjects = false;
grabbedObjectList.Clear ();
if (!currentObjectWasInsideGravityRoom) {
currentGrabbedObjectState.removeGrabbedObjectComponent ();
powerSlider.value = 0;
}
currentRigidbody.useGravity = true;
}
}
}
public void addForceToLaunchObjects ()
{
if (currentForceToLaunchObjects < maxThrowForce) {
//enable the power slider in the center of the screen
currentForceToLaunchObjects += Time.deltaTime * increaseThrowForceSpeed;
public void checkIfDropObject (GameObject objectToCheck)
{
for (int j = 0; j < grabbedObjectList.Count; j++) {
if (grabbedObjectList [j].objectToMove == objectToCheck) {
dropObject (grabbedObjectList [j], Vector3.zero);
if (currentForceToLaunchObjects > 300) {
grabbedObjectList [j].objectToMove = null;
powerSlider.value = currentForceToLaunchObjects;
}
}
}
return;
}
}
}
public void dropObject (grabbedObject currentGrabbedObject, Vector3 launchDirection)
{
GameObject currentObject = currentGrabbedObject.objectToMove;
void initializeComponents ()
{
if (componentsInitialized) {
return;
}
Rigidbody currentRigidbody = currentGrabbedObject.mainRigidbody;
if (mainPlayerWeaponSystem != null) {
playerGameObject = mainPlayerWeaponSystem.getPlayerWeaponsManger ().gameObject;
if (useRemoteEventOnObjectsFound) {
remoteEventSystem currentRemoteEventSystem = currentObject.GetComponent<remoteEventSystem> ();
playerComponentsManager mainPlayerComponentsManager = playerGameObject.GetComponent<playerComponentsManager> ();
if (currentRemoteEventSystem != null) {
for (int i = 0; i < remoteEventNameListOnDropObject.Count; i++) {
if (mainPlayerComponentsManager != null) {
playerCollider = mainPlayerComponentsManager.getPlayerController ().getMainCollider ();
currentRemoteEventSystem.callRemoteEvent (remoteEventNameListOnDropObject [i]);
}
}
}
mainCameraTransform = mainPlayerComponentsManager.getPlayerCamera ().getCameraTransform ();
}
}
currentObject.transform.SetParent (null);
componentsInitialized = true;
}
currentObject.tag = currentGrabbedObject.objectTag;
currentObject.layer = currentGrabbedObject.objectLayer;
[System.Serializable]
public class grabbedObject
{
public GameObject objectToMove;
public string objectTag;
public int objectLayer;
public Rigidbody mainRigidbody;
}
//drop the objects, because the grab objects button has been pressed quickly
if (currentForceToLaunchObjects < 300) {
if (playerCollider != null) {
Physics.IgnoreCollision (currentObject.GetComponent<Collider> (), playerCollider, false);
}
}
//launch the objects according to the amount of time that the player has held the buttton
if (currentForceToLaunchObjects > 300) {
//if the objects are launched, add the script launchedObject, to damage any enemy that the object would touch
currentObject.AddComponent<launchedObjects> ().setCurrentPlayerAndCollider (playerGameObject, playerCollider);
//if there are any collider in from of the camera, use the hit point, else, use the camera direciton
if (launchDirection != Vector3.zero) {
Vector3 throwDirection = launchDirection - currentObject.transform.position;
throwDirection = throwDirection / throwDirection.magnitude;
currentRigidbody.AddForce (throwDirection * currentForceToLaunchObjects * currentRigidbody.mass);
} else {
currentRigidbody.AddForce (mainCameraTransform.TransformDirection (Vector3.forward) * currentForceToLaunchObjects * currentRigidbody.mass);
}
}
//set again the custom gravity of the object
artificialObjectGravity currentArtificialObjectGravity = currentObject.GetComponent<artificialObjectGravity> ();
if (currentArtificialObjectGravity != null) {
currentArtificialObjectGravity.setActiveState (true);
}
grabObjectProperties currentGrabObjectProperties = currentObject.GetComponent<grabObjectProperties> ();
if (currentGrabObjectProperties != null) {
currentGrabObjectProperties.checkEventsOnDropObject ();
}
deviceStringAction currentDeviceStringAction = currentObject.GetComponentInChildren<deviceStringAction> ();
if (currentDeviceStringAction != null) {
currentDeviceStringAction.setIconEnabledState (true);
}
objectToPlaceSystem currentObjectToPlaceSystem = currentObject.GetComponent<objectToPlaceSystem> ();
if (currentObjectToPlaceSystem != null) {
currentObjectToPlaceSystem.setObjectInGrabbedState (false);
}
grabbedObjectState currentGrabbedObjectState = currentObject.GetComponent<grabbedObjectState> ();
if (currentGrabbedObjectState != null) {
bool currentObjectWasInsideGravityRoom = currentGrabbedObjectState.isInsideZeroGravityRoom ();
currentGrabbedObjectState.checkGravityRoomState ();
currentGrabbedObjectState.setGrabbedState (false);
if (!currentObjectWasInsideGravityRoom) {
currentGrabbedObjectState.removeGrabbedObjectComponent ();
currentRigidbody.useGravity = true;
}
}
}
public void checkIfDropObject (GameObject objectToCheck)
{
for (int j = 0; j < grabbedObjectList.Count; j++) {
if (grabbedObjectList [j].objectToMove == objectToCheck) {
dropObject (grabbedObjectList [j], Vector3.zero);
grabbedObjectList [j].objectToMove = null;
return;
}
}
}
void initializeComponents ()
{
if (componentsInitialized) {
return;
}
if (mainPlayerWeaponSystem != null) {
playerGameObject = mainPlayerWeaponSystem.getPlayerWeaponsManger ().gameObject;
playerComponentsManager mainPlayerComponentsManager = playerGameObject.GetComponent<playerComponentsManager> ();
if (mainPlayerComponentsManager != null) {
playerCollider = mainPlayerComponentsManager.getPlayerController ().getMainCollider ();
mainCameraTransform = mainPlayerComponentsManager.getPlayerCamera ().getCameraTransform ();
}
}
componentsInitialized = true;
}
[System.Serializable]
public class grabbedObject
{
public GameObject objectToMove;
public string objectTag;
public int objectLayer;
public Rigidbody mainRigidbody;
}
}

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/attrackObjectsSystem.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/dragObjectSystem.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/flamethrowerWeapon.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/flashlight.cs
uploadId: 814740
uploadId: 889948

View File

@@ -444,6 +444,16 @@ public class gravityGun : MonoBehaviour
}
}
objectToPlaceSystem currentObjectToPlaceSystem = objectHeld.GetComponent<objectToPlaceSystem> ();
if (currentObjectToPlaceSystem != null) {
if (currentObjectToPlaceSystem.isAdjustingObjectToPlaceInProcess ()) {
objectHeld = null;
return;
}
}
if (currentGrabObjectProperties != null) {
if (currentGrabObjectProperties.useExtraGrabDistance) {
currentGrabExtraDistance = currentGrabObjectProperties.getExtraGrabDistance ();
@@ -499,8 +509,6 @@ public class gravityGun : MonoBehaviour
currentGrabObjectEventSystem.callEventOnGrab ();
}
objectToPlaceSystem currentObjectToPlaceSystem = objectHeld.GetComponent<objectToPlaceSystem> ();
if (currentObjectToPlaceSystem != null) {
currentObjectToPlaceSystem.setObjectInGrabbedState (true);
}
@@ -656,6 +664,8 @@ public class gravityGun : MonoBehaviour
}
}
objectToPlaceSystem currentObjectToPlaceSystem = null;
if (objectHeld != null) {
//set the tag of the object that had before grab it, and if the object has its own gravity, enable again
if (grabbedObjectTagLayerStored) {
@@ -735,7 +745,7 @@ public class gravityGun : MonoBehaviour
}
}
objectToPlaceSystem currentObjectToPlaceSystem = objectHeld.GetComponent<objectToPlaceSystem> ();
currentObjectToPlaceSystem = objectHeld.GetComponent<objectToPlaceSystem> ();
if (currentObjectToPlaceSystem != null) {
currentObjectToPlaceSystem.setObjectInGrabbedState (false);
@@ -762,6 +772,10 @@ public class gravityGun : MonoBehaviour
if (showDebugPrint) {
print ("drop object");
}
if (currentObjectToPlaceSystem != null) {
currentObjectToPlaceSystem.checkObjectsAround ();
}
}
public void checkJointsInObject (GameObject objectToThrow, float force)

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/gravityGun.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/healerWeapon.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/plasmaCutterSystem.cs
uploadId: 814740
uploadId: 889948

View File

@@ -12,7 +12,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/simpleChainSaw.cs
uploadId: 814740
uploadId: 889948

View File

@@ -417,6 +417,8 @@ public class sliceObject : MonoBehaviour
currentSurfaceToSlice.checkEventBeforeSlice ();
currentSurfaceToSlice.checkEventsOnIgnoreDestroyOriginalObject ();
currentSurfaceToSlice.getMainSimpleSliceSystem ().activateSlice (objectCollider,
positionInWorldSpace, normalInWorldSpace, slicePosition, updateLastObjectSpeed, lastSpeed);
@@ -447,6 +449,8 @@ public class sliceObject : MonoBehaviour
currentSurfaceToSlice.checkEventBeforeSlice ();
currentSurfaceToSlice.checkEventsOnIgnoreDestroyOriginalObject ();
obj = currentSurfaceToSlice.getMainSurfaceToSlice ();
// slice the provided object using the transforms of this object
@@ -603,6 +607,11 @@ public class sliceObject : MonoBehaviour
// obj.SetActive (false);
lastTimeSlice = Time.time;
if (currentSurfaceToSlice.useEventToSendNewSlicedParts) {
currentSurfaceToSlice.eventToSendNewSlicedParts.Invoke (object1);
currentSurfaceToSlice.eventToSendNewSlicedParts.Invoke (object2);
}
}
}
}

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/sliceObject.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/smartphoneDevice.cs
uploadId: 814740
uploadId: 889948

View File

@@ -91,7 +91,7 @@ public class surfaceToSlice : MonoBehaviour
public float timeScale = 0.2f;
[Space]
[Header ("Debug")]
[Header ("Other Settings")]
[Space]
public bool destroySlicedPartsAfterDelay;
@@ -119,6 +119,16 @@ public class surfaceToSlice : MonoBehaviour
public bool useEventBeforeCut;
public UnityEvent eventBeforeCut;
[Space]
public bool ignoreDestroyOriginalObject;
public UnityEvent eventsOnIgnoreDestroyOriginalObject;
[Space]
public bool useEventToSendNewSlicedParts;
public eventParameters.eventToCallWithGameObject eventToSendNewSlicedParts;
float lastTimeSliced;
@@ -127,6 +137,13 @@ public class surfaceToSlice : MonoBehaviour
bool mainDestroyGameObjectAssigned;
public void checkEventsOnIgnoreDestroyOriginalObject ()
{
if (ignoreDestroyOriginalObject) {
eventsOnIgnoreDestroyOriginalObject.Invoke ();
}
}
public void checkEventBeforeSlice ()
{
if (useEventBeforeCut) {
@@ -309,6 +326,13 @@ public class surfaceToSlice : MonoBehaviour
}
}
public void setMainSimpleSliceSystemCheckingNotNull (GameObject newObject)
{
setMainSimpleSliceSystem (newObject);
cutSurfaceEnabled = (mainSimpleSliceSystem != null);
}
public void setDestructionPending (bool state)
{
if (!mainSimpleSliceSystemAssigned) {

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/surfaceToSlice.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/vacuumGun.cs
uploadId: 814740
uploadId: 889948

View File

@@ -13,7 +13,8 @@ MonoImporter:
AssetOrigin:
serializedVersion: 1
productId: 40995
packageName: Game Kit Controller - Shooter Melee Adventure Creator 3D + 2.5D
packageVersion: 3.77g
packageName: Game Kit Controller - Shooter Melee Adventure FPS TPS Creator 3D +
2.5D
packageVersion: 3.77h
assetPath: Assets/Game Kit Controller/Scripts/Weapons/New Weapon Behaviors/weaponLaser.cs
uploadId: 814740
uploadId: 889948