Compare commits
No commits in common. "main" and "4.2.1" have entirely different histories.
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,5 +0,0 @@
|
|||||||
Samples
|
|
||||||
Samples.meta
|
|
||||||
package.json
|
|
||||||
package.json.meta
|
|
||||||
Samples~.meta
|
|
||||||
@ -1023,7 +1023,7 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void CheckFaceTracking(Configuration configuration) {
|
private static void CheckFaceTracking(Configuration configuration) {
|
||||||
if (DoesTypeExist("Passer.Humanoid.FaceTarget")) {
|
if (IsFileAvailable(facePath)) {
|
||||||
GlobalDefine("hFACE");
|
GlobalDefine("hFACE");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -76,7 +76,7 @@ namespace Passer.Humanoid {
|
|||||||
Debug.Log(questManifestPath);
|
Debug.Log(questManifestPath);
|
||||||
File.Copy(questManifestPath, manifestPath);
|
File.Copy(questManifestPath, manifestPath);
|
||||||
}
|
}
|
||||||
catch (System.Exception ) {
|
catch (System.Exception _) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -855,7 +855,6 @@ namespace Passer {
|
|||||||
else {
|
else {
|
||||||
humanoid.pose.Show(humanoid);
|
humanoid.pose.Show(humanoid);
|
||||||
humanoid.CopyRigToTargets();
|
humanoid.CopyRigToTargets();
|
||||||
humanoid.MatchTargetsToAvatar();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,143 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
#if hPHOTON2
|
|
||||||
using Photon.Pun;
|
|
||||||
#if hPUNVOICE2 && !UNITY_WEBGL
|
|
||||||
using Photon.Voice.PUN;
|
|
||||||
using Photon.Voice.Unity;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace Passer.Humanoid {
|
|
||||||
|
|
||||||
[InitializeOnLoad]
|
|
||||||
public class OnLoadHumanoidPlayerPun {
|
|
||||||
static OnLoadHumanoidPlayerPun() {
|
|
||||||
CheckHumanoidPlayer();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static void CheckHumanoidPlayerVoice() {
|
|
||||||
#if hPUNVOICE2
|
|
||||||
string prefabPath = OnLoadHumanoidPlayer.GetHumanoidPlayerPrefabPath();
|
|
||||||
prefabPath = prefabPath.Substring(0, prefabPath.Length - 21) + "HumanoidPlayerVoice.prefab";
|
|
||||||
GameObject playerVoicePrefab = OnLoadHumanoidPlayer.GetHumanoidPlayerPrefab(prefabPath);
|
|
||||||
if (playerVoicePrefab == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
bool hasChanged = false;
|
|
||||||
#if UNITY_WEBGL
|
|
||||||
PhotonView photonView = playerVoicePrefab.GetComponent<PhotonView>();
|
|
||||||
if (photonView == null) {
|
|
||||||
photonView = playerVoicePrefab.AddComponent<PhotonView>();
|
|
||||||
hasChanged = true;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
PhotonVoiceView photonVoiceView = playerVoicePrefab.GetComponent<PhotonVoiceView>();
|
|
||||||
if (photonVoiceView == null) {
|
|
||||||
photonVoiceView = playerVoicePrefab.AddComponent<PhotonVoiceView>();
|
|
||||||
hasChanged = true;
|
|
||||||
}
|
|
||||||
if (photonVoiceView.UsePrimaryRecorder == false) {
|
|
||||||
photonVoiceView.UsePrimaryRecorder = true;
|
|
||||||
hasChanged = true;
|
|
||||||
}
|
|
||||||
PhotonTransformView photonTransformView = playerVoicePrefab.GetComponent<PhotonTransformView>();
|
|
||||||
if (photonTransformView == null) {
|
|
||||||
photonTransformView = playerVoicePrefab.AddComponent<PhotonTransformView>();
|
|
||||||
hasChanged = true;
|
|
||||||
}
|
|
||||||
PhotonView photonView = playerVoicePrefab.GetComponent<PhotonView>();
|
|
||||||
if (photonView != null) {
|
|
||||||
// should always be there because of the photonVoiceView
|
|
||||||
if (photonView.ObservedComponents == null) {
|
|
||||||
photonView.ObservedComponents = new System.Collections.Generic.List<Component>();
|
|
||||||
photonView.ObservedComponents.Add(photonTransformView);
|
|
||||||
photonView.Synchronization = ViewSynchronization.UnreliableOnChange;
|
|
||||||
hasChanged = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//Speaker speaker = playerVoicePrefab.GetComponent<Speaker>();
|
|
||||||
//if (speaker == null) {
|
|
||||||
// speaker = playerVoicePrefab.AddComponent<Speaker>();
|
|
||||||
// photonVoiceView.SpeakerInUse = speaker;
|
|
||||||
// hasChanged = true;
|
|
||||||
|
|
||||||
// AudioSource audioSource = playerVoicePrefab.GetComponent<AudioSource>();
|
|
||||||
// if (audioSource != null) {
|
|
||||||
// Debug.Log("adjust rolloff");
|
|
||||||
// // default logaritmic only work when people are closer than 0.5m...
|
|
||||||
// audioSource.maxDistance = 5;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
#endif
|
|
||||||
if (hasChanged)
|
|
||||||
OnLoadHumanoidPlayer.UpdateHumanoidPrefab(playerVoicePrefab, prefabPath);
|
|
||||||
#if !UNITY_WEBGL
|
|
||||||
CheckVoiceNetwork();
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if hPUNVOICE2 && !UNITY_WEBGL
|
|
||||||
protected static void CheckVoiceNetwork() {
|
|
||||||
NetworkingStarter networkingStarter = Object.FindObjectOfType<NetworkingStarter>();
|
|
||||||
if (networkingStarter == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
PhotonVoiceNetwork voiceNetwork = Object.FindObjectOfType<PhotonVoiceNetwork>();
|
|
||||||
if (voiceNetwork != null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
GameObject voiceNetworkObject = new GameObject("Voice Network");
|
|
||||||
voiceNetwork = voiceNetworkObject.AddComponent<PhotonVoiceNetwork>();
|
|
||||||
|
|
||||||
Recorder voiceRecorder = voiceNetworkObject.AddComponent<Recorder>();
|
|
||||||
voiceRecorder.ReactOnSystemChanges = true;
|
|
||||||
voiceRecorder.TransmitEnabled = true;
|
|
||||||
voiceRecorder.SamplingRate = POpusCodec.Enums.SamplingRate.Sampling48000;
|
|
||||||
|
|
||||||
voiceNetwork.PrimaryRecorder = voiceRecorder;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public static void CheckHumanoidPlayer() {
|
|
||||||
#if hPHOTON1 || hPHOTON2
|
|
||||||
string prefabPath = OnLoadHumanoidPlayer.GetHumanoidPlayerPrefabPath();
|
|
||||||
GameObject playerPrefab = OnLoadHumanoidPlayer.GetHumanoidPlayerPrefab(prefabPath);
|
|
||||||
|
|
||||||
bool hasChanged = false;
|
|
||||||
#if hNW_PHOTON
|
|
||||||
if (playerPrefab != null) {
|
|
||||||
PhotonView photonView = playerPrefab.GetComponent<PhotonView>();
|
|
||||||
if (photonView == null) {
|
|
||||||
photonView = playerPrefab.AddComponent<PhotonView>();
|
|
||||||
photonView.ObservedComponents = new System.Collections.Generic.List<Component>();
|
|
||||||
#if hPHOTON2
|
|
||||||
photonView.Synchronization = ViewSynchronization.UnreliableOnChange;
|
|
||||||
#else
|
|
||||||
photonView.synchronization = ViewSynchronization.UnreliableOnChange;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
HumanoidPlayer humanoidPun = playerPrefab.GetComponent<HumanoidPlayer>();
|
|
||||||
if (humanoidPun != null)
|
|
||||||
photonView.ObservedComponents.Add(humanoidPun);
|
|
||||||
hasChanged = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (playerPrefab != null) {
|
|
||||||
PhotonView photonView = playerPrefab.GetComponent<PhotonView>();
|
|
||||||
if (photonView != null)
|
|
||||||
Object.DestroyImmediate(photonView, true);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (hasChanged)
|
|
||||||
OnLoadHumanoidPlayer.UpdateHumanoidPrefab(playerPrefab, prefabPath);
|
|
||||||
#endif
|
|
||||||
CheckHumanoidPlayerVoice();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 185ec4e1799d1ac4d867b69454f1cd0f
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -1,108 +0,0 @@
|
|||||||
/*
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.Networking;
|
|
||||||
#if hNW_PHOTON
|
|
||||||
#if hPHOTON2
|
|
||||||
using Photon.Pun;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace Passer {
|
|
||||||
|
|
||||||
[CustomEditor(typeof(PhotonStarter))]
|
|
||||||
public class PunStarter_Editor : Editor {
|
|
||||||
|
|
||||||
public override void OnInspectorGUI() {
|
|
||||||
base.OnInspectorGUI();
|
|
||||||
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
|
||||||
if (humanoids.Length != 1)
|
|
||||||
// We only support sitatuation with one humanoid in the scene
|
|
||||||
return;
|
|
||||||
|
|
||||||
//HumanoidControl humanoid = humanoids[0];
|
|
||||||
|
|
||||||
if (Application.isPlaying)
|
|
||||||
return;
|
|
||||||
|
|
||||||
//GameObject humanoidPrefab = CheckHumanoidPrefab(humanoid);
|
|
||||||
//NetworkingComponentsInspectorPun(humanoid, humanoidPrefab);
|
|
||||||
}
|
|
||||||
|
|
||||||
//private GameObject CheckHumanoidPrefab(HumanoidControl humanoid) {
|
|
||||||
// GameObject humanoidPrefab = Resources.Load<GameObject>(humanoid.gameObject.name + "_generated");
|
|
||||||
// if (humanoidPrefab == null) {
|
|
||||||
// humanoidPrefab = PrefabUtility.CreatePrefab("Assets/Humanoid/Prefabs/Networking/Resources/" + humanoid.gameObject.name + "_generated.prefab", humanoid.gameObject);
|
|
||||||
// humanoidPrefab.gameObject.SetActive(true);
|
|
||||||
// }
|
|
||||||
// return humanoidPrefab;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//private void UpdateHumanoidPrefab(HumanoidControl humanoid) {
|
|
||||||
// if (humanoid != null) {
|
|
||||||
// GameObject humanoidPrefab = Resources.Load<GameObject>(humanoid.gameObject.name + "_generated");
|
|
||||||
// if (humanoidPrefab != null && humanoid.gameObject != humanoidPrefab)
|
|
||||||
// PrefabUtility.ReplacePrefab(humanoid.gameObject, humanoidPrefab, ReplacePrefabOptions.ConnectToPrefab);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
// private void NetworkingComponentsInspectorPun(HumanoidControl humanoid, GameObject humanoidPrefab) {
|
|
||||||
//#if hPHOTON1 || hPHOTON2
|
|
||||||
//#if hNW_PHOTON
|
|
||||||
// CheckPunStarter(humanoid, humanoidPrefab);
|
|
||||||
// PhotonView photonView = humanoid.GetComponent<PhotonView>();
|
|
||||||
// if (photonView == null)
|
|
||||||
// photonView = humanoid.gameObject.AddComponent<PhotonView>();
|
|
||||||
// photonView.ObservedComponents = new System.Collections.Generic.List<Component>();
|
|
||||||
// photonView.ObservedComponents.Add(humanoid);
|
|
||||||
//#else
|
|
||||||
// cleanupPhotonView = humanoid.GetComponent<PhotonView>();
|
|
||||||
//#endif
|
|
||||||
//#endif
|
|
||||||
// }
|
|
||||||
|
|
||||||
// private void CheckPunStarter(HumanoidControl humanoid, GameObject humanoidPrefab) {
|
|
||||||
// if (Application.isPlaying)
|
|
||||||
// return;
|
|
||||||
|
|
||||||
//#if hNW_PHOTON
|
|
||||||
// PhotonStarter photonStarter = FindObjectOfType<PhotonStarter>();
|
|
||||||
// if (photonStarter != null && humanoidPrefab != null && photonStarter.playerPrefab != humanoidPrefab) {
|
|
||||||
// Undo.RecordObject(photonStarter, "Updated Player Prefab");
|
|
||||||
// photonStarter.playerPrefab = humanoidPrefab;
|
|
||||||
// }
|
|
||||||
//#endif
|
|
||||||
// }
|
|
||||||
public void OnDisable() {
|
|
||||||
Cleanup();
|
|
||||||
}
|
|
||||||
|
|
||||||
#if hNW_UNET
|
|
||||||
private NetworkIdentity cleanupNetworkIdentity;
|
|
||||||
#endif
|
|
||||||
#if hPHOTON1 || hPHOTON2
|
|
||||||
private PhotonView cleanupPhotonView;
|
|
||||||
#endif
|
|
||||||
private GameObject cleanupPunStarter;
|
|
||||||
private void Cleanup() {
|
|
||||||
#if hNW_UNET
|
|
||||||
if (cleanupNetworkIdentity) {
|
|
||||||
DestroyImmediate(cleanupNetworkIdentity, true);
|
|
||||||
cleanupNetworkIdentity = null;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#if hPHOTON1 || hPHOTON2
|
|
||||||
if (cleanupPhotonView) {
|
|
||||||
DestroyImmediate(cleanupPhotonView, true);
|
|
||||||
cleanupPhotonView = null;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (cleanupPunStarter) {
|
|
||||||
DestroyImmediate(cleanupPunStarter, true);
|
|
||||||
cleanupPunStarter = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: e86563dd015c559479420645216c4a70
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -236,13 +236,7 @@ namespace Passer.Humanoid {
|
|||||||
if (bones[i] == null || bones[i].bone == null || bones[i].bone.transform == null)
|
if (bones[i] == null || bones[i].bone == null || bones[i].bone.transform == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
#if UNITY_2022_1_OR_NEWER
|
|
||||||
Handles.FreeMoveHandle(bones[i].bone.transform.position, 0.002F, Vector3.zero, DotHandleCapSaveID);
|
|
||||||
#else
|
|
||||||
Handles.FreeMoveHandle(bones[i].bone.transform.position, bones[i].bone.transform.rotation, 0.002F, Vector3.zero, DotHandleCapSaveID);
|
Handles.FreeMoveHandle(bones[i].bone.transform.position, bones[i].bone.transform.rotation, 0.002F, Vector3.zero, DotHandleCapSaveID);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
controlIds[i] = lastControlID;
|
controlIds[i] = lastControlID;
|
||||||
boneIds[i] = bones[i].boneId;
|
boneIds[i] = bones[i].boneId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -551,13 +551,12 @@ namespace Passer {
|
|||||||
humanoid.pose.UpdatePose(humanoid);
|
humanoid.pose.UpdatePose(humanoid);
|
||||||
else {
|
else {
|
||||||
humanoid.pose.Show(humanoid);
|
humanoid.pose.Show(humanoid);
|
||||||
humanoid.CopyRigToTargets();
|
footTarget.CopyRigToTarget();
|
||||||
humanoid.MatchTargetsToAvatar();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the target rig from the current foot target
|
// update the target rig from the current foot target
|
||||||
humanoid.CopyTargetsToRig();
|
footTarget.CopyTargetToRig();
|
||||||
// update the avatar bones from the target rig
|
// update the avatar bones from the target rig
|
||||||
humanoid.UpdateMovements();
|
humanoid.UpdateMovements();
|
||||||
// match the target rig with the new avatar pose
|
// match the target rig with the new avatar pose
|
||||||
|
|||||||
@ -695,13 +695,12 @@ namespace Passer.Humanoid {
|
|||||||
humanoid.pose.UpdatePose(humanoid);
|
humanoid.pose.UpdatePose(humanoid);
|
||||||
else {
|
else {
|
||||||
humanoid.pose.Show(humanoid);
|
humanoid.pose.Show(humanoid);
|
||||||
humanoid.CopyRigToTargets();
|
handTarget.CopyRigToTarget();
|
||||||
humanoid.MatchTargetsToAvatar();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the target rig from the current hand target
|
// update the target rig from the current hand target
|
||||||
humanoid.CopyTargetsToRig();
|
handTarget.CopyTargetToRig();
|
||||||
// update the avatar bones from the target rig
|
// update the avatar bones from the target rig
|
||||||
humanoid.UpdateMovements();
|
humanoid.UpdateMovements();
|
||||||
// match the target rig with the new avatar pose
|
// match the target rig with the new avatar pose
|
||||||
|
|||||||
@ -482,13 +482,12 @@ namespace Passer.Humanoid {
|
|||||||
humanoid.pose.UpdatePose(humanoid);
|
humanoid.pose.UpdatePose(humanoid);
|
||||||
else {
|
else {
|
||||||
humanoid.pose.Show(humanoid);
|
humanoid.pose.Show(humanoid);
|
||||||
humanoid.CopyRigToTargets();
|
headTarget.CopyRigToTarget();
|
||||||
humanoid.MatchTargetsToAvatar();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the target rig from the current head target
|
// update the target rig from the current head target
|
||||||
humanoid.CopyTargetsToRig();
|
headTarget.CopyTargetToRig();
|
||||||
// update the avatar bones from the target rig
|
// update the avatar bones from the target rig
|
||||||
humanoid.UpdateMovements();
|
humanoid.UpdateMovements();
|
||||||
// match the target rig with the new avatar pose
|
// match the target rig with the new avatar pose
|
||||||
|
|||||||
@ -276,13 +276,12 @@ namespace Passer {
|
|||||||
humanoid.pose.UpdatePose(humanoid);
|
humanoid.pose.UpdatePose(humanoid);
|
||||||
else {
|
else {
|
||||||
humanoid.pose.Show(humanoid);
|
humanoid.pose.Show(humanoid);
|
||||||
humanoid.CopyRigToTargets();
|
hipsTarget.CopyRigToTarget();
|
||||||
humanoid.MatchTargetsToAvatar();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the target rig from the current hips target
|
// update the target rig from the current hips target
|
||||||
humanoid.CopyTargetsToRig();
|
hipsTarget.CopyTargetToRig();
|
||||||
// update the avatar bones to match the target rig
|
// update the avatar bones to match the target rig
|
||||||
humanoid.UpdateMovements();
|
humanoid.UpdateMovements();
|
||||||
// match the target rig with the new avatar pose
|
// match the target rig with the new avatar pose
|
||||||
|
|||||||
@ -76,20 +76,17 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void AttachPrefab(Socket socket, SerializedProperty attachedTransformProp, GameObject prefab) {
|
protected virtual void AttachPrefab(Socket socket, SerializedProperty attachedTransformProp, GameObject prefab) {
|
||||||
SerializedProperty attachedHandleProp = serializedObject.FindProperty("attachedHandle");
|
|
||||||
|
|
||||||
if (attachedTransformProp.objectReferenceValue != null)
|
if (attachedTransformProp.objectReferenceValue != null)
|
||||||
ReleaseObject(socket, attachedTransformProp);
|
ReleaseObject(socket, attachedTransformProp);
|
||||||
|
|
||||||
GameObject obj = Instantiate(prefab, socket.transform.position, socket.transform.rotation);
|
GameObject obj = Instantiate(prefab, socket.transform.position, socket.transform.rotation);
|
||||||
obj.name = prefab.name; // Remove the (Clone)
|
obj.name = prefab.name; // Remove the (Clone)
|
||||||
|
|
||||||
socket.Attach(obj.transform, false);
|
socket.Attach(obj.transform);
|
||||||
if (socket.attachedTransform == null)
|
if (socket.attachedTransform == null)
|
||||||
Debug.LogWarning("Could not attach transform");
|
Debug.LogWarning("Could not attach transform");
|
||||||
else {
|
else {
|
||||||
attachedTransformProp.objectReferenceValue = obj;
|
attachedTransformProp.objectReferenceValue = obj;
|
||||||
attachedHandleProp.objectReferenceValue = socket.attachedHandle;
|
|
||||||
//Handle handle = socket.attachedHandle;
|
//Handle handle = socket.attachedHandle;
|
||||||
//if (handle == null)
|
//if (handle == null)
|
||||||
// Handle.Create(obj, socket);
|
// Handle.Create(obj, socket);
|
||||||
|
|||||||
10
README.md
10
README.md
@ -4,21 +4,21 @@ You can import the Humanoid Control Free package in Unity directly with the Pack
|
|||||||
|
|
||||||
See [Unity: Installing from a Git URL](https://docs.unity3d.com/Manual/upm-ui-giturl.html)
|
See [Unity: Installing from a Git URL](https://docs.unity3d.com/Manual/upm-ui-giturl.html)
|
||||||
|
|
||||||
Use the link from 'Clone with HTTP' (for example: https://git.passer.life/HumanoidControl/HumanoidControl_Free.git)
|
Use the link from 'Clone with HTTP' (for example: https://gitlab.passervr.com/passer/unity/humanoidcontrol4_free.git)
|
||||||
In this way you can always retrieve the latest version by pressing the `Update` button in the Package Manager.
|
In this way you can always retrieve the latest version by pressing the `Update` button in the Package Manager.
|
||||||
|
|
||||||
Optionally, you can use a tag to retrieve a specific version. For example:https://git.passer.life/HumanoidControl/HumanoidControl_Free.git#4.1.0.
|
Optionally, you can use a tag to retrieve a specific version. For example:http://gitlab.passervr.com/passer/unity/humanoidcontrol4_free.git#4.1.0.
|
||||||
This will give you a stable version which does not change. Updating can be done by retrieving the package with a link to a new release.
|
This will give you a stable version which does not change. Updating can be done by retrieving the package with a link to a new release.
|
||||||
|
|
||||||
ChangeLog and Releases
|
ChangeLog and Releases
|
||||||
======================
|
======================
|
||||||
All releases with UnityPackages and links for the Unity Package Manager: [Tags page](https://git.passer.life/HumanoidControl/HumanoidControl_Free/tags).
|
All releases with UnityPackages and links for the Unity Package Manager: [Releases](https://gitlab.passervr.com/passer/unity/humanoidcontrol4_free/-/releases).
|
||||||
|
|
||||||
An RSS/Atom feed with all releases can be found on the [Tags page](https://git.passer.life/HumanoidControl/HumanoidControl_Free/tags). Click on the _RSS Feed_ icon in the top-right corner to retrieve the feed.
|
An RSS/Atom feed with all releases can be found on the [Tags page](http://gitlab.passervr.com/passer/unity/humanoidcontrol4_free/-/tags). Click on the _Tags feed_ icon in the top-right corner to retrieve the feed.
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
=============
|
=============
|
||||||
For the latest version of the documentation, see [PasserVR HumanoidControl Documentation](https://docs.humanoidcontrol.com/)
|
For the latest version of the documentation, see [PasserVR HumanoidControl Documentation](https://passervr.com/apis/HumanoidControl/Unity/index.html)
|
||||||
|
|
||||||
Video
|
Video
|
||||||
=====
|
=====
|
||||||
|
|||||||
BIN
Runtime/HumanoidControl/GameControllerInputSettings.zip
Normal file
BIN
Runtime/HumanoidControl/GameControllerInputSettings.zip
Normal file
Binary file not shown.
@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 86153051f48cf8c488177d8f1b7aedaa
|
guid: ddd35f516c607da4ab4f97b210606169
|
||||||
folderAsset: yes
|
timeCreated: 1453468358
|
||||||
|
licenseType: Free
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,27 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1001 &100100000
|
||||||
|
Prefab:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications: []
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_ParentPrefab: {fileID: 0}
|
||||||
|
m_RootGameObject: {fileID: 1547744635115364}
|
||||||
|
m_IsPrefabParent: 1
|
||||||
--- !u!1 &1102845541656492
|
--- !u!1 &1102845541656492
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
serializedVersion: 5
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 224080167443833264}
|
- component: {fileID: 224080167443833264}
|
||||||
- component: {fileID: 222382479412892260}
|
- component: {fileID: 222382479412892260}
|
||||||
- component: {fileID: 114935358240423544}
|
- component: {fileID: 114935358240423544}
|
||||||
|
- component: {fileID: 114123306642843232}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Text
|
m_Name: Text
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -18,53 +29,91 @@ GameObject:
|
|||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 1
|
||||||
--- !u!224 &224080167443833264
|
--- !u!1 &1547744635115364
|
||||||
RectTransform:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
serializedVersion: 5
|
||||||
m_GameObject: {fileID: 1102845541656492}
|
m_Component:
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
- component: {fileID: 224268792594220398}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
- component: {fileID: 223133106560874972}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
- component: {fileID: 114215111648024090}
|
||||||
m_ConstrainProportionsScale: 0
|
- component: {fileID: 114000307814322182}
|
||||||
m_Children: []
|
m_Layer: 0
|
||||||
m_Father: {fileID: 224268792594220398}
|
m_Name: NetworkingStatusCanvas
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_TagString: Untagged
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_Icon: {fileID: 0}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_NavMeshLayer: 0
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_StaticEditorFlags: 0
|
||||||
m_SizeDelta: {x: 160, y: 30}
|
m_IsActive: 1
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
--- !u!114 &114000307814322182
|
||||||
--- !u!222 &222382479412892260
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1102845541656492}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!114 &114935358240423544
|
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 1
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_GameObject: {fileID: 1547744635115364}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!114 &114123306642843232
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_GameObject: {fileID: 1102845541656492}
|
m_GameObject: {fileID: 1102845541656492}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
m_Script: {fileID: 11500000, guid: d7994b261fec79c4a9a1c329820642f3, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!114 &114215111648024090
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1547744635115364}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
--- !u!114 &114935358240423544
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1102845541656492}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
|
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
||||||
|
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@ -79,51 +128,17 @@ MonoBehaviour:
|
|||||||
m_VerticalOverflow: 0
|
m_VerticalOverflow: 0
|
||||||
m_LineSpacing: 1
|
m_LineSpacing: 1
|
||||||
m_Text: New Text
|
m_Text: New Text
|
||||||
--- !u!1 &1547744635115364
|
--- !u!222 &222382479412892260
|
||||||
GameObject:
|
CanvasRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 1
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_GameObject: {fileID: 1102845541656492}
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 224268792594220398}
|
|
||||||
- component: {fileID: 223133106560874972}
|
|
||||||
- component: {fileID: 114215111648024090}
|
|
||||||
- component: {fileID: 114000307814322182}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: NetworkingStatusCanvas
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &224268792594220398
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1547744635115364}
|
|
||||||
m_LocalRotation: {x: -0.0000015646192, y: -0.0000072655666, z: -0.0000067270753, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0.5}
|
|
||||||
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 224080167443833264}
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
|
||||||
m_SizeDelta: {x: 160, y: 40}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!223 &223133106560874972
|
--- !u!223 &223133106560874972
|
||||||
Canvas:
|
Canvas:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 1
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1547744635115364}
|
m_GameObject: {fileID: 1547744635115364}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
@ -135,49 +150,45 @@ Canvas:
|
|||||||
m_OverrideSorting: 0
|
m_OverrideSorting: 0
|
||||||
m_OverridePixelPerfect: 0
|
m_OverridePixelPerfect: 0
|
||||||
m_SortingBucketNormalizedSize: 0
|
m_SortingBucketNormalizedSize: 0
|
||||||
m_VertexColorAlwaysGammaSpace: 0
|
|
||||||
m_AdditionalShaderChannelsFlag: 25
|
m_AdditionalShaderChannelsFlag: 25
|
||||||
m_UpdateRectTransformForStandalone: 0
|
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
--- !u!114 &114215111648024090
|
--- !u!224 &224080167443833264
|
||||||
MonoBehaviour:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 1
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_GameObject: {fileID: 1102845541656492}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 224268792594220398}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 160, y: 30}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!224 &224268792594220398
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_GameObject: {fileID: 1547744635115364}
|
m_GameObject: {fileID: 1547744635115364}
|
||||||
m_Enabled: 1
|
m_LocalRotation: {x: -0.0000015646192, y: -0.0000072655666, z: -0.0000067270753,
|
||||||
m_EditorHideFlags: 0
|
w: 1}
|
||||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
m_LocalPosition: {x: 0, y: 0, z: 0.5}
|
||||||
m_Name:
|
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
|
||||||
m_EditorClassIdentifier:
|
m_Children:
|
||||||
m_UiScaleMode: 0
|
- {fileID: 224080167443833264}
|
||||||
m_ReferencePixelsPerUnit: 100
|
m_Father: {fileID: 0}
|
||||||
m_ScaleFactor: 1
|
m_RootOrder: 0
|
||||||
m_ReferenceResolution: {x: 800, y: 600}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_ScreenMatchMode: 0
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_MatchWidthOrHeight: 0
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_PhysicalUnit: 3
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_FallbackScreenDPI: 96
|
m_SizeDelta: {x: 160, y: 40}
|
||||||
m_DefaultSpriteDPI: 96
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
m_DynamicPixelsPerUnit: 1
|
|
||||||
m_PresetInfoIsWorld: 0
|
|
||||||
--- !u!114 &114000307814322182
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1547744635115364}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_IgnoreReversedGraphics: 1
|
|
||||||
m_BlockingObjects: 0
|
|
||||||
m_BlockingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -86,7 +86,7 @@ namespace Passer.Tracking {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (OculusDevice.GetHandState(OculusDevice.Step.Render, isLeft ? OculusDevice.Hand.HandLeft : OculusDevice.Hand.HandRight, ref handState)) {
|
if (OculusDevice.GetHandState(OculusDevice.Step.Render, isLeft ? OculusDevice.Hand.HandLeft : OculusDevice.Hand.HandRight, ref handState)) {
|
||||||
if ((handState.Status & OculusDevice.HandStatus.HandTracked) == 0) {
|
if (handState.Status == 0) {
|
||||||
status = Tracker.Status.Present;
|
status = Tracker.Status.Present;
|
||||||
DisableRenderer();
|
DisableRenderer();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -0,0 +1,84 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1001 &100100000
|
||||||
|
Prefab:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications: []
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_ParentPrefab: {fileID: 0}
|
||||||
|
m_RootGameObject: {fileID: 1103073703406032}
|
||||||
|
m_IsPrefabParent: 1
|
||||||
|
--- !u!1 &1103073703406032
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4808734570168326}
|
||||||
|
- component: {fileID: 33781626903072926}
|
||||||
|
- component: {fileID: 23539047341558740}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Left Quest Controller
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4808734570168326
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1103073703406032}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &23539047341558740
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1103073703406032}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: dc3b3568b7c54234f9d6a9f7297c3425, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 0
|
||||||
|
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
|
||||||
|
--- !u!33 &33781626903072926
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1103073703406032}
|
||||||
|
m_Mesh: {fileID: 4300000, guid: a533ecc148345874ca68507932792b9e, type: 3}
|
||||||
@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: accc8d449e971a341b8b5ad32b0ba19c
|
guid: 0e0e467473c4c304691fb218ad5d5411
|
||||||
|
timeCreated: 1562924722
|
||||||
|
licenseType: Free
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 2100000
|
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
@ -0,0 +1,84 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1001 &100100000
|
||||||
|
Prefab:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications: []
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_ParentPrefab: {fileID: 0}
|
||||||
|
m_RootGameObject: {fileID: 1038420493408916}
|
||||||
|
m_IsPrefabParent: 1
|
||||||
|
--- !u!1 &1038420493408916
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4210319229959686}
|
||||||
|
- component: {fileID: 33256649974969318}
|
||||||
|
- component: {fileID: 23472074526415768}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Right Quest Controller
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4210319229959686
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1038420493408916}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &23472074526415768
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1038420493408916}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: dc3b3568b7c54234f9d6a9f7297c3425, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 0
|
||||||
|
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
|
||||||
|
--- !u!33 &33256649974969318
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 1038420493408916}
|
||||||
|
m_Mesh: {fileID: 4300000, guid: 6d5af71f44006e9478341b87a6c2867b, type: 3}
|
||||||
@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ce08b92c0a6a4224d8df78eff1db7d93
|
guid: f78c353d457baeb44987e0ae9bc0a529
|
||||||
|
timeCreated: 1562924724
|
||||||
|
licenseType: Free
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 2100000
|
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
@ -52,11 +52,7 @@ namespace Passer.Tracking {
|
|||||||
if (_hmd != null)
|
if (_hmd != null)
|
||||||
return _hmd;
|
return _hmd;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
_hmd = FindAnyObjectByType<UnityXRHmd>();
|
|
||||||
#else
|
|
||||||
_hmd = FindObjectOfType<UnityXRHmd>();
|
_hmd = FindObjectOfType<UnityXRHmd>();
|
||||||
#endif
|
|
||||||
return _hmd;
|
return _hmd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -751,7 +751,7 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Copies the pose of the target rig to the avatar</summary>
|
/// <summary>Copies the pose of the target rig to the avatar</summary>
|
||||||
public void CopyTargetsToRig() {
|
private void CopyTargetsToRig() {
|
||||||
hipsTarget.CopyTargetToRig();
|
hipsTarget.CopyTargetToRig();
|
||||||
headTarget.CopyTargetToRig();
|
headTarget.CopyTargetToRig();
|
||||||
leftHandTarget.CopyTargetToRig();
|
leftHandTarget.CopyTargetToRig();
|
||||||
@ -1253,7 +1253,22 @@ namespace Passer.Humanoid {
|
|||||||
/// taller or smaller than the avatar itself.
|
/// taller or smaller than the avatar itself.
|
||||||
/// It retains 1:1 tracking and the X/Z position of the player are not affected.
|
/// It retains 1:1 tracking and the X/Z position of the player are not affected.
|
||||||
protected void SetTrackingHeightToAvatar() {
|
protected void SetTrackingHeightToAvatar() {
|
||||||
|
//#if !pUNITYXR
|
||||||
|
/*
|
||||||
|
float localNeckHeight;
|
||||||
|
if (headTarget.unity.cameraTransform == null ||
|
||||||
|
UnityVRDevice.xrDevice == UnityVRDevice.XRDeviceType.None ||
|
||||||
|
headTarget.head.target.confidence.position <= 0
|
||||||
|
) {
|
||||||
|
|
||||||
|
localNeckHeight = headTarget.neck.target.transform.position.y - transform.position.y;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//Vector3 neckPosition = HeadMovements.CalculateNeckPosition(headTarget.unityVRHead.cameraTransform.position, headTarget.unityVRHead.cameraTransform.rotation, -headTarget.neck2eyes);
|
||||||
|
//localNeckHeight = neckPosition.y - transform.position.y;
|
||||||
|
localNeckHeight = headTarget.neck.target.transform.position.y - transform.position.y;
|
||||||
|
}
|
||||||
|
*/
|
||||||
Vector3 neckPosition;
|
Vector3 neckPosition;
|
||||||
if (headTarget.neck.target.confidence.position > 0.2F)
|
if (headTarget.neck.target.confidence.position > 0.2F)
|
||||||
neckPosition = headTarget.neck.target.transform.position;
|
neckPosition = headTarget.neck.target.transform.position;
|
||||||
@ -1266,6 +1281,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
float deltaY = avatarNeckHeight - playersNeckHeight;
|
float deltaY = avatarNeckHeight - playersNeckHeight;
|
||||||
AdjustTrackingHeight(deltaY);
|
AdjustTrackingHeight(deltaY);
|
||||||
|
//#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//public void MoveTrackingHeightToAvatar() {
|
//public void MoveTrackingHeightToAvatar() {
|
||||||
@ -1426,16 +1442,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
#region Calibration
|
#region Calibration
|
||||||
|
|
||||||
public virtual void SetStartPosition() {
|
public void SetStartPosition() {
|
||||||
Vector3 localNeckPosition;
|
|
||||||
if (headTarget.neck.target.confidence.position > 0.2F)
|
|
||||||
localNeckPosition = headTarget.neck.target.transform.position - transform.position;
|
|
||||||
else {
|
|
||||||
Transform headTargetTransform = headTarget.head.target.transform;
|
|
||||||
localNeckPosition = HeadMovements.CalculateNeckPositionFromEyes(headTargetTransform.position, headTargetTransform.rotation, -headTarget.neck2eyes) - transform.position;
|
|
||||||
}
|
|
||||||
Vector3 delta = new Vector3(-localNeckPosition.x, 0, -localNeckPosition.z);
|
|
||||||
AdjustTracking(delta);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Calibrates the tracking with the player</summary>
|
/// <summary>Calibrates the tracking with the player</summary>
|
||||||
@ -2140,8 +2147,6 @@ namespace Passer.Humanoid {
|
|||||||
/// Correct floating avatars when user is taller than the avatar
|
/// Correct floating avatars when user is taller than the avatar
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool floatCorrection = false;
|
public bool floatCorrection = false;
|
||||||
public bool floatReverting = false;
|
|
||||||
private float floatCorrectionDistance = 0.0F;
|
|
||||||
|
|
||||||
protected void CheckGrounded() {
|
protected void CheckGrounded() {
|
||||||
Vector3 footBase = GetHumanoidPosition();
|
Vector3 footBase = GetHumanoidPosition();
|
||||||
@ -2181,24 +2186,8 @@ namespace Passer.Humanoid {
|
|||||||
if (floatCorrection) {
|
if (floatCorrection) {
|
||||||
float leftFootBoneDistance = leftFootTarget.foot.bone.transform.position.y - leftFootTarget.foot.target.transform.position.y;
|
float leftFootBoneDistance = leftFootTarget.foot.bone.transform.position.y - leftFootTarget.foot.target.transform.position.y;
|
||||||
float rightFootBoneDistance = rightFootTarget.foot.bone.transform.position.y - rightFootTarget.foot.target.transform.position.y;
|
float rightFootBoneDistance = rightFootTarget.foot.bone.transform.position.y - rightFootTarget.foot.target.transform.position.y;
|
||||||
if (leftFootBoneDistance > 0.02F && rightFootBoneDistance > 0.02F) {
|
if (leftFootBoneDistance > 0.02F && rightFootBoneDistance > 0.02F)
|
||||||
float correction = -0.01F;
|
AdjustTrackingHeight(-0.01F);
|
||||||
AdjustTrackingHeight(correction);
|
|
||||||
floatCorrectionDistance += correction;
|
|
||||||
Debug.Log($"{floatCorrectionDistance} {leftFootBoneDistance} {rightFootBoneDistance}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (floatReverting && floatCorrectionDistance < 0) {
|
|
||||||
float leftFootDistance = leftFootTarget.upperLeg.bone.transform.position.y - leftFootTarget.foot.bone.transform.position.y;
|
|
||||||
float leftBendingDistance = (leftFootTarget.upperLeg.bone.length + leftFootTarget.lowerLeg.bone.length) - leftFootDistance;
|
|
||||||
float rightFootDistance = rightFootTarget.upperLeg.bone.transform.position.y - rightFootTarget.foot.bone.transform.position.y;
|
|
||||||
float rightBendingDistance = (rightFootTarget.upperLeg.bone.length + rightFootTarget.lowerLeg.bone.length) - rightFootDistance;
|
|
||||||
if (leftBendingDistance > 0.02 && rightBendingDistance > 0.02) {
|
|
||||||
float correction = +0.01F;
|
|
||||||
AdjustTrackingHeight(correction);
|
|
||||||
floatCorrectionDistance += correction;
|
|
||||||
Debug.Log($"{floatCorrectionDistance} {leftBendingDistance} {rightBendingDistance}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
namespace Passer.Humanoid {
|
namespace Passer.Humanoid {
|
||||||
|
|
||||||
/// \author PasserVR
|
/// \author PasserVR
|
||||||
/// \version 4
|
/// \version 4.0
|
||||||
/// \mainpage %Humanoid Control for Unity
|
/// \mainpage %Humanoid Control for Unity
|
||||||
///
|
///
|
||||||
|
/// Note: this documentation is still work in progress...
|
||||||
|
///
|
||||||
/// Main components
|
/// Main components
|
||||||
/// ---------------
|
/// ---------------
|
||||||
/// * \ref HumanoidControl "Humanoid Control"
|
/// * \ref HumanoidControl "Humanoid Control"
|
||||||
@ -12,8 +14,6 @@
|
|||||||
/// -------
|
/// -------
|
||||||
/// * \ref UnityXRTracker "UnityXR"
|
/// * \ref UnityXRTracker "UnityXR"
|
||||||
/// * \ref QuestDoc "Meta Rift/Quest"
|
/// * \ref QuestDoc "Meta Rift/Quest"
|
||||||
/// * \ref LeapTracker "Ultraleap"
|
|
||||||
/// * \ref ViveTrackerDoc "HTC Vive Trackers"
|
|
||||||
///
|
///
|
||||||
/// Input
|
/// Input
|
||||||
/// -----
|
/// -----
|
||||||
@ -32,63 +32,6 @@
|
|||||||
///
|
///
|
||||||
/// Networking
|
/// Networking
|
||||||
/// ----------
|
/// ----------
|
||||||
/// * \ref PhotonPunDoc "Photon PUN"
|
|
||||||
/// * NetworkingStarter
|
/// * NetworkingStarter
|
||||||
///
|
///
|
||||||
/// Getting Started
|
|
||||||
/// ===============
|
|
||||||
///
|
|
||||||
/// There are two ways to include an humanoid into a scene:
|
|
||||||
/// starting with an avatar and starting with the Humanoid Control script.
|
|
||||||
///
|
|
||||||
/// Starting with an avatar
|
|
||||||
/// -----------------------
|
|
||||||
/// In this case you start by putting an avatar prefab into the scene.
|
|
||||||
/// This avatar needs to fulfil the requirements of a Mecanim avatar (see below).
|
|
||||||
/// A couple of avatar prefabs are included in the Grocery Store Demo sample in the package.
|
|
||||||
///
|
|
||||||
/// The next step is to attach the HumanoidControl script to the avatar.
|
|
||||||
/// You can do this by selecting the *Add Component* button in the Inspector and selecting the HumanoidControl script.
|
|
||||||
///
|
|
||||||
/// \image html AddHumanoidControlComponent.png
|
|
||||||
/// \image rtf AddHumanoidControlComponent.png
|
|
||||||
///
|
|
||||||
/// Starting with the Humanoid Control script
|
|
||||||
/// -----------------------------------------
|
|
||||||
/// In this case we start with an Empty GameObject.
|
|
||||||
/// We will then add the HumanoidControl script to the object by selecting the *Add Component* button in the Inspector and selecting the HumanoidControl script.
|
|
||||||
///
|
|
||||||
/// \image html HumanoidControlWithoutAvatar.png
|
|
||||||
/// \image rtf HumanoidControlWithoutAvatar.png
|
|
||||||
///
|
|
||||||
/// You will see that the script could not detect a suitable avatar because there isn't an avatar attached yet.
|
|
||||||
/// We can now add an avatar by dropping an avatar onto the Empty GameObject we created. It will become a child of this GameObject.
|
|
||||||
///
|
|
||||||
/// \image html HumanoidAvatarInHierarchy.png
|
|
||||||
/// \image rtf HumanoidAvatarInHierarchy.png
|
|
||||||
///
|
|
||||||
/// This makes it easier to replace an avatar at a later moment
|
|
||||||
///
|
|
||||||
/// Requirements for the avatar
|
|
||||||
/// ===========================
|
|
||||||
/// You should ensure that your avatar has a well formed rig.
|
|
||||||
/// The script uses the bone structure derived in the Unity Mecanim rig to find the correct bones to move around.Check the rig as follows:
|
|
||||||
/// - In the prefab, select the ‘Rig’ tab. Ensure the ‘Animation Type’ is set to ‘Humanoid’.
|
|
||||||
/// - Ensure 'Optimize Game Objects' is *deselected*.
|
|
||||||
/// - Click ‘Configure…’
|
|
||||||
/// - Ensure that the following bones are correctly mapped:
|
|
||||||
/// - Body: Hips, Spine
|
|
||||||
/// - Left Arm: Upper Arm, Lower Arm & Hand
|
|
||||||
/// - Right Arm: Upper Arm, Lower Arm & Hand
|
|
||||||
/// - Left Leg: Upper Leg, Lower Leg & Foot
|
|
||||||
/// - Right Leg: Upper Leg, Lower Leg & Foot
|
|
||||||
/// - Head: Neck
|
|
||||||
///
|
|
||||||
/// If you need to grab objects with the alternative avatar you can add colliders to the hand and fingers manually.
|
|
||||||
/// For the thumb, the intermediate joint should at least be used for a collider. For the fingers the proximal joint should at least have a collider.
|
|
||||||
///
|
|
||||||
/// The avatar needs to have the same size and proportions as the standard avatar. Using small or giant avatars will result in strange body moments.
|
|
||||||
///
|
|
||||||
/// The avatar should face in the forward direction of the root transform. Other directions will result in twisted poses.
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,11 +32,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
inputModule = humanoid.GetComponent<InteractionModule>();
|
inputModule = humanoid.GetComponent<InteractionModule>();
|
||||||
if (inputModule == null) {
|
if (inputModule == null) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
inputModule = Object.FindAnyObjectByType<InteractionModule>();
|
|
||||||
#else
|
|
||||||
inputModule = Object.FindObjectOfType<InteractionModule>();
|
inputModule = Object.FindObjectOfType<InteractionModule>();
|
||||||
#endif
|
|
||||||
if (inputModule == null) {
|
if (inputModule == null) {
|
||||||
inputModule = humanoid.gameObject.AddComponent<InteractionModule>();
|
inputModule = humanoid.gameObject.AddComponent<InteractionModule>();
|
||||||
}
|
}
|
||||||
@ -327,9 +323,6 @@ namespace Passer.Humanoid {
|
|||||||
bool grabHandle = false;
|
bool grabHandle = false;
|
||||||
bool grabHandleInSocket = false;
|
bool grabHandleInSocket = false;
|
||||||
foreach (Collider collider in colliders) {
|
foreach (Collider collider in colliders) {
|
||||||
if (collider == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
GameObject obj;
|
GameObject obj;
|
||||||
Rigidbody objRigidbody = collider.attachedRigidbody;
|
Rigidbody objRigidbody = collider.attachedRigidbody;
|
||||||
if (objRigidbody != null)
|
if (objRigidbody != null)
|
||||||
@ -455,7 +448,7 @@ namespace Passer.Humanoid {
|
|||||||
AddTrackedRigidbody(trackedRigidbody);
|
AddTrackedRigidbody(trackedRigidbody);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.physics && grabbedRigidbody)
|
if (humanoid.physics && grabbedRigidbody)
|
||||||
AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders);
|
AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders);
|
||||||
|
|
||||||
// This does not work in the editor, so controller input cannot be set this way
|
// This does not work in the editor, so controller input cannot be set this way
|
||||||
@ -583,10 +576,10 @@ namespace Passer.Humanoid {
|
|||||||
AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders);
|
AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (handle.socket != null) {
|
//if (handle.socket != null) {
|
||||||
Debug.Log("Grab from socket");
|
// Debug.Log("Grab from socket");
|
||||||
handle.socket.Release();
|
// handle.socket.Release();
|
||||||
}
|
//}
|
||||||
|
|
||||||
targetToHandle = hand.target.transform.InverseTransformPoint(grabSocket.transform.position);
|
targetToHandle = hand.target.transform.InverseTransformPoint(grabSocket.transform.position);
|
||||||
|
|
||||||
@ -680,22 +673,23 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
protected virtual bool GrabRigidbodyParenting(Rigidbody objRigidbody) {
|
protected virtual bool GrabRigidbodyParenting(Rigidbody objRigidbody) {
|
||||||
GameObject obj = objRigidbody.gameObject;
|
GameObject obj = objRigidbody.gameObject;
|
||||||
if (handRigidbody == null)
|
if (handRigidbody == null) {
|
||||||
Debug.LogError("Hand no longer has a rigidbody...");
|
Debug.LogError("Hand no longer has a rigidbody...");
|
||||||
|
}
|
||||||
|
|
||||||
|
RigidbodyDisabled.ParentRigidbody(handRigidbody, objRigidbody);
|
||||||
if (handRigidbody != null)
|
if (handRigidbody != null)
|
||||||
handRigidbody.mass = objRigidbody.mass;
|
handRigidbody.mass = objRigidbody.mass;
|
||||||
|
|
||||||
|
|
||||||
HumanoidNetworking.DisableNetworkSync(objRigidbody.gameObject);
|
HumanoidNetworking.DisableNetworkSync(objRigidbody.gameObject);
|
||||||
if (!humanoid.isRemote)
|
if (!humanoid.isRemote)
|
||||||
HumanoidNetworking.TakeOwnership(objRigidbody.gameObject);
|
HumanoidNetworking.TakeOwnership(objRigidbody.gameObject);
|
||||||
|
|
||||||
RigidbodyDisabled.ParentRigidbody(handRigidbody, objRigidbody);
|
if (Application.isPlaying)
|
||||||
|
Object.Destroy(objRigidbody);
|
||||||
//if (Application.isPlaying)
|
else
|
||||||
// Object.Destroy(objRigidbody);
|
Object.DestroyImmediate(objRigidbody, true);
|
||||||
//else
|
|
||||||
// Object.DestroyImmediate(objRigidbody, true);
|
|
||||||
grabbedObject = obj;
|
grabbedObject = obj;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -796,7 +790,7 @@ namespace Passer.Humanoid {
|
|||||||
Object.DontDestroyOnLoad(grabbedObject);
|
Object.DontDestroyOnLoad(grabbedObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.physics)
|
if (humanoid.physics)
|
||||||
AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders);
|
AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders);
|
||||||
|
|
||||||
if (grabbedRigidbody)
|
if (grabbedRigidbody)
|
||||||
@ -832,11 +826,7 @@ namespace Passer.Humanoid {
|
|||||||
Rigidbody objRigidbody = RigidbodyDisabled.UnparentRigidbody(handPalm, grabbedObject.transform);
|
Rigidbody objRigidbody = RigidbodyDisabled.UnparentRigidbody(handPalm, grabbedObject.transform);
|
||||||
if (objRigidbody != null && !objRigidbody.isKinematic) {
|
if (objRigidbody != null && !objRigidbody.isKinematic) {
|
||||||
if (handRigidbody != null) {
|
if (handRigidbody != null) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
objRigidbody.linearVelocity = handRigidbody.linearVelocity;
|
|
||||||
#else
|
|
||||||
objRigidbody.velocity = handRigidbody.velocity;
|
objRigidbody.velocity = handRigidbody.velocity;
|
||||||
#endif
|
|
||||||
objRigidbody.angularVelocity = handRigidbody.angularVelocity;
|
objRigidbody.angularVelocity = handRigidbody.angularVelocity;
|
||||||
}
|
}
|
||||||
HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject);
|
HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject);
|
||||||
@ -863,14 +853,8 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
//grabbedRigidbody.centerOfMass = handTarget.storedCOM;
|
//grabbedRigidbody.centerOfMass = handTarget.storedCOM;
|
||||||
|
|
||||||
if (grabbedRigidbody.isKinematic == false) {
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
grabbedRigidbody.linearVelocity = handRigidbody.linearVelocity;
|
|
||||||
#else
|
|
||||||
grabbedRigidbody.velocity = handRigidbody.velocity;
|
grabbedRigidbody.velocity = handRigidbody.velocity;
|
||||||
#endif
|
|
||||||
grabbedRigidbody.angularVelocity = handRigidbody.angularVelocity;
|
grabbedRigidbody.angularVelocity = handRigidbody.angularVelocity;
|
||||||
}
|
|
||||||
|
|
||||||
if (grabbedHandle != null)
|
if (grabbedHandle != null)
|
||||||
LetGoHandle(grabbedHandle);
|
LetGoHandle(grabbedHandle);
|
||||||
|
|||||||
@ -53,13 +53,8 @@ namespace Passer.Humanoid {
|
|||||||
handTarget.handRigidbody = handTarget.hand.bone.transform.gameObject.AddComponent<Rigidbody>();
|
handTarget.handRigidbody = handTarget.hand.bone.transform.gameObject.AddComponent<Rigidbody>();
|
||||||
}
|
}
|
||||||
handTarget.handRigidbody.mass = 1;
|
handTarget.handRigidbody.mass = 1;
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
handTarget.handRigidbody.linearDamping = 0;
|
|
||||||
handTarget.handRigidbody.angularDamping = 10;
|
|
||||||
#else
|
|
||||||
handTarget.handRigidbody.drag = 0;
|
handTarget.handRigidbody.drag = 0;
|
||||||
handTarget.handRigidbody.angularDrag = 10;
|
handTarget.handRigidbody.angularDrag = 10;
|
||||||
#endif
|
|
||||||
handTarget.handRigidbody.useGravity = false;
|
handTarget.handRigidbody.useGravity = false;
|
||||||
handTarget.handRigidbody.isKinematic = true;
|
handTarget.handRigidbody.isKinematic = true;
|
||||||
handTarget.handRigidbody.interpolation = RigidbodyInterpolation.None;
|
handTarget.handRigidbody.interpolation = RigidbodyInterpolation.None;
|
||||||
|
|||||||
@ -27,7 +27,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
#if hFACE
|
#if hFACE
|
||||||
if (headTarget.neck.target.confidence.rotation < 0.2F && headTarget.head.target.confidence.rotation < 0.2F &&
|
if (headTarget.neck.target.confidence.rotation < 0.2F && headTarget.head.target.confidence.rotation < 0.2F &&
|
||||||
headTarget.face.leftEye.target.confidence.rotation > 0.2F && headTarget.headAnimator.headAnimation == true) {
|
headTarget.face.leftEye.target.confidence.rotation > 0.2F) {
|
||||||
|
|
||||||
UpdateHeadBonesFromGazeDirection(headTarget);
|
UpdateHeadBonesFromGazeDirection(headTarget);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -287,7 +287,7 @@ namespace Passer.Humanoid {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (!string.IsNullOrEmpty(msg.possessionLocation)) {
|
if (msg.possessionLocation != null) {
|
||||||
Debug.Log("Need to download instantiate avatar possession from " + msg.possessionLocation);
|
Debug.Log("Need to download instantiate avatar possession from " + msg.possessionLocation);
|
||||||
remoteHumanoid.physics = msg.physics;
|
remoteHumanoid.physics = msg.physics;
|
||||||
|
|
||||||
@ -1103,17 +1103,9 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
HumanoidTarget target = GetTarget(humanoid, targetPose.boneId);
|
HumanoidTarget target = GetTarget(humanoid, targetPose.boneId);
|
||||||
if (target != null) {
|
if (target != null)
|
||||||
if (targetPose.boneId == Tracking.Bone.Head) {
|
|
||||||
HeadAnimator headAnimator = target.animator as HeadAnimator;
|
|
||||||
if (headAnimator != null)
|
|
||||||
headAnimator.headAnimation = false;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
target.animator.enabled = false;
|
target.animator.enabled = false;
|
||||||
//target.EnableAnimator(false);
|
//target.EnableAnimator(false);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetPose.boneId == Tracking.Bone.LeftHand || targetPose.boneId == Tracking.Bone.RightHand)
|
if (targetPose.boneId == Tracking.Bone.LeftHand || targetPose.boneId == Tracking.Bone.RightHand)
|
||||||
ReceiveHand((HandTarget)target, (HumanoidHandPose)targetPose);
|
ReceiveHand((HandTarget)target, (HumanoidHandPose)targetPose);
|
||||||
@ -1718,11 +1710,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
public static List<HumanoidControl> FindLocalHumanoids() {
|
public static List<HumanoidControl> FindLocalHumanoids() {
|
||||||
List<HumanoidControl> humanoidList = new List<HumanoidControl>();
|
List<HumanoidControl> humanoidList = new List<HumanoidControl>();
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] foundHumanoids = UnityEngine.Object.FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] foundHumanoids = UnityEngine.Object.FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] foundHumanoids = UnityEngine.Object.FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
for (int i = 0; i < foundHumanoids.Length; i++) {
|
for (int i = 0; i < foundHumanoids.Length; i++) {
|
||||||
if (!foundHumanoids[i].isRemote) {
|
if (!foundHumanoids[i].isRemote) {
|
||||||
humanoidList.Add(foundHumanoids[i]);
|
humanoidList.Add(foundHumanoids[i]);
|
||||||
@ -1732,11 +1720,7 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static IHumanoidNetworking GetLocalHumanoidNetworking() {
|
public static IHumanoidNetworking GetLocalHumanoidNetworking() {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidPlayer[] humanoidNetworkings = UnityEngine.Object.FindObjectsByType<HumanoidPlayer>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidPlayer[] humanoidNetworkings = UnityEngine.Object.FindObjectsOfType<HumanoidPlayer>();
|
HumanoidPlayer[] humanoidNetworkings = UnityEngine.Object.FindObjectsOfType<HumanoidPlayer>();
|
||||||
#endif
|
|
||||||
foreach (IHumanoidNetworking humanoidNetworking in humanoidNetworkings) {
|
foreach (IHumanoidNetworking humanoidNetworking in humanoidNetworkings) {
|
||||||
if (humanoidNetworking.isLocal)
|
if (humanoidNetworking.isLocal)
|
||||||
return humanoidNetworking;
|
return humanoidNetworking;
|
||||||
|
|||||||
@ -0,0 +1,9 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Passer.Humanoid {
|
||||||
|
|
||||||
|
#if !hPUNVOICE2
|
||||||
|
public partial class HumanoidPlayerPunVoice : MonoBehaviour {
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 69a31162e39169c4fad112f52654bd40
|
guid: c48e8d9c90f89154daf3a86de9a5f2ad
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@ -6,19 +6,18 @@ namespace Passer {
|
|||||||
protected NetworkingStarter networkingStarter;
|
protected NetworkingStarter networkingStarter;
|
||||||
protected UnityEngine.UI.Text textcomponent;
|
protected UnityEngine.UI.Text textcomponent;
|
||||||
|
|
||||||
protected void Start() {
|
void Start() {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
networkingStarter = Object.FindAnyObjectByType<NetworkingStarter>();
|
|
||||||
#else
|
|
||||||
networkingStarter = FindObjectOfType<NetworkingStarter>();
|
networkingStarter = FindObjectOfType<NetworkingStarter>();
|
||||||
#endif
|
|
||||||
textcomponent = GetComponent<UnityEngine.UI.Text>();
|
textcomponent = GetComponent<UnityEngine.UI.Text>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void Update() {
|
void Update() {
|
||||||
#if hNW_UNET || hNW_PHOTON
|
#if hNW_UNET || hNW_PHOTON
|
||||||
if (networkingStarter == null)
|
if (networkingStarter == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
//if (textcomponent != null)
|
||||||
|
// textcomponent.text = networkingStarter.networkingStatus.ToString();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 0abc5e15499b06b4c86e3bbbba38e130
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -1,670 +0,0 @@
|
|||||||
#if hNW_PHOTON
|
|
||||||
using UnityEngine;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
#endif
|
|
||||||
#if hPHOTON2
|
|
||||||
using Photon.Realtime;
|
|
||||||
using Photon.Pun;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
namespace Passer.Humanoid {
|
|
||||||
using Pawn;
|
|
||||||
|
|
||||||
#if hNW_PHOTON
|
|
||||||
[RequireComponent(typeof(PhotonView))]
|
|
||||||
#if hPHOTON2
|
|
||||||
public partial class HumanoidPlayer : MonoBehaviourPunCallbacks, IHumanoidNetworking, IPunInstantiateMagicCallback, IPunObservable {
|
|
||||||
#else
|
|
||||||
public partial class HumanoidPlayer : Photon.MonoBehaviour, IHumanoidNetworking {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public ulong nwId {
|
|
||||||
#if hPHOTON2
|
|
||||||
get { return (ulong)photonView.ViewID; }
|
|
||||||
#else
|
|
||||||
get { return (ulong)photonView.viewID; }
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
protected float _sendRate = 25;
|
|
||||||
public float sendRate {
|
|
||||||
get { return _sendRate; }
|
|
||||||
}
|
|
||||||
|
|
||||||
//[SerializeField]
|
|
||||||
//protected HumanoidNetworking.DebugLevel _debug = HumanoidNetworking.DebugLevel.Error;
|
|
||||||
//public HumanoidNetworking.DebugLevel debug {
|
|
||||||
// get { return _debug; }
|
|
||||||
//}
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
protected HumanoidNetworking.Smoothing _smoothing = HumanoidNetworking.Smoothing.None;
|
|
||||||
public HumanoidNetworking.Smoothing smoothing {
|
|
||||||
get { return _smoothing; }
|
|
||||||
}
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
protected bool _createLocalRemotes = false;
|
|
||||||
public bool createLocalRemotes {
|
|
||||||
get { return _createLocalRemotes; }
|
|
||||||
set { _createLocalRemotes = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool isLocal { get; set; }
|
|
||||||
|
|
||||||
public List<HumanoidControl> humanoids { get; set; }
|
|
||||||
|
|
||||||
public ulong GetObjectIdentity(GameObject obj) {
|
|
||||||
PhotonView photonView = obj.GetComponent<PhotonView>();
|
|
||||||
if (photonView == null)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
#if hPHOTON2
|
|
||||||
return (ulong)photonView.ViewID;
|
|
||||||
#else
|
|
||||||
return (ulong)photonView.viewID;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
public GameObject GetGameObject(ulong objIdentity) {
|
|
||||||
PhotonView objView = PhotonView.Find((int)objIdentity);
|
|
||||||
if (objView == null)
|
|
||||||
return this.gameObject;
|
|
||||||
|
|
||||||
return objView.gameObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Init
|
|
||||||
#if hPHOTON2
|
|
||||||
public override void OnEnable() {
|
|
||||||
base.OnEnable();
|
|
||||||
PhotonNetwork.AddCallbackTarget(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnDisable() {
|
|
||||||
base.OnDisable();
|
|
||||||
PhotonNetwork.RemoveCallbackTarget(this);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
public void Awake() {
|
|
||||||
mInstance = this;
|
|
||||||
|
|
||||||
GameObject.DontDestroyOnLoad(this.gameObject);
|
|
||||||
humanoids = HumanoidNetworking.FindLocalHumanoids();
|
|
||||||
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Found " + humanoids.Count + " Humanoids");
|
|
||||||
|
|
||||||
for (int i = 0; i < humanoids.Count; i++) {
|
|
||||||
HumanoidControl humanoid = humanoids[i];
|
|
||||||
if (humanoid.isRemote || createLocalRemotes == false)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
humanoid.humanoidNetworking = this;
|
|
||||||
((IHumanoidNetworking)this).InstantiateHumanoid(humanoid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Start
|
|
||||||
public void OnPhotonInstantiate(PhotonMessageInfo info) {
|
|
||||||
#if hPHOTON2
|
|
||||||
if (photonView.IsMine) {
|
|
||||||
#else
|
|
||||||
if (photonView.isMine) {
|
|
||||||
#endif
|
|
||||||
isLocal = true;
|
|
||||||
name = "HumanoidPun(Local)";
|
|
||||||
|
|
||||||
humanoids = HumanoidNetworking.FindLocalHumanoids();
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Found " + humanoids.Count + " Humanoids");
|
|
||||||
|
|
||||||
for (int i = 0; i < humanoids.Count; i++) {
|
|
||||||
HumanoidControl humanoid = humanoids[i];
|
|
||||||
if (humanoid.isRemote)
|
|
||||||
continue;
|
|
||||||
#if hPHOTON2
|
|
||||||
humanoid.nwId = (ulong)photonView.ViewID;
|
|
||||||
#else
|
|
||||||
humanoid.nwId = nwId; // photonView.viewID;
|
|
||||||
#endif
|
|
||||||
humanoid.humanoidNetworking = this;
|
|
||||||
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Send Start Humanoid " + humanoid.humanoidId);
|
|
||||||
|
|
||||||
((IHumanoidNetworking)this).InstantiateHumanoid(humanoid);
|
|
||||||
|
|
||||||
#if hPUNVOICE2 && !UNITY_WEBGL
|
|
||||||
InstantiatePlayerVoice(humanoid);
|
|
||||||
#endif
|
|
||||||
HumanoidNetworking.Connected(humanoid);
|
|
||||||
}
|
|
||||||
|
|
||||||
NetworkingSpawner spawner = FindObjectOfType<NetworkingSpawner>();
|
|
||||||
if (spawner != null)
|
|
||||||
spawner.OnNetworkingStarted();
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
humanoids = HumanoidNetworking.FindLocalHumanoids();
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Found " + humanoids.Count + " Humanoids");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if hPHOTON2
|
|
||||||
public override void OnPlayerEnteredRoom(Player newPlayer) {
|
|
||||||
#else
|
|
||||||
public void OnPhotonPlayerConnected(PhotonPlayer player) {
|
|
||||||
#endif
|
|
||||||
List<HumanoidControl> humanoids = HumanoidNetworking.FindLocalHumanoids();
|
|
||||||
if (humanoids.Count <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
foreach (HumanoidControl humanoid in humanoids) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
Debug.Log(humanoid.nwId + ": (Re)Send Instantiate Humanoid " + humanoid.humanoidId);
|
|
||||||
|
|
||||||
// Notify new player about my humanoid
|
|
||||||
((IHumanoidNetworking)this).InstantiateHumanoid(humanoid);
|
|
||||||
|
|
||||||
if (humanoid.leftHandTarget.grabbedObject != null)
|
|
||||||
humanoid.humanoidNetworking.Grab(humanoid.leftHandTarget, humanoid.leftHandTarget.grabbedObject, false);
|
|
||||||
if (humanoid.rightHandTarget.grabbedObject != null)
|
|
||||||
humanoid.humanoidNetworking.Grab(humanoid.rightHandTarget, humanoid.rightHandTarget.grabbedObject, false);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Update
|
|
||||||
PhotonStream stream;
|
|
||||||
|
|
||||||
float lastSend;
|
|
||||||
|
|
||||||
// The number of received messages processed in this frame
|
|
||||||
private int processedThisFrame = 0;
|
|
||||||
private enum MessageType {
|
|
||||||
Pose,
|
|
||||||
Grab,
|
|
||||||
LetGo
|
|
||||||
}
|
|
||||||
private struct QueuedMessage {
|
|
||||||
public MessageType messageType;
|
|
||||||
public byte[] data;
|
|
||||||
}
|
|
||||||
private Queue<QueuedMessage> messageQueue = new Queue<QueuedMessage>();
|
|
||||||
|
|
||||||
protected virtual void LateUpdate() {
|
|
||||||
processedThisFrame = 0;
|
|
||||||
if (messageQueue.Count > 0) {
|
|
||||||
ProcessMessageFromQueue();
|
|
||||||
Debug.Log("----Processed messages = " + messageQueue.Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!createLocalRemotes)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (Time.time > lastSend + 1 / sendRate) {
|
|
||||||
if (humanoids != null) {
|
|
||||||
foreach (HumanoidControl humanoid in humanoids) {
|
|
||||||
if (!humanoid.isRemote) {
|
|
||||||
UpdateHumanoidPose(humanoid);
|
|
||||||
if (syncTracking)
|
|
||||||
SyncTrackingSpace(humanoid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lastSend = Time.time;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private float lastPoseTime;
|
|
||||||
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) {
|
|
||||||
this.stream = stream;
|
|
||||||
#if hPHOTON2
|
|
||||||
if (stream.IsWriting) {
|
|
||||||
#else
|
|
||||||
if (stream.isWriting) {
|
|
||||||
#endif
|
|
||||||
foreach (HumanoidControl humanoid in humanoids) {
|
|
||||||
if (!humanoid.isRemote) {
|
|
||||||
UpdateHumanoidPose(humanoid);
|
|
||||||
if (syncTracking)
|
|
||||||
SyncTrackingSpace(humanoid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ReceiveAvatarPose(stream);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ProcessMessageFromQueue() {
|
|
||||||
QueuedMessage msg = messageQueue.Dequeue();
|
|
||||||
switch (msg.messageType) {
|
|
||||||
case MessageType.Pose:
|
|
||||||
this.ReceiveHumanoidPose(msg.data);
|
|
||||||
break;
|
|
||||||
case MessageType.Grab:
|
|
||||||
Debug.Log("Processing Queued Grab " + Time.time);
|
|
||||||
this.ReceiveGrab(msg.data);
|
|
||||||
break;
|
|
||||||
case MessageType.LetGo:
|
|
||||||
Debug.Log("Processsing Queueud Let Go " + Time.time);
|
|
||||||
this.ReceiveLetGo(msg.data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Stop
|
|
||||||
private void OnDestroy() {
|
|
||||||
if (humanoids == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Destroy Remote Humanoids");
|
|
||||||
|
|
||||||
foreach (HumanoidControl humanoid in humanoids) {
|
|
||||||
if (humanoid == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (humanoid.isRemote) {
|
|
||||||
if (humanoid.gameObject != null)
|
|
||||||
Destroy(humanoid.gameObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Instantiate Humanoid
|
|
||||||
|
|
||||||
void IHumanoidNetworking.InstantiateHumanoid(HumanoidControl humanoid) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Send Instantiate Humanoid " + humanoid.humanoidId);
|
|
||||||
|
|
||||||
HumanoidNetworking.InstantiateHumanoid instantiateHumanoid = new HumanoidNetworking.InstantiateHumanoid(humanoid);
|
|
||||||
if (createLocalRemotes) {
|
|
||||||
this.Receive(instantiateHumanoid);
|
|
||||||
}
|
|
||||||
|
|
||||||
byte[] data = instantiateHumanoid.Serialize();
|
|
||||||
#if hPHOTON2
|
|
||||||
photonView.RPC("RpcInstantiateHumanoid", RpcTarget.Others, data);
|
|
||||||
#else
|
|
||||||
photonView.RPC("RpcInstantiateHumanoid", PhotonTargets.Others, data);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
[PunRPC]
|
|
||||||
protected virtual void RpcInstantiateHumanoid(byte[] data) {
|
|
||||||
this.ReceiveInstantiate(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if hPUNVOICE2 && !UNITY_WEBGL
|
|
||||||
protected virtual void InstantiatePlayerVoice(HumanoidControl humanoid) {
|
|
||||||
GameObject playerVoiceGameObject = PhotonNetwork.Instantiate("HumanoidPlayerVoice", humanoid.headTarget.transform.position, humanoid.headTarget.transform.rotation);
|
|
||||||
HumanoidPlayerPunVoice playerVoice = playerVoiceGameObject.GetComponent<HumanoidPlayerPunVoice>();
|
|
||||||
if (playerVoice != null)
|
|
||||||
playerVoice.humanoid = humanoid;
|
|
||||||
Debug.Log("created voice for " + humanoid);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Destroy Humanoid
|
|
||||||
|
|
||||||
void IHumanoidNetworking.DestroyHumanoid(HumanoidControl humanoid) {
|
|
||||||
if (humanoid == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Destroy Humanoid " + humanoid.humanoidId);
|
|
||||||
|
|
||||||
HumanoidNetworking.DestroyHumanoid destroyHumanoid = new HumanoidNetworking.DestroyHumanoid(humanoid);
|
|
||||||
if (createLocalRemotes)
|
|
||||||
this.Receive(destroyHumanoid);
|
|
||||||
|
|
||||||
byte[] data = destroyHumanoid.Serialize();
|
|
||||||
#if hPHOTON2
|
|
||||||
if (PhotonNetwork.IsConnected)
|
|
||||||
photonView.RPC("RpcDestroyHumanoid", RpcTarget.Others, data);
|
|
||||||
#else
|
|
||||||
if (PhotonNetwork.connected)
|
|
||||||
photonView.RPC("RpcDestroyHumanoid", PhotonTargets.Others, data);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
[PunRPC]
|
|
||||||
public void RpcDestroyHumanoid(byte[] data) {
|
|
||||||
this.ReceiveDestroy(data);
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Pose
|
|
||||||
|
|
||||||
public HumanoidNetworking.HumanoidPose lastHumanoidPose { get; set; }
|
|
||||||
|
|
||||||
public virtual void UpdateHumanoidPose(HumanoidControl humanoid) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Debug)
|
|
||||||
DebugLog("Send Pose Humanoid " + humanoid.humanoidId + " nwId: " + humanoid.nwId);
|
|
||||||
|
|
||||||
HumanoidNetworking.HumanoidPose humanoidPose = new HumanoidNetworking.HumanoidPose(humanoid, Time.time);
|
|
||||||
if (createLocalRemotes)
|
|
||||||
this.Receive(humanoidPose);
|
|
||||||
|
|
||||||
if (stream != null) {
|
|
||||||
byte[] data = humanoidPose.Serialize();
|
|
||||||
stream.SendNext(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PhotonStream reader;
|
|
||||||
|
|
||||||
private void ReceiveAvatarPose(PhotonStream reader) {
|
|
||||||
this.reader = reader;
|
|
||||||
|
|
||||||
byte[] data = (byte[])reader.ReceiveNext();
|
|
||||||
this.ReceiveHumanoidPose(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Grab
|
|
||||||
|
|
||||||
void IHumanoidNetworking.Grab(HandTarget handTarget, GameObject obj, bool rangeCheck, HandTarget.GrabType grabType) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Grab " + obj + " " + grabType);
|
|
||||||
|
|
||||||
ulong objIdentity = GetObjectIdentity(obj);
|
|
||||||
if (objIdentity == 0) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Warning)
|
|
||||||
Debug.LogError("Photon Grab: Grabbed object does not have a PhotonView");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
HumanoidNetworking.Grab grab = new HumanoidNetworking.Grab(handTarget, objIdentity, rangeCheck, grabType);
|
|
||||||
if (createLocalRemotes)
|
|
||||||
// Does this make sense?
|
|
||||||
this.Receive(grab);
|
|
||||||
|
|
||||||
byte[] data = grab.Serialize();
|
|
||||||
|
|
||||||
#if hPHOTON2
|
|
||||||
photonView.RPC("RpcGrab", RpcTarget.Others, data);
|
|
||||||
#else
|
|
||||||
photonView.RPC("RpcGrab", PhotonTargets.Others, data);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
[PunRPC]
|
|
||||||
public void RpcGrab(byte[] data) {
|
|
||||||
if (processedThisFrame > 0 || messageQueue.Count > 0) {
|
|
||||||
QueuedMessage msg = new QueuedMessage() {
|
|
||||||
messageType = MessageType.Grab,
|
|
||||||
data = data
|
|
||||||
};
|
|
||||||
messageQueue.Enqueue(msg);
|
|
||||||
Debug.Log("++++Buffered Grab message = " + messageQueue.Count + " " + Time.time);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.ReceiveGrab(data);
|
|
||||||
processedThisFrame++;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Let Go
|
|
||||||
|
|
||||||
void IHumanoidNetworking.LetGo(HandTarget handTarget) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("LetGo");
|
|
||||||
|
|
||||||
HumanoidNetworking.LetGo letGo = new HumanoidNetworking.LetGo(handTarget);
|
|
||||||
if (createLocalRemotes)
|
|
||||||
this.Receive(letGo);
|
|
||||||
|
|
||||||
byte[] data = letGo.Serialize();
|
|
||||||
#if hPHOTON2
|
|
||||||
photonView.RPC("RpcLetGo", RpcTarget.Others, data);
|
|
||||||
#else
|
|
||||||
photonView.RPC("RpcLetGo", PhotonTargets.Others, data);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
[PunRPC]
|
|
||||||
public void RpcLetGo(byte[] data) {
|
|
||||||
if (processedThisFrame > 0 || messageQueue.Count > 0) {
|
|
||||||
QueuedMessage msg = new QueuedMessage() {
|
|
||||||
messageType = MessageType.LetGo,
|
|
||||||
data = data
|
|
||||||
};
|
|
||||||
messageQueue.Enqueue(msg);
|
|
||||||
Debug.Log("++++Buffered Let Go message = " + messageQueue.Count + " " + Time.time);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.ReceiveLetGo(data);
|
|
||||||
processedThisFrame++;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Change Avatar
|
|
||||||
void IHumanoidNetworking.ChangeAvatar(HumanoidControl humanoid, string avatarPrefabName, string possessionLocation) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
Debug.Log(humanoid.nwId + ": Change Avatar: " + avatarPrefabName);
|
|
||||||
|
|
||||||
HumanoidNetworking.ChangeAvatar changeAvatar = new HumanoidNetworking.ChangeAvatar(humanoid, avatarPrefabName, possessionLocation);
|
|
||||||
if (createLocalRemotes)
|
|
||||||
this.Receive(changeAvatar);
|
|
||||||
|
|
||||||
byte[] data = changeAvatar.Serialize();
|
|
||||||
#if hPHOTON2
|
|
||||||
photonView.RPC("RpcChangeAvatar", RpcTarget.Others, data); // humanoid.humanoidId, avatarPrefabName);
|
|
||||||
#else
|
|
||||||
photonView.RPC("RpcChangeAvatar", PhotonTargets.Others, data); // humanoid.humanoidId, avatarPrefabName);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
[PunRPC]
|
|
||||||
protected virtual void RpcChangeAvatar(byte[] data) {
|
|
||||||
this.ReceiveChangeAvatar(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Tracking
|
|
||||||
|
|
||||||
private Transform GetTrackingTransform(HumanoidControl humanoid) {
|
|
||||||
#if hANTILATENCY
|
|
||||||
if (humanoid.antilatency != null)
|
|
||||||
return humanoid.antilatency.trackerTransform;
|
|
||||||
#endif
|
|
||||||
//#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX)
|
|
||||||
// if (humanoid.openVR != null)
|
|
||||||
// return humanoid.openVR.GetTrackingTransform();
|
|
||||||
//#endif
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SyncTrackingSpace(HumanoidControl humanoid) {
|
|
||||||
if (humanoid == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Transform trackingTransform = GetTrackingTransform(humanoid);
|
|
||||||
if (trackingTransform == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
DebugLog("Send Sync Tracking Space " + humanoid.humanoidId + " " + trackingTransform.position + " " + trackingTransform.rotation);
|
|
||||||
|
|
||||||
HumanoidNetworking.SyncTrackingSpace syncTrackingSpace =
|
|
||||||
new HumanoidNetworking.SyncTrackingSpace(humanoid, trackingTransform.position, trackingTransform.rotation);
|
|
||||||
|
|
||||||
if (createLocalRemotes)
|
|
||||||
// Does this make sense?
|
|
||||||
this.Receive(syncTrackingSpace);
|
|
||||||
|
|
||||||
byte[] data = syncTrackingSpace.Serialize();
|
|
||||||
#if hPHOTON2
|
|
||||||
photonView.RPC("RpcSyncTracking", RpcTarget.Others, data);
|
|
||||||
#else
|
|
||||||
photonView.RPC("RpcSyncTracking", PhotonTargets.Others, data);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
[PunRPC]
|
|
||||||
protected virtual void RpcSyncTracking(byte[] data) {
|
|
||||||
this.ReceiveSyncTrackingSpace(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Network Sync
|
|
||||||
|
|
||||||
void IHumanoidNetworking.ReenableNetworkSync(GameObject obj) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
Debug.Log("ReenableNetworkSync " + obj);
|
|
||||||
|
|
||||||
ReenableNetworkSync(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
void IHumanoidNetworking.DisableNetworkSync(GameObject obj) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Info)
|
|
||||||
Debug.Log("DisableNetworkSync " + obj);
|
|
||||||
DisableNetworkSync(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ReenableNetworkSync(GameObject obj) {
|
|
||||||
#if hPHOTON2
|
|
||||||
PhotonView photonView = obj.GetComponent<PhotonView>();
|
|
||||||
if (photonView != null) {
|
|
||||||
photonView.Synchronization = ViewSynchronization.UnreliableOnChange;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PhotonTransformView transformView = obj.GetComponent<PhotonTransformView>();
|
|
||||||
if (transformView != null) {
|
|
||||||
#if hPHOTON2
|
|
||||||
transformView.m_SynchronizePosition = true;
|
|
||||||
transformView.m_SynchronizeRotation = true;
|
|
||||||
transformView.enabled = true;
|
|
||||||
|
|
||||||
#else
|
|
||||||
transformView.m_PositionModel.SynchronizeEnabled = true;
|
|
||||||
transformView.m_RotationModel.SynchronizeEnabled = true;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void TakeOwnership(GameObject obj) {
|
|
||||||
#if hPHOTON2
|
|
||||||
PhotonView photonView = obj.GetComponent<PhotonView>();
|
|
||||||
if (photonView != null)
|
|
||||||
photonView.RequestOwnership();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void DisableNetworkSync(GameObject obj) {
|
|
||||||
PhotonTransformView transformView = obj.GetComponent<PhotonTransformView>();
|
|
||||||
if (transformView != null) {
|
|
||||||
#if hPHOTON2
|
|
||||||
transformView.m_SynchronizePosition = false;
|
|
||||||
transformView.m_SynchronizeRotation = false;
|
|
||||||
transformView.enabled = false;
|
|
||||||
#else
|
|
||||||
transformView.m_PositionModel.SynchronizeEnabled = false;
|
|
||||||
transformView.m_RotationModel.SynchronizeEnabled = false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Network Object
|
|
||||||
|
|
||||||
#region Void Event
|
|
||||||
|
|
||||||
public void RPC(FunctionCall functionCall) {
|
|
||||||
ulong objIdentity = GetObjectIdentity(functionCall.targetGameObject);
|
|
||||||
if (objIdentity == 0) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Warning)
|
|
||||||
Debug.LogError("Photon Grab: Grabbed object does not have a PhotonView");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
photonView.RPC("RpcFunctionCall", RpcTarget.Others, objIdentity, functionCall.methodName);
|
|
||||||
}
|
|
||||||
|
|
||||||
[PunRPC]
|
|
||||||
public void RpcFunctionCall(ulong objIdentity, string methodName) {
|
|
||||||
GameObject targetGameObject = GetGameObject(objIdentity);
|
|
||||||
if (targetGameObject == null) {
|
|
||||||
if (debug <= HumanoidNetworking.DebugLevel.Warning)
|
|
||||||
Debug.LogError("FunctionCall: Could not find object for method " + methodName);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
FunctionCall.Execute(targetGameObject, methodName);
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion Network Object
|
|
||||||
|
|
||||||
#region Send
|
|
||||||
public void Send(bool b) { stream.SendNext(b); }
|
|
||||||
public void Send(byte b) { stream.SendNext(b); }
|
|
||||||
public void Send(int x) { stream.SendNext(x); }
|
|
||||||
public void Send(float f) { stream.SendNext(f); }
|
|
||||||
public void Send(Vector3 v) { stream.SendNext(v); }
|
|
||||||
public void Send(Quaternion q) { stream.SendNext(q); }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Receive
|
|
||||||
public bool ReceiveBool() { return (bool)reader.ReceiveNext(); }
|
|
||||||
public byte ReceiveByte() { return (byte)reader.ReceiveNext(); }
|
|
||||||
public int ReceiveInt() { return (int)reader.ReceiveNext(); }
|
|
||||||
public float ReceiveFloat() { return (float)reader.ReceiveNext(); }
|
|
||||||
public Vector3 ReceiveVector3() { return (Vector3)reader.ReceiveNext(); }
|
|
||||||
public Quaternion ReceiveQuaternion() { return (Quaternion)reader.ReceiveNext(); }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Debug
|
|
||||||
|
|
||||||
public void DebugLog(string message) {
|
|
||||||
#if hPHOTON2
|
|
||||||
Debug.Log(photonView.ViewID + ": " + message);
|
|
||||||
#else
|
|
||||||
Debug.Log(photonView.viewID + ": " + message);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
public void DebugWarning(string message) {
|
|
||||||
#if hPHOTON2
|
|
||||||
Debug.LogWarning(photonView.ViewID + ": " + message);
|
|
||||||
#else
|
|
||||||
Debug.LogWarning(photonView.viewID + ": " + message);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
public void DebugError(string message) {
|
|
||||||
#if hPHOTON2
|
|
||||||
Debug.LogError(photonView.ViewID + ": " + message);
|
|
||||||
#else
|
|
||||||
Debug.LogError(photonView.viewID + ": " + message);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b2b89683096330a4eb3810fdaeb79fb6
|
|
||||||
timeCreated: 1504014033
|
|
||||||
licenseType: Free
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
#if hPUNVOICE2
|
|
||||||
using Photon.Pun;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace Passer.Humanoid {
|
|
||||||
|
|
||||||
#if !hPUNVOICE2
|
|
||||||
public class HumanoidPlayerPunVoice : MonoBehaviour {
|
|
||||||
#else
|
|
||||||
public class HumanoidPlayerPunVoice : MonoBehaviourPunCallbacks {
|
|
||||||
#endif
|
|
||||||
/// <summary>
|
|
||||||
/// The humanoid to follow
|
|
||||||
/// </summary>
|
|
||||||
public HumanoidControl humanoid;
|
|
||||||
|
|
||||||
#if hPUNVOICE2
|
|
||||||
|
|
||||||
private bool updateAudioSource = true;
|
|
||||||
|
|
||||||
#region Init
|
|
||||||
|
|
||||||
protected virtual void Start() {
|
|
||||||
Debug.Log("Started HumanoidVoice");
|
|
||||||
DontDestroyOnLoad(this.gameObject);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Init
|
|
||||||
|
|
||||||
#region Update
|
|
||||||
|
|
||||||
protected virtual void Update() {
|
|
||||||
if (photonView.Controller.IsLocal) {
|
|
||||||
transform.position = humanoid.headTarget.transform.position;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (updateAudioSource) {
|
|
||||||
AudioSource audioSource = GetComponent<AudioSource>();
|
|
||||||
if (audioSource != null) {
|
|
||||||
audioSource.rolloffMode = AudioRolloffMode.Linear;
|
|
||||||
audioSource.spatialBlend = 1;
|
|
||||||
audioSource.minDistance = 0;
|
|
||||||
audioSource.maxDistance = 1;
|
|
||||||
updateAudioSource = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (humanoid == null) {
|
|
||||||
foreach (HumanoidControl humanoid in HumanoidControl.allHumanoids) {
|
|
||||||
if (humanoid.headTarget == null)
|
|
||||||
continue;
|
|
||||||
float distance = Vector3.Distance(this.transform.position, humanoid.headTarget.transform.position);
|
|
||||||
if (distance < 0.01F) {
|
|
||||||
this.humanoid = humanoid;
|
|
||||||
AudioSource audioSource = this.humanoid.headTarget.GetComponentInChildren<AudioSource>();
|
|
||||||
#if pUNITYXR
|
|
||||||
if (audioSource == null && this.humanoid.headTarget.unityXR.unityXR.hmd != null)
|
|
||||||
audioSource = this.humanoid.headTarget.unityXR.unityXR.hmd.GetComponentInChildren<AudioSource>();
|
|
||||||
#endif
|
|
||||||
if (audioSource != null)
|
|
||||||
audioSource = this.GetComponent<AudioSource>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Update
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,64 +0,0 @@
|
|||||||
namespace Passer.Humanoid {
|
|
||||||
|
|
||||||
/// \page PhotonPunDoc Photon PUN
|
|
||||||
///
|
|
||||||
/// Setup
|
|
||||||
/// =====
|
|
||||||
/// In order to use Photon PUN 2 in your project.
|
|
||||||
/// You need to import the Photon PUN 2 package first from the asset store.
|
|
||||||
///
|
|
||||||
/// Networking Starter
|
|
||||||
/// ==================
|
|
||||||
/// When using Photon PUN 2, the Networking Starter component has the following options:
|
|
||||||
/// \image html PhotonPunNetworkingStarter.png
|
|
||||||
/// \image rtf PhotonPunNetworkingStarter.png
|
|
||||||
///
|
|
||||||
/// Networking PrefabThe player prefab which will be spawned across the network.
|
|
||||||
/// This defaults to HumanoidPlayer for Photon Networking.Room NameThe name of the environment shared by the playersGame VersionThe version of the environment shared by the playersSend RateThe number of updates per second communicated through the network.
|
|
||||||
///
|
|
||||||
/// Photon Voice
|
|
||||||
/// ============
|
|
||||||
/// You need to include the Photon Voice 2 package in your project.
|
|
||||||
///
|
|
||||||
/// In the Photon Server Settings (see Window Menu->Photon Unity Networking->Highlight Server Settings,
|
|
||||||
/// set the Settings->App Id Voice to the same App Id you use for setting up Photon 2.
|
|
||||||
/// This App Id is also found in the App Id Realtime field.
|
|
||||||
///
|
|
||||||
/// Select the Photon PUN prefab which is spawned across the network.
|
|
||||||
/// If you use the Networking Starter this usually is the HumanoidPun prefab which is found in
|
|
||||||
/// Assets/Humanoid/Prefabs/Networking/Resources/
|
|
||||||
/// Add the following components to the HumanoidPun prefab:
|
|
||||||
///
|
|
||||||
/// Add a Photon Voice View component
|
|
||||||
///
|
|
||||||
/// Add a Recorder component, make sure you have Auto Start and Transmit Enabled switched on
|
|
||||||
///
|
|
||||||
/// Set Photon Voice View->Recorder in Use to this Recorder
|
|
||||||
///
|
|
||||||
/// The result should look like this:
|
|
||||||
/// \image html PhotonPunVoiceSetup.png
|
|
||||||
/// \image rtf PhotonPunVoiceSetup.png
|
|
||||||
///
|
|
||||||
/// Now if you start you project, Photon Voice should work.
|
|
||||||
///
|
|
||||||
/// Self Hosted Networking
|
|
||||||
/// ======================
|
|
||||||
/// For local networking Photon PUN, go to the following page:
|
|
||||||
/// https://www.photonengine.com/en-US/sdks#server-sdkserverserver.
|
|
||||||
/// Then select 'Server':
|
|
||||||
///
|
|
||||||
/// And download the SDK.
|
|
||||||
///
|
|
||||||
/// Instructions on how to set it up can be found here:
|
|
||||||
/// https://doc.photonengine.com/en-us/server/current/getting-started/photon-server-in-5min
|
|
||||||
///
|
|
||||||
/// The settings you need to use in Unity for Photon 2 are as follows:
|
|
||||||
/// \image html PhotonPunSelfhosted.png
|
|
||||||
/// \image rtf PhotonPunSelfhosted.png
|
|
||||||
///
|
|
||||||
/// In this case, we use a direct IP Address (localhost/127.0.01), so Use Name Server is disabled.
|
|
||||||
/// As the protocol is Udp, you need to set port to 5055. Other port numbers can be found here:
|
|
||||||
/// https://doc.photonengine.com/en-us/realtime/current/connection-and-authentication/tcp-and-udp-port-numbers
|
|
||||||
/// If you start the scene now, Photon should connect to the local server.
|
|
||||||
///
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 25694d80cf4ce2940b87374eb5c2d879
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -1,97 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
#if hPHOTON2
|
|
||||||
using Photon.Pun;
|
|
||||||
using Photon.Realtime;
|
|
||||||
#endif
|
|
||||||
#if hPUNVOICE2
|
|
||||||
using Photon.Voice.PUN;
|
|
||||||
using Photon.Voice.Unity;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace Passer {
|
|
||||||
#if hNW_PHOTON
|
|
||||||
public class PunStarter : INetworkingStarter {
|
|
||||||
|
|
||||||
public GameObject playerPrefab;
|
|
||||||
|
|
||||||
public string roomName;
|
|
||||||
public int gameVersion;
|
|
||||||
public int sendRate;
|
|
||||||
|
|
||||||
public void Awake() {
|
|
||||||
#if hPUNVOICE2 && !UNITY_WEBGL
|
|
||||||
PhotonVoiceNetwork voiceNetwork = Object.FindObjectOfType<PhotonVoiceNetwork>();
|
|
||||||
if (voiceNetwork != null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
GameObject voiceNetworkObject = new GameObject("Voice Network");
|
|
||||||
voiceNetwork = voiceNetworkObject.AddComponent<PhotonVoiceNetwork>();
|
|
||||||
|
|
||||||
Recorder voiceRecorder = voiceNetworkObject.AddComponent<Recorder>();
|
|
||||||
voiceRecorder.ReactOnSystemChanges = true;
|
|
||||||
voiceRecorder.TransmitEnabled = true;
|
|
||||||
voiceRecorder.SamplingRate = POpusCodec.Enums.SamplingRate.Sampling48000;
|
|
||||||
|
|
||||||
voiceNetwork.PrimaryRecorder = voiceRecorder;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
GameObject INetworkingStarter.GetHumanoidPrefab() {
|
|
||||||
GameObject humanoidPrefab = Resources.Load<GameObject>("HumanoidPlayer");
|
|
||||||
return humanoidPrefab;
|
|
||||||
}
|
|
||||||
|
|
||||||
void INetworkingStarter.StartHost(NetworkingStarter nwStarter) {
|
|
||||||
((INetworkingStarter)this).StartClient(nwStarter);
|
|
||||||
}
|
|
||||||
|
|
||||||
void INetworkingStarter.StartClient(NetworkingStarter nwStarter) {
|
|
||||||
((INetworkingStarter)this).StartClient(nwStarter, nwStarter.roomName, nwStarter.gameVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
void INetworkingStarter.StartClient(NetworkingStarter nwStarter, string _roomName, int _gameVersion) {
|
|
||||||
roomName = _roomName;
|
|
||||||
gameVersion = _gameVersion;
|
|
||||||
playerPrefab = Resources.Load<GameObject>("HumanoidPlayer");
|
|
||||||
sendRate = nwStarter.sendRate;
|
|
||||||
|
|
||||||
#if hPHOTON2
|
|
||||||
PhotonNetwork.SendRate = sendRate;
|
|
||||||
PhotonNetwork.SerializationRate = sendRate;
|
|
||||||
PhotonNetwork.GameVersion = gameVersion.ToString();
|
|
||||||
PhotonNetwork.ConnectUsingSettings();
|
|
||||||
#else
|
|
||||||
PhotonNetwork.sendRate = sendRate;
|
|
||||||
PhotonNetwork.sendRateOnSerialize = sendRate;
|
|
||||||
PhotonNetwork.ConnectUsingSettings(gameVersion.ToString());
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void OnConnectedToPhoton() {
|
|
||||||
Debug.Log("Photon");
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void OnConnectedToMaster() {
|
|
||||||
RoomOptions roomOptions = new RoomOptions() { IsVisible = false, MaxPlayers = 4 };
|
|
||||||
PhotonNetwork.JoinOrCreateRoom(roomName, roomOptions, TypedLobby.Default);
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void OnPhotonJoinRoomFailed() {
|
|
||||||
Debug.LogError("Could not joint the " + roomName + " room");
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void OnJoinedRoom(GameObject playerPrefab) {
|
|
||||||
if (playerPrefab != null)
|
|
||||||
PhotonNetwork.Instantiate(playerPrefab.name, Vector3.zero, Quaternion.identity, 0);
|
|
||||||
|
|
||||||
//NetworkingSpawner spawner = FindObjectOfType<NetworkingSpawner>();
|
|
||||||
//if (spawner != null)
|
|
||||||
// spawner.OnNetworkingStarted();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StopClient() {
|
|
||||||
PhotonNetwork.Disconnect();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: bbe6fd67c1c770e478d9cb8eef19b594
|
|
||||||
timeCreated: 1466884930
|
|
||||||
licenseType: Free
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -227,11 +227,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
//Compensate for absolute rigidbody speed (specifically when on a moving platform)
|
//Compensate for absolute rigidbody speed (specifically when on a moving platform)
|
||||||
if (handRigidbody != null) {
|
if (handRigidbody != null) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
Vector3 residualVelocity = handRigidbody.linearVelocity - velocityTowardsTarget;
|
|
||||||
#else
|
|
||||||
Vector3 residualVelocity = handRigidbody.velocity - velocityTowardsTarget;
|
Vector3 residualVelocity = handRigidbody.velocity - velocityTowardsTarget;
|
||||||
#endif
|
|
||||||
damper += residualVelocity * 10;
|
damper += residualVelocity * 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -417,8 +413,6 @@ namespace Passer.Humanoid {
|
|||||||
float distance = Vector3.Distance(handTarget.hand.bone.transform.position, handTarget.forearm.bone.transform.position) - handTarget.forearm.bone.length;
|
float distance = Vector3.Distance(handTarget.hand.bone.transform.position, handTarget.forearm.bone.transform.position) - handTarget.forearm.bone.length;
|
||||||
if (distance > 0.05F) {
|
if (distance > 0.05F) {
|
||||||
handTarget.colliders = SetKinematic(handRigidbody);
|
handTarget.colliders = SetKinematic(handRigidbody);
|
||||||
// make sure the hand returns
|
|
||||||
PlaceHandOnArm(handTarget, handTarget.forearm.bone.targetRotation);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -427,11 +421,6 @@ namespace Passer.Humanoid {
|
|||||||
colliding = false;
|
colliding = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void PlaceHandOnArm(HandTarget handTarget, Quaternion forearmRotation) {
|
|
||||||
//Debug.Log("PlaceHandOnArm");
|
|
||||||
handTarget.hand.bone.transform.position = handTarget.forearm.bone.transform.position + forearmRotation * -handTarget.outward * handTarget.forearm.bone.length;
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void UpdateRigidbody() {
|
public virtual void UpdateRigidbody() {
|
||||||
if (handRigidbody == null) {
|
if (handRigidbody == null) {
|
||||||
UpdateGrabbedMechanicalJoint();
|
UpdateGrabbedMechanicalJoint();
|
||||||
@ -563,11 +552,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
Vector3 velocityTarget = (positionDelta * velocityMagic) * Time.fixedDeltaTime;
|
Vector3 velocityTarget = (positionDelta * velocityMagic) * Time.fixedDeltaTime;
|
||||||
if (float.IsNaN(velocityTarget.x) == false)
|
if (float.IsNaN(velocityTarget.x) == false)
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
handRigidbody.linearVelocity = Vector3.MoveTowards(handRigidbody.linearVelocity, velocityTarget, MaxVelocityChange);
|
|
||||||
#else
|
|
||||||
handRigidbody.velocity = Vector3.MoveTowards(handRigidbody.velocity, velocityTarget, MaxVelocityChange);
|
handRigidbody.velocity = Vector3.MoveTowards(handRigidbody.velocity, velocityTarget, MaxVelocityChange);
|
||||||
#endif
|
|
||||||
|
|
||||||
rotationDelta.ToAngleAxis(out angle, out axis);
|
rotationDelta.ToAngleAxis(out angle, out axis);
|
||||||
|
|
||||||
|
|||||||
@ -15,13 +15,8 @@ namespace Passer {
|
|||||||
|
|
||||||
public RigidbodyData(Rigidbody rb) {
|
public RigidbodyData(Rigidbody rb) {
|
||||||
mass = rb.mass;
|
mass = rb.mass;
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
drag = rb.linearDamping;
|
|
||||||
angularDrag = rb.angularDamping;
|
|
||||||
#else
|
|
||||||
drag = rb.drag;
|
drag = rb.drag;
|
||||||
angularDrag = rb.angularDrag;
|
angularDrag = rb.angularDrag;
|
||||||
#endif
|
|
||||||
useGravity = rb.useGravity;
|
useGravity = rb.useGravity;
|
||||||
isKinematic = rb.isKinematic;
|
isKinematic = rb.isKinematic;
|
||||||
interpolation = rb.interpolation;
|
interpolation = rb.interpolation;
|
||||||
@ -33,13 +28,8 @@ namespace Passer {
|
|||||||
|
|
||||||
public void CopyToRigidbody(Rigidbody rb) {
|
public void CopyToRigidbody(Rigidbody rb) {
|
||||||
rb.mass = mass;
|
rb.mass = mass;
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
rb.linearDamping = drag;
|
|
||||||
rb.angularDamping = angularDrag;
|
|
||||||
#else
|
|
||||||
rb.drag = drag;
|
rb.drag = drag;
|
||||||
rb.angularDrag = angularDrag;
|
rb.angularDrag = angularDrag;
|
||||||
#endif
|
|
||||||
rb.useGravity = useGravity;
|
rb.useGravity = useGravity;
|
||||||
rb.isKinematic = isKinematic;
|
rb.isKinematic = isKinematic;
|
||||||
rb.interpolation = interpolation;
|
rb.interpolation = interpolation;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 3cec17721dc9fb0499bab2210c9bf0ac
|
guid: 94cc904628763c548944b198ccc94346
|
||||||
PrefabImporter:
|
timeCreated: 1486644658
|
||||||
externalObjects: {}
|
licenseType: Free
|
||||||
|
NativeFormatImporter:
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 875a66c1e6398184192242a8674906b3
|
guid: cc84ac7c95c473c44b97c107602087b7
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
|
timeCreated: 1486643266
|
||||||
|
licenseType: Free
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
@ -2,24 +2,19 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_Name: Material
|
||||||
m_Name: 292
|
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_ShaderKeywords: _EMISSION
|
||||||
m_ModifiedSerializedProperties: 0
|
m_LightmapFlags: 1
|
||||||
m_ValidKeywords: []
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 4
|
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap: {}
|
stringTagMap: {}
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@ -59,14 +54,13 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
- _DetailNormalMapScale: 1
|
- _DetailNormalMapScale: 1
|
||||||
- _DstBlend: 0
|
- _DstBlend: 0
|
||||||
- _GlossMapScale: 1
|
- _GlossMapScale: 1
|
||||||
- _Glossiness: 0
|
- _Glossiness: 0.5
|
||||||
- _GlossyReflections: 1
|
- _GlossyReflections: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _Mode: 0
|
- _Mode: 0
|
||||||
@ -80,4 +74,3 @@ Material:
|
|||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_BuildTextureStacks: []
|
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f288e74f24dec3949aed8e4f550c4b83
|
||||||
|
timeCreated: 1486643266
|
||||||
|
licenseType: Free
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -1,8 +1,9 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 6abcb3631639c01478d992ecbd8dc39a
|
guid: 02da7ec8c993b874381f34377f818316
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
|
timeCreated: 1486643408
|
||||||
|
licenseType: Free
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|||||||
Binary file not shown.
@ -649,11 +649,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
private HumanoidControl GetHumanoid() {
|
private HumanoidControl GetHumanoid() {
|
||||||
// This does not work for prefabs
|
// This does not work for prefabs
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
|
|
||||||
for (int i = 0; i < humanoids.Length; i++) {
|
for (int i = 0; i < humanoids.Length; i++) {
|
||||||
if ((humanoids[i].leftFootTarget != null && humanoids[i].leftFootTarget.transform == this.transform) ||
|
if ((humanoids[i].leftFootTarget != null && humanoids[i].leftFootTarget.transform == this.transform) ||
|
||||||
|
|||||||
@ -1163,11 +1163,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
private HumanoidControl GetHumanoid() {
|
private HumanoidControl GetHumanoid() {
|
||||||
// This does not work for prefabs
|
// This does not work for prefabs
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
|
|
||||||
for (int i = 0; i < humanoids.Length; i++) {
|
for (int i = 0; i < humanoids.Length; i++) {
|
||||||
if ((humanoids[i].leftHandTarget != null && humanoids[i].leftHandTarget.transform == this.transform) ||
|
if ((humanoids[i].leftHandTarget != null && humanoids[i].leftHandTarget.transform == this.transform) ||
|
||||||
@ -1199,13 +1195,8 @@ namespace Passer.Humanoid {
|
|||||||
handRigidbody = hand.bone.transform.gameObject.AddComponent<Rigidbody>();
|
handRigidbody = hand.bone.transform.gameObject.AddComponent<Rigidbody>();
|
||||||
}
|
}
|
||||||
handRigidbody.mass = 1;
|
handRigidbody.mass = 1;
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
handRigidbody.linearDamping = 0;
|
|
||||||
handRigidbody.angularDamping = 10;
|
|
||||||
#else
|
|
||||||
handRigidbody.drag = 0;
|
handRigidbody.drag = 0;
|
||||||
handRigidbody.angularDrag = 10;
|
handRigidbody.angularDrag = 10;
|
||||||
#endif
|
|
||||||
handRigidbody.useGravity = false;
|
handRigidbody.useGravity = false;
|
||||||
handRigidbody.isKinematic = true;
|
handRigidbody.isKinematic = true;
|
||||||
handRigidbody.interpolation = RigidbodyInterpolation.None;
|
handRigidbody.interpolation = RigidbodyInterpolation.None;
|
||||||
|
|||||||
@ -560,7 +560,6 @@ namespace Passer.Humanoid {
|
|||||||
neck.RetrieveBones(humanoid);
|
neck.RetrieveBones(humanoid);
|
||||||
head.RetrieveBones(humanoid);
|
head.RetrieveBones(humanoid);
|
||||||
#if hFACE
|
#if hFACE
|
||||||
face.InitComponent();
|
|
||||||
face.RetrieveBones(this);
|
face.RetrieveBones(this);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -750,11 +749,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
private HumanoidControl GetHumanoid() {
|
private HumanoidControl GetHumanoid() {
|
||||||
// This does not work for prefabs
|
// This does not work for prefabs
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
|
|
||||||
for (int i = 0; i < humanoids.Length; i++) {
|
for (int i = 0; i < humanoids.Length; i++) {
|
||||||
if (humanoids[i].headTarget != null && humanoids[i].headTarget.transform == this.transform)
|
if (humanoids[i].headTarget != null && humanoids[i].headTarget.transform == this.transform)
|
||||||
@ -804,6 +799,9 @@ namespace Passer.Humanoid {
|
|||||||
if (humanoid == null)
|
if (humanoid == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#if hFACE
|
||||||
|
face.InitComponent();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void StartTarget() {
|
public override void StartTarget() {
|
||||||
@ -1222,6 +1220,15 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DisableVR() {
|
||||||
|
UnityEngine.XR.XRSettings.LoadDeviceByName("None");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void EnableVR() {
|
||||||
|
// Just oculus for now
|
||||||
|
UnityEngine.XR.XRSettings.LoadDeviceByName("Oculus");
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -47,7 +47,6 @@ namespace Passer.Humanoid {
|
|||||||
hips = new TargetedHipsBone(this);
|
hips = new TargetedHipsBone(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool simpleSpineIK => newSpineIK;
|
|
||||||
public bool newSpineIK = false;
|
public bool newSpineIK = false;
|
||||||
public TorsoMovements torsoMovements = new TorsoMovements();
|
public TorsoMovements torsoMovements = new TorsoMovements();
|
||||||
|
|
||||||
@ -461,11 +460,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
private HumanoidControl GetHumanoid() {
|
private HumanoidControl GetHumanoid() {
|
||||||
// This does not work for prefabs
|
// This does not work for prefabs
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
|
|
||||||
for (int i = 0; i < humanoids.Length; i++) {
|
for (int i = 0; i < humanoids.Length; i++) {
|
||||||
if (humanoids[i].hipsTarget != null && humanoids[i].hipsTarget.transform == this.transform)
|
if (humanoids[i].hipsTarget != null && humanoids[i].hipsTarget.transform == this.transform)
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Passer {
|
|
||||||
|
|
||||||
public class FlashLight : MonoBehaviour {
|
public class FlashLight : MonoBehaviour {
|
||||||
|
|
||||||
protected Light thisLight;
|
protected Light thisLight;
|
||||||
@ -33,4 +31,3 @@ namespace Passer {
|
|||||||
light.enabled = false;
|
light.enabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@ -1,12 +1,8 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Passer {
|
|
||||||
|
|
||||||
public class Hit : MonoBehaviour {
|
public class Hit : MonoBehaviour {
|
||||||
|
|
||||||
public void HitMe() {
|
public void HitMe() {
|
||||||
Debug.Log("AU!");
|
Debug.Log("AU!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@ -51,11 +51,7 @@ namespace Passer {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>The found humanoid, null if no local humanoid has been found</returns>
|
/// <returns>The found humanoid, null if no local humanoid has been found</returns>
|
||||||
protected HumanoidControl FindHumanoid() {
|
protected HumanoidControl FindHumanoid() {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
for (int i = 0; i < humanoids.Length; i++) {
|
for (int i = 0; i < humanoids.Length; i++) {
|
||||||
if (humanoids[i].isRemote == false)
|
if (humanoids[i].isRemote == false)
|
||||||
return humanoids[i];
|
return humanoids[i];
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Passer {
|
|
||||||
|
|
||||||
public class Redrop : MonoBehaviour {
|
public class Redrop : MonoBehaviour {
|
||||||
|
|
||||||
// Script which is to be replaced by CollisionEventHandler
|
// Script which is to be replaced by CollisionEventHandler
|
||||||
@ -12,18 +10,18 @@ namespace Passer {
|
|||||||
private Vector3 startPosition;
|
private Vector3 startPosition;
|
||||||
private Quaternion startRotation;
|
private Quaternion startRotation;
|
||||||
|
|
||||||
protected void Start() {
|
void Start() {
|
||||||
startPosition = transform.position;
|
startPosition = transform.position;
|
||||||
startRotation = transform.rotation;
|
startRotation = transform.rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void Update() {
|
void Update() {
|
||||||
if (groundCollider == null && transform.position.y < 0) {
|
if (groundCollider == null && transform.position.y < 0) {
|
||||||
MoveToStart();
|
MoveToStart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void OnCollisionEnter(Collision collision) {
|
private void OnCollisionEnter(Collision collision) {
|
||||||
if (collision.collider == groundCollider) {
|
if (collision.collider == groundCollider) {
|
||||||
MoveToStart();
|
MoveToStart();
|
||||||
}
|
}
|
||||||
@ -34,14 +32,8 @@ namespace Passer {
|
|||||||
if (thisRigidbody != null) {
|
if (thisRigidbody != null) {
|
||||||
thisRigidbody.MovePosition(new Vector3(startPosition.x, startPosition.y + 0.1F, startPosition.z));
|
thisRigidbody.MovePosition(new Vector3(startPosition.x, startPosition.y + 0.1F, startPosition.z));
|
||||||
thisRigidbody.MoveRotation(startRotation);
|
thisRigidbody.MoveRotation(startRotation);
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
thisRigidbody.linearVelocity = Vector3.zero;
|
|
||||||
#else
|
|
||||||
thisRigidbody.velocity = Vector3.zero;
|
thisRigidbody.velocity = Vector3.zero;
|
||||||
#endif
|
|
||||||
thisRigidbody.angularVelocity = Vector3.zero;
|
thisRigidbody.angularVelocity = Vector3.zero;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@ -4,7 +4,6 @@ using UnityEngine.SceneManagement;
|
|||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.SceneManagement;
|
using UnityEditor.SceneManagement;
|
||||||
|
|
||||||
namespace Passer {
|
|
||||||
|
|
||||||
[InitializeOnLoad]
|
[InitializeOnLoad]
|
||||||
public class SceneLoader {
|
public class SceneLoader {
|
||||||
@ -15,31 +14,21 @@ namespace Passer {
|
|||||||
private static void SceneOpened(Scene scene, OpenSceneMode mode) {
|
private static void SceneOpened(Scene scene, OpenSceneMode mode) {
|
||||||
if ((scene.name == "ObjectTable Pawn" ||
|
if ((scene.name == "ObjectTable Pawn" ||
|
||||||
scene.name == "ObjectTable Pawn VR" ||
|
scene.name == "ObjectTable Pawn VR" ||
|
||||||
scene.name == "ObjectTable Humanoid")
|
scene.name == "ObjectTable Humanoid") &&
|
||||||
#if UNITY_2022_2_OR_NEWER
|
EditorSceneManager.loadedSceneCount == 1) {
|
||||||
&& UnityEngine.SceneManagement.SceneManager.loadedSceneCount == 1
|
|
||||||
#else
|
|
||||||
&& EditorSceneManager.loadedSceneCount == 1
|
|
||||||
#endif
|
|
||||||
) {
|
|
||||||
//Debug.Log("Additive opening ObjectTable scene");
|
//Debug.Log("Additive opening ObjectTable scene");
|
||||||
EditorSceneManager.OpenScene("Assets/PawnControl/Demo/Environments/ObjectTable.unity", OpenSceneMode.Additive);
|
EditorSceneManager.OpenScene("Assets/PawnControl/Demo/Environments/ObjectTable.unity", OpenSceneMode.Additive);
|
||||||
}
|
}
|
||||||
else if ((scene.name == "ShootingRange Pawn" ||
|
else if ((scene.name == "ShootingRange Pawn" ||
|
||||||
scene.name == "ShootingRange Pawn VR" ||
|
scene.name == "ShootingRange Pawn VR" ||
|
||||||
scene.name == "ShootingRange Humanoid")
|
scene.name == "ShootingRange Humanoid") &&
|
||||||
#if UNITY_2022_2_OR_NEWER
|
EditorSceneManager.loadedSceneCount == 1) {
|
||||||
&& UnityEngine.SceneManagement.SceneManager.loadedSceneCount == 1
|
|
||||||
#else
|
|
||||||
&& EditorSceneManager.loadedSceneCount == 1
|
|
||||||
#endif
|
|
||||||
) {
|
|
||||||
//Debug.Log("Additive opening ShootingRange scene");
|
//Debug.Log("Additive opening ShootingRange scene");
|
||||||
EditorSceneManager.OpenScene("Assets/PawnControl/Demo/Environments/ShootingRange.unity", OpenSceneMode.Additive);
|
EditorSceneManager.OpenScene("Assets/PawnControl/Demo/Environments/ShootingRange.unity", OpenSceneMode.Additive);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
using UnityEngine;
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Passer.Humanoid {
|
namespace Passer.Humanoid {
|
||||||
|
|
||||||
@ -7,11 +9,7 @@ namespace Passer.Humanoid {
|
|||||||
protected HandTarget handTarget;
|
protected HandTarget handTarget;
|
||||||
|
|
||||||
protected void Start() {
|
protected void Start() {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
if (humanoids.Length != 1)
|
if (humanoids.Length != 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@ -29,11 +29,7 @@ namespace Passer.Humanoid {
|
|||||||
private void Awake() {
|
private void Awake() {
|
||||||
HumanoidControl humanoidInScene = GetComponentInParent<HumanoidControl>();
|
HumanoidControl humanoidInScene = GetComponentInParent<HumanoidControl>();
|
||||||
if (humanoidInScene == null) {
|
if (humanoidInScene == null) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl[] humanoids = FindObjectsByType<HumanoidControl>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
HumanoidControl[] humanoids = FindObjectsOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
foreach (HumanoidControl humanoid in humanoids) {
|
foreach (HumanoidControl humanoid in humanoids) {
|
||||||
if (humanoid.isRemote == false)
|
if (humanoid.isRemote == false)
|
||||||
this.humanoid = humanoid;
|
this.humanoid = humanoid;
|
||||||
|
|||||||
@ -21,11 +21,7 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void OnSceneLoad(Scene scene, LoadSceneMode mode) {
|
private void OnSceneLoad(Scene scene, LoadSceneMode mode) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
Canvas[] canvases = FindObjectsByType<Canvas>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
Canvas[] canvases = FindObjectsOfType<Canvas>();
|
Canvas[] canvases = FindObjectsOfType<Canvas>();
|
||||||
#endif
|
|
||||||
foreach (Canvas canvas in canvases)
|
foreach (Canvas canvas in canvases)
|
||||||
canvas.worldCamera = Camera.main;
|
canvas.worldCamera = Camera.main;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Passer {
|
//namespace Passer {
|
||||||
|
|
||||||
public static class RigidbodyTools {
|
public static class RigidbodyTools {
|
||||||
public static void DestroyGameObject(this Rigidbody rigidbody) {
|
public static void DestroyGameObject(this Rigidbody rigidbody) {
|
||||||
@ -8,4 +8,4 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
//}
|
||||||
@ -43,11 +43,7 @@ namespace Passer {
|
|||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoad;
|
UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoad;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl humanoid = FindAnyObjectByType<HumanoidControl>();
|
|
||||||
#else
|
|
||||||
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
if (humanoid == null) {
|
if (humanoid == null) {
|
||||||
string visitorScenePath = HumanoidPreferences.visitorSceneName;
|
string visitorScenePath = HumanoidPreferences.visitorSceneName;
|
||||||
if (!string.IsNullOrEmpty(visitorScenePath)) {
|
if (!string.IsNullOrEmpty(visitorScenePath)) {
|
||||||
@ -61,29 +57,17 @@ namespace Passer {
|
|||||||
|
|
||||||
private void OnSceneLoad(Scene _, LoadSceneMode _1) {
|
private void OnSceneLoad(Scene _, LoadSceneMode _1) {
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
SiteNavigator[] siteNavigators = FindObjectsByType<SiteNavigator>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
SiteNavigator[] siteNavigators = FindObjectsOfType<SiteNavigator>();
|
SiteNavigator[] siteNavigators = FindObjectsOfType<SiteNavigator>();
|
||||||
#endif
|
|
||||||
foreach (SiteNavigator siteNavigator in siteNavigators) {
|
foreach (SiteNavigator siteNavigator in siteNavigators) {
|
||||||
siteNavigator.startScene = null;
|
siteNavigator.startScene = null;
|
||||||
siteNavigator.startSite = null;
|
siteNavigator.startSite = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl pawn = FindAnyObjectByType<HumanoidControl>();
|
|
||||||
#else
|
|
||||||
HumanoidControl pawn = FindObjectOfType<HumanoidControl>();
|
HumanoidControl pawn = FindObjectOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
if (pawn == null)
|
if (pawn == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidSpawnPoint[] spawnPoints = FindObjectsByType<HumanoidSpawnPoint>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
HumanoidSpawnPoint[] spawnPoints = FindObjectsOfType<HumanoidSpawnPoint>();
|
HumanoidSpawnPoint[] spawnPoints = FindObjectsOfType<HumanoidSpawnPoint>();
|
||||||
#endif
|
|
||||||
foreach (HumanoidSpawnPoint spawnPoint in spawnPoints) {
|
foreach (HumanoidSpawnPoint spawnPoint in spawnPoints) {
|
||||||
if (spawnPoint.isFree)
|
if (spawnPoint.isFree)
|
||||||
pawn.transform.position = spawnPoint.transform.position;
|
pawn.transform.position = spawnPoint.transform.position;
|
||||||
|
|||||||
@ -87,7 +87,7 @@ namespace Passer {
|
|||||||
UnityEditor.SceneManagement.EditorSceneManager.LoadSceneInPlayMode(startScene, new LoadSceneParameters(LoadSceneMode.Additive));
|
UnityEditor.SceneManagement.EditorSceneManager.LoadSceneInPlayMode(startScene, new LoadSceneParameters(LoadSceneMode.Additive));
|
||||||
currentSite = new HistoryEntry() {
|
currentSite = new HistoryEntry() {
|
||||||
siteName = "directload",
|
siteName = "directload",
|
||||||
siteLocation = "serrarens.nl/sites/start",
|
siteLocation = "passervr.com/sites/start",
|
||||||
scenePath = "",
|
scenePath = "",
|
||||||
assetBundle = currentAssetBundle,
|
assetBundle = currentAssetBundle,
|
||||||
};
|
};
|
||||||
@ -248,7 +248,7 @@ namespace Passer {
|
|||||||
|
|
||||||
UnityEngine.UI.Text text = dialogObj.AddComponent<UnityEngine.UI.Text>();
|
UnityEngine.UI.Text text = dialogObj.AddComponent<UnityEngine.UI.Text>();
|
||||||
text.text = dialogText;
|
text.text = dialogText;
|
||||||
text.font = Resources.GetBuiltinResource<Font>("LegacyRuntime.ttf");
|
text.font = Resources.GetBuiltinResource<Font>("Arial.ttf");
|
||||||
text.resizeTextForBestFit = true;
|
text.resizeTextForBestFit = true;
|
||||||
text.alignment = TextAnchor.MiddleCenter;
|
text.alignment = TextAnchor.MiddleCenter;
|
||||||
|
|
||||||
|
|||||||
@ -16,11 +16,7 @@ namespace Passer {
|
|||||||
|
|
||||||
UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoad;
|
UnityEngine.SceneManagement.SceneManager.sceneLoaded += OnSceneLoad;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl pawn = FindAnyObjectByType<HumanoidControl>();
|
|
||||||
#else
|
|
||||||
HumanoidControl pawn = FindObjectOfType<HumanoidControl>();
|
HumanoidControl pawn = FindObjectOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
if (pawn == null) {
|
if (pawn == null) {
|
||||||
UnityEngine.SceneManagement.SceneManager.LoadScene(sceneName);
|
UnityEngine.SceneManagement.SceneManager.LoadScene(sceneName);
|
||||||
}
|
}
|
||||||
@ -30,11 +26,7 @@ namespace Passer {
|
|||||||
|
|
||||||
private void OnSceneLoad(UnityEngine.SceneManagement.Scene _, LoadSceneMode _1) {
|
private void OnSceneLoad(UnityEngine.SceneManagement.Scene _, LoadSceneMode _1) {
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
SiteNavigator siteNavigator = FindAnyObjectByType<SiteNavigator>();
|
|
||||||
#else
|
|
||||||
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
||||||
#endif
|
|
||||||
if (siteNavigator != null) {
|
if (siteNavigator != null) {
|
||||||
siteNavigator.startScene = thisSceneName;
|
siteNavigator.startScene = thisSceneName;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
namespace Passer {
|
using Passer;
|
||||||
|
|
||||||
public class ControllerDebugger : MonoBehaviour {
|
public class ControllerDebugger : MonoBehaviour {
|
||||||
|
|
||||||
@ -64,5 +64,3 @@ namespace Passer {
|
|||||||
sideDebugger.option = controllerSide.option;
|
sideDebugger.option = controllerSide.option;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@ -204,13 +204,13 @@ namespace Passer {
|
|||||||
return force;
|
return force;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Vector3 CalculateForce(Rigidbody thisRigidbody, Vector3 sollPosition, float strength, float damping = 25) {
|
public static Vector3 CalculateForce(Rigidbody thisRigidbody, Vector3 sollPosition, float strength, float damping = 1500) {
|
||||||
Vector3 locationDifference = sollPosition - thisRigidbody.position;
|
Vector3 locationDifference = sollPosition - thisRigidbody.position;
|
||||||
Vector3 force = locationDifference;
|
Vector3 force = locationDifference;
|
||||||
|
|
||||||
//force += CalculateForceDamper();
|
//force += CalculateForceDamper();
|
||||||
Vector3 damper = -thisRigidbody.velocity * Time.deltaTime * damping;
|
//Vector3 damper = -thisRigidbody.velocity * Time.deltaTime * damping;
|
||||||
force += damper;
|
//force += damper;
|
||||||
return force * strength;
|
return force * strength;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,11 +229,7 @@ namespace Passer {
|
|||||||
damper = -velocityTowardsTarget * damping;
|
damper = -velocityTowardsTarget * damping;
|
||||||
|
|
||||||
//Compensate for absolute rigidbody speed (specifically when on a moving platform)
|
//Compensate for absolute rigidbody speed (specifically when on a moving platform)
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
Vector3 residualVelocity = thisRigidbody.linearVelocity - velocityTowardsTarget;
|
|
||||||
#else
|
|
||||||
Vector3 residualVelocity = thisRigidbody.velocity - velocityTowardsTarget;
|
Vector3 residualVelocity = thisRigidbody.velocity - velocityTowardsTarget;
|
||||||
#endif
|
|
||||||
damper += residualVelocity * 10;
|
damper += residualVelocity * 10;
|
||||||
}
|
}
|
||||||
lastDistanceToTarget = distanceToTarget;
|
lastDistanceToTarget = distanceToTarget;
|
||||||
|
|||||||
@ -30,13 +30,8 @@ namespace Passer {
|
|||||||
|
|
||||||
public void CopyFromRigidbody(Rigidbody rb) {
|
public void CopyFromRigidbody(Rigidbody rb) {
|
||||||
mass = rb.mass;
|
mass = rb.mass;
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
drag = rb.linearDamping;
|
|
||||||
angularDrag = rb.angularDamping;
|
|
||||||
#else
|
|
||||||
drag = rb.drag;
|
drag = rb.drag;
|
||||||
angularDrag = rb.angularDrag;
|
angularDrag = rb.angularDrag;
|
||||||
#endif
|
|
||||||
useGravity = rb.useGravity;
|
useGravity = rb.useGravity;
|
||||||
isKinematic = rb.isKinematic;
|
isKinematic = rb.isKinematic;
|
||||||
interpolation = rb.interpolation;
|
interpolation = rb.interpolation;
|
||||||
@ -49,13 +44,8 @@ namespace Passer {
|
|||||||
|
|
||||||
public void CopyToRigidbody(Rigidbody rb) {
|
public void CopyToRigidbody(Rigidbody rb) {
|
||||||
rb.mass = mass;
|
rb.mass = mass;
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
rb.linearDamping = drag;
|
|
||||||
rb.angularDamping = angularDrag;
|
|
||||||
#else
|
|
||||||
rb.drag = drag;
|
rb.drag = drag;
|
||||||
rb.angularDrag = angularDrag;
|
rb.angularDrag = angularDrag;
|
||||||
#endif
|
|
||||||
rb.useGravity = useGravity;
|
rb.useGravity = useGravity;
|
||||||
rb.isKinematic = isKinematic;
|
rb.isKinematic = isKinematic;
|
||||||
rb.interpolation = interpolation;
|
rb.interpolation = interpolation;
|
||||||
|
|||||||
@ -46,17 +46,13 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void Awake() {
|
private void Awake() {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl humanoid = Object.FindAnyObjectByType<HumanoidControl>();
|
|
||||||
#else
|
|
||||||
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
if (humanoid == null)
|
if (humanoid == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Vector3 humanoidXZ = new(humanoid.transform.position.x, 0, humanoid.transform.position.z);
|
Vector3 humanoidXZ = new Vector3(humanoid.transform.position.x, 0, humanoid.transform.position.z);
|
||||||
Vector3 thisXZ = new(this.transform.position.x, 0, this.transform.position.z);
|
Vector3 thisXZ = new Vector3(this.transform.position.x, 0, this.transform.position.z);
|
||||||
float distance = Vector3.Distance(humanoidXZ, thisXZ);
|
float distance = Vector3.Distance(humanoidXZ, thisXZ);
|
||||||
if (distance < radius || isFree)
|
if (distance < radius || isFree)
|
||||||
humanoid.transform.MoveTo(this.transform.position);
|
humanoid.transform.MoveTo(this.transform.position);
|
||||||
|
|||||||
@ -121,10 +121,8 @@ namespace Passer {
|
|||||||
|
|
||||||
focusing = true;
|
focusing = true;
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
else
|
|
||||||
ProcessFocus();
|
|
||||||
|
|
||||||
|
}
|
||||||
if (!clicking) { // first activation
|
if (!clicking) { // first activation
|
||||||
touchedObject = data.pointerCurrentRaycast.gameObject;
|
touchedObject = data.pointerCurrentRaycast.gameObject;
|
||||||
if (touchedObject == null) // object is a 3D object, as we do not use Physicsraycaster, use the focusObject
|
if (touchedObject == null) // object is a 3D object, as we do not use Physicsraycaster, use the focusObject
|
||||||
@ -256,11 +254,7 @@ namespace Passer {
|
|||||||
if (pointers == null)
|
if (pointers == null)
|
||||||
pointers = new InteractionPointer[maxInteractions]; // 0 = left index, 1 = right index, 2 = head, 3 = controller
|
pointers = new InteractionPointer[maxInteractions]; // 0 = left index, 1 = right index, 2 = head, 3 = controller
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
EventSystem eventSystem = FindAnyObjectByType<EventSystem>();
|
|
||||||
#else
|
|
||||||
EventSystem eventSystem = GameObject.FindObjectOfType<EventSystem>();
|
EventSystem eventSystem = GameObject.FindObjectOfType<EventSystem>();
|
||||||
#endif
|
|
||||||
if (eventSystem == null)
|
if (eventSystem == null)
|
||||||
eventSystem = humanoid.gameObject.AddComponent<EventSystem>();
|
eventSystem = humanoid.gameObject.AddComponent<EventSystem>();
|
||||||
|
|
||||||
@ -534,15 +528,18 @@ namespace Passer {
|
|||||||
if (Camera.main == null || pointer.type != PointerType.Touch)
|
if (Camera.main == null || pointer.type != PointerType.Touch)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
//if (eventSystem == null)
|
||||||
|
// eventSystem = Object.FindObjectOfType<EventSystem>();
|
||||||
|
//if (eventSystem == null)
|
||||||
|
// return;
|
||||||
|
|
||||||
pointer.data.position = Camera.main.WorldToScreenPoint(pointer.pointerTransform.position);
|
pointer.data.position = Camera.main.WorldToScreenPoint(pointer.pointerTransform.position);
|
||||||
float distanceToPointer = Vector3.Distance(Camera.main.transform.position, pointer.pointerTransform.position);
|
|
||||||
|
|
||||||
System.Collections.Generic.List<RaycastResult> m_RaycastResultCache = new System.Collections.Generic.List<RaycastResult>();
|
System.Collections.Generic.List<RaycastResult> m_RaycastResultCache = new System.Collections.Generic.List<RaycastResult>();
|
||||||
eventSystem.RaycastAll(pointer.data, m_RaycastResultCache);
|
eventSystem.RaycastAll(pointer.data, m_RaycastResultCache);
|
||||||
RaycastResult raycastResult = FindFirstRaycast(m_RaycastResultCache, distanceToPointer);
|
RaycastResult raycastResult = FindFirstRaycast(m_RaycastResultCache);
|
||||||
m_RaycastResultCache.Clear();
|
m_RaycastResultCache.Clear();
|
||||||
|
|
||||||
|
|
||||||
if (raycastResult.gameObject != null) {
|
if (raycastResult.gameObject != null) {
|
||||||
if (pointer.type == PointerType.Touch) {
|
if (pointer.type == PointerType.Touch) {
|
||||||
float distance = DistanceTipToTransform(pointer.pointerTransform, raycastResult.gameObject.transform);
|
float distance = DistanceTipToTransform(pointer.pointerTransform, raycastResult.gameObject.transform);
|
||||||
@ -562,15 +559,11 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private RaycastResult FindFirstRaycast(System.Collections.Generic.List<RaycastResult> raycastResults, float pointerDistance) {
|
private new RaycastResult FindFirstRaycast(System.Collections.Generic.List<RaycastResult> raycastResults) {
|
||||||
foreach (RaycastResult result in raycastResults) {
|
foreach (RaycastResult result in raycastResults) {
|
||||||
float resultDistance = Vector3.Distance(Camera.main.transform.position, result.worldPosition);
|
if (result.isValid)
|
||||||
if (result.isValid &&
|
|
||||||
result.worldPosition != Vector3.zero &&
|
|
||||||
Mathf.Abs(resultDistance - pointerDistance) < 0.02F) {
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return new RaycastResult();
|
return new RaycastResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -586,6 +579,7 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private float DistanceTipToTransform(Transform fingerTip, Transform transform) {
|
private float DistanceTipToTransform(Transform fingerTip, Transform transform) {
|
||||||
|
//Debug.DrawLine(fingerTip.position, transform.position);
|
||||||
return (-transform.InverseTransformPoint(fingerTip.position).z * transform.lossyScale.z) - 0.01F;
|
return (-transform.InverseTransformPoint(fingerTip.position).z * transform.lossyScale.z) - 0.01F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -224,11 +224,7 @@ namespace Passer {
|
|||||||
protected virtual void Awake() {
|
protected virtual void Awake() {
|
||||||
Transform rootTransform = this.transform.root;
|
Transform rootTransform = this.transform.root;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
interactionModule = FindAnyObjectByType<InteractionModule>();
|
|
||||||
#else
|
|
||||||
interactionModule = FindObjectOfType<InteractionModule>();
|
interactionModule = FindObjectOfType<InteractionModule>();
|
||||||
#endif
|
|
||||||
if (interactionModule == null)
|
if (interactionModule == null)
|
||||||
interactionModule = CreateInteractionModule();
|
interactionModule = CreateInteractionModule();
|
||||||
EventSystem eventSystem = interactionModule.GetComponent<EventSystem>();
|
EventSystem eventSystem = interactionModule.GetComponent<EventSystem>();
|
||||||
@ -589,11 +585,7 @@ namespace Passer {
|
|||||||
if (rayType != RayType.Gravity)
|
if (rayType != RayType.Gravity)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
rigidbody.linearVelocity = transform.forward * speed;
|
|
||||||
#else
|
|
||||||
rigidbody.velocity = transform.forward * speed;
|
rigidbody.velocity = transform.forward * speed;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LaunchPrefab(GameObject prefab) {
|
public void LaunchPrefab(GameObject prefab) {
|
||||||
|
|||||||
@ -165,8 +165,7 @@ namespace Passer {
|
|||||||
ReverseParenting,
|
ReverseParenting,
|
||||||
Joint,
|
Joint,
|
||||||
StaticJoint,
|
StaticJoint,
|
||||||
ColliderDuplication,
|
ColliderDuplication
|
||||||
ReverseJoint,
|
|
||||||
}
|
}
|
||||||
public AttachMethod attachMethod = AttachMethod.Unknown;
|
public AttachMethod attachMethod = AttachMethod.Unknown;
|
||||||
|
|
||||||
@ -278,9 +277,6 @@ namespace Passer {
|
|||||||
Attach(objectToAttach, false);
|
Attach(objectToAttach, false);
|
||||||
}
|
}
|
||||||
public bool Attach(GameObject objectToAttach, bool rangeCheck) {
|
public bool Attach(GameObject objectToAttach, bool rangeCheck) {
|
||||||
if (objectToAttach == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
bool success = Attach(objectToAttach.transform, rangeCheck);
|
bool success = Attach(objectToAttach.transform, rangeCheck);
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
@ -304,19 +300,18 @@ namespace Passer {
|
|||||||
|
|
||||||
if (handle == null) {
|
if (handle == null) {
|
||||||
// Transform does not have a handle
|
// Transform does not have a handle
|
||||||
Debug.LogWarning(gameObject.name + ": Attach failed. Object " + transformToAttach.name + " does not have a handle");
|
DebugLog(gameObject.name + ": Attach failed. Object " + transformToAttach.name + " does not have a handle");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (handle.socket != null) {
|
if (handle.socket != null) {
|
||||||
Debug.LogWarning(gameObject.name + ": Attach failed. Object " + transformToAttach.name + " is already in a socket");
|
|
||||||
// Handle is already in a socket
|
// Handle is already in a socket
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (socketTag != null && socketTag != "" && !transformToAttach.gameObject.CompareTag(socketTag)) {
|
if (socketTag != null && socketTag != "" && !transformToAttach.gameObject.CompareTag(socketTag)) {
|
||||||
// Object did not have the right tag
|
// Object did not have the right tag
|
||||||
Debug.LogWarning(gameObject.name + ": Attach failed. Object " + transformToAttach + " does not have the right tag"); ;
|
Debug.Log(gameObject.name + ": Attach failed. Object " + transformToAttach + " does not have the right tag"); ;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,7 +319,7 @@ namespace Passer {
|
|||||||
if (handleRigidbody != rigidbodyToAttach) {
|
if (handleRigidbody != rigidbodyToAttach) {
|
||||||
// Object does not have a handle,
|
// Object does not have a handle,
|
||||||
// found handle is of child rigidbody
|
// found handle is of child rigidbody
|
||||||
Debug.LogWarning(gameObject.name + ": Attach failed. Object does not have a handle. Handle is on child Rigidbody.");
|
//Debug.Log(gameObject.name + ": Attach failed. Object does not have a handle. Handle is on child Rigidbody.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,7 +338,7 @@ namespace Passer {
|
|||||||
DebugLog(this.gameObject.name + " Attach handle " + handle);
|
DebugLog(this.gameObject.name + " Attach handle " + handle);
|
||||||
if (handle == null) {
|
if (handle == null) {
|
||||||
// Transform does not have a handle
|
// Transform does not have a handle
|
||||||
Debug.LogWarning(gameObject.name + ": Attach failed. Transform does not have a handle");
|
DebugLog(gameObject.name + ": Attach failed. Transform does not have a handle");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -355,7 +350,7 @@ namespace Passer {
|
|||||||
|
|
||||||
if (socketTag != null && socketTag != "" && !handle.gameObject.CompareTag(socketTag)) {
|
if (socketTag != null && socketTag != "" && !handle.gameObject.CompareTag(socketTag)) {
|
||||||
// Object did not have the right tag
|
// Object did not have the right tag
|
||||||
Debug.LogWarning(gameObject.name + ": Attach failed. Handle " + handle + " does not have the right tag"); ;
|
Debug.Log(gameObject.name + ": Attach failed. Handle " + handle + " does not have the right tag"); ;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,7 +416,7 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void AttachTransformParenting(Transform objTransform, Handle handle) {
|
protected void AttachTransformParenting(Transform objTransform, Handle handle) {
|
||||||
DebugLog("AttachTransformParenting: " + objTransform);
|
Debug.Log("AttachTransformParenting: " + objTransform);
|
||||||
|
|
||||||
attachedTransformParent = objTransform.parent;
|
attachedTransformParent = objTransform.parent;
|
||||||
|
|
||||||
@ -509,18 +504,9 @@ namespace Passer {
|
|||||||
joint.breakForce = float.PositiveInfinity;
|
joint.breakForce = float.PositiveInfinity;
|
||||||
joint.breakTorque = float.PositiveInfinity;
|
joint.breakTorque = float.PositiveInfinity;
|
||||||
|
|
||||||
|
|
||||||
Rigidbody socketRigidbody = GetComponent<Rigidbody>();
|
|
||||||
if (socketRigidbody == null) {
|
|
||||||
socketRigidbody = this.gameObject.AddComponent<Rigidbody>();
|
|
||||||
socketRigidbody.isKinematic = true;
|
|
||||||
}
|
|
||||||
joint.connectedBody = socketRigidbody;
|
|
||||||
|
|
||||||
attachedTransform = objRigidbody.transform;
|
attachedTransform = objRigidbody.transform;
|
||||||
attachedHandle = handle;
|
attachedHandle = handle;
|
||||||
handle.socket = this;
|
handle.socket = this;
|
||||||
attachMethod = AttachMethod.ReverseJoint;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void AttachSocketParenting(Rigidbody objRigidbody, Handle handle, Rigidbody socketRigidbody) {
|
protected virtual void AttachSocketParenting(Rigidbody objRigidbody, Handle handle, Rigidbody socketRigidbody) {
|
||||||
@ -654,9 +640,6 @@ namespace Passer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AttachMethod.ReverseJoint:
|
|
||||||
ReleaseRigidbodyReverseJoint();
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
if (this.rigidbodyDisabled != null)
|
if (this.rigidbodyDisabled != null)
|
||||||
@ -711,11 +694,7 @@ namespace Passer {
|
|||||||
Humanoid.HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject);
|
Humanoid.HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject);
|
||||||
|
|
||||||
if (thisRigidbody != null) {
|
if (thisRigidbody != null) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
objRigidbody.linearVelocity = thisRigidbody.linearVelocity;
|
|
||||||
#else
|
|
||||||
objRigidbody.velocity = thisRigidbody.velocity;
|
objRigidbody.velocity = thisRigidbody.velocity;
|
||||||
#endif
|
|
||||||
objRigidbody.angularVelocity = thisRigidbody.angularVelocity;
|
objRigidbody.angularVelocity = thisRigidbody.angularVelocity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -54,11 +54,7 @@ namespace Passer {
|
|||||||
if (spawnPoints != null && spawnPoints.Length > 0)
|
if (spawnPoints != null && spawnPoints.Length > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
spawnPoints = FindObjectsByType<SpawnPoint>(FindObjectsSortMode.None);
|
|
||||||
#else
|
|
||||||
spawnPoints = FindObjectsOfType<SpawnPoint>();
|
spawnPoints = FindObjectsOfType<SpawnPoint>();
|
||||||
#endif
|
|
||||||
if (spawnPoints.Length == 0) {
|
if (spawnPoints.Length == 0) {
|
||||||
SpawnPoint thisSpawnPoint = this.gameObject.AddComponent<SpawnPoint>();
|
SpawnPoint thisSpawnPoint = this.gameObject.AddComponent<SpawnPoint>();
|
||||||
spawnPoints = new SpawnPoint[] { thisSpawnPoint };
|
spawnPoints = new SpawnPoint[] { thisSpawnPoint };
|
||||||
|
|||||||
@ -1,17 +1,18 @@
|
|||||||
using UnityEngine;
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Passer {
|
public class ShowVisitorName : MonoBehaviour
|
||||||
|
{
|
||||||
public class ShowVisitorName : MonoBehaviour {
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start() {
|
void Start()
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
void Update() {
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,12 +1,8 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Passer {
|
|
||||||
|
|
||||||
public class ToggleActive : MonoBehaviour {
|
public class ToggleActive : MonoBehaviour {
|
||||||
// Temporary helper script to implement toggling the gameobject active state
|
// Temporary helper script to implement toggling the gameobject active state
|
||||||
public void Toggle() {
|
public void Toggle() {
|
||||||
this.gameObject.SetActive(!this.gameObject.activeSelf);
|
this.gameObject.SetActive(!this.gameObject.activeSelf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,4 +1,6 @@
|
|||||||
using UnityEngine;
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace Passer {
|
namespace Passer {
|
||||||
@ -16,7 +18,7 @@ namespace Passer {
|
|||||||
this.site = site;
|
this.site = site;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void OnEnable() {
|
private void OnEnable() {
|
||||||
if (site == null)
|
if (site == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -26,11 +28,7 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void GoToSite() {
|
private void GoToSite() {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
SiteNavigator siteNavigator = FindAnyObjectByType<SiteNavigator>();
|
|
||||||
#else
|
|
||||||
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
||||||
#endif
|
|
||||||
if (siteNavigator == null) {
|
if (siteNavigator == null) {
|
||||||
Debug.LogError("Could not find a site navigator");
|
Debug.LogError("Could not find a site navigator");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -150,11 +150,7 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void ShowSite(VisitorSites.Site site, int position) {
|
protected void ShowSite(VisitorSites.Site site, int position) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
SiteNavigator siteNavigator = FindAnyObjectByType<SiteNavigator>();
|
|
||||||
#else
|
|
||||||
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
||||||
#endif
|
|
||||||
if (siteNavigator == null)
|
if (siteNavigator == null)
|
||||||
Debug.LogError("Could not find a site navigator");
|
Debug.LogError("Could not find a site navigator");
|
||||||
|
|
||||||
@ -237,11 +233,7 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void GoToSite(VisitorSites.Site site) {
|
private void GoToSite(VisitorSites.Site site) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
SiteNavigator siteNavigator = FindAnyObjectByType<SiteNavigator>();
|
|
||||||
#else
|
|
||||||
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
SiteNavigator siteNavigator = FindObjectOfType<SiteNavigator>();
|
||||||
#endif
|
|
||||||
if (siteNavigator == null) {
|
if (siteNavigator == null) {
|
||||||
Debug.LogError("Could not find a site navigator");
|
Debug.LogError("Could not find a site navigator");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -406,11 +406,7 @@ namespace Passer {
|
|||||||
if (avatarIndex < 0 || avatarIndex > avatars.Count)
|
if (avatarIndex < 0 || avatarIndex > avatars.Count)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl humanoid = FindAnyObjectByType<HumanoidControl>();
|
|
||||||
#else
|
|
||||||
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
if (humanoid == null)
|
if (humanoid == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -424,11 +420,7 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static IEnumerator RetrieveAvatarAsync(Possession possession) {
|
private static IEnumerator RetrieveAvatarAsync(Possession possession) {
|
||||||
#if UNITY_6000_0_OR_NEWER
|
|
||||||
HumanoidControl humanoid = FindAnyObjectByType<HumanoidControl>();
|
|
||||||
#else
|
|
||||||
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
|
||||||
#endif
|
|
||||||
if (humanoid == null)
|
if (humanoid == null)
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: df1bff1867e6b5e42a3d0019e53e5550
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -1,139 +0,0 @@
|
|||||||
%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: MakeHuman_ClassicShoes_URP
|
|
||||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
|
||||||
m_Parent: {fileID: 0}
|
|
||||||
m_ModifiedSerializedProperties: 0
|
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
|
||||||
m_DoubleSidedGI: 0
|
|
||||||
m_CustomRenderQueue: -1
|
|
||||||
stringTagMap:
|
|
||||||
RenderType: Opaque
|
|
||||||
disabledShaderPasses:
|
|
||||||
- MOTIONVECTORS
|
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TexEnvs:
|
|
||||||
- _BaseMap:
|
|
||||||
m_Texture: {fileID: 2800000, guid: 15f9cf581a5a2254aa6edfdfbe4bd52d, type: 3}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _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: 2800000, guid: 15f9cf581a5a2254aa6edfdfbe4bd52d, type: 3}
|
|
||||||
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}
|
|
||||||
- _SpecGlossMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_Lightmaps:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_LightmapsInd:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_ShadowMasks:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
|
||||||
- _AddPrecomputedVelocity: 0
|
|
||||||
- _AlphaClip: 0
|
|
||||||
- _AlphaToMask: 0
|
|
||||||
- _Blend: 0
|
|
||||||
- _BlendModePreserveSpecular: 1
|
|
||||||
- _BumpScale: 1
|
|
||||||
- _ClearCoatMask: 0
|
|
||||||
- _ClearCoatSmoothness: 0
|
|
||||||
- _Cull: 2
|
|
||||||
- _Cutoff: 0.5
|
|
||||||
- _DetailAlbedoMapScale: 1
|
|
||||||
- _DetailNormalMapScale: 1
|
|
||||||
- _DstBlend: 0
|
|
||||||
- _DstBlendAlpha: 0
|
|
||||||
- _EnvironmentReflections: 1
|
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0.5
|
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0
|
|
||||||
- _Mode: 0
|
|
||||||
- _OcclusionStrength: 1
|
|
||||||
- _Parallax: 0.02
|
|
||||||
- _QueueOffset: 0
|
|
||||||
- _ReceiveShadows: 1
|
|
||||||
- _Smoothness: 0.5
|
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
|
||||||
- _SrcBlendAlpha: 1
|
|
||||||
- _Surface: 0
|
|
||||||
- _UVSec: 0
|
|
||||||
- _WorkflowMode: 1
|
|
||||||
- _ZWrite: 1
|
|
||||||
m_Colors:
|
|
||||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 0.9019608}
|
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 0.9019608}
|
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
|
||||||
m_BuildTextureStacks: []
|
|
||||||
m_AllowLocking: 1
|
|
||||||
--- !u!114 &4097587806943858480
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 11
|
|
||||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
version: 9
|
|
||||||
@ -1,139 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!114 &-3850664422947448376
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 11
|
|
||||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
version: 9
|
|
||||||
--- !u!21 &2100000
|
|
||||||
Material:
|
|
||||||
serializedVersion: 8
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: MakeHuman_Jeans_URP
|
|
||||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
|
||||||
m_Parent: {fileID: 0}
|
|
||||||
m_ModifiedSerializedProperties: 0
|
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
|
||||||
m_DoubleSidedGI: 0
|
|
||||||
m_CustomRenderQueue: -1
|
|
||||||
stringTagMap:
|
|
||||||
RenderType: Opaque
|
|
||||||
disabledShaderPasses:
|
|
||||||
- MOTIONVECTORS
|
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TexEnvs:
|
|
||||||
- _BaseMap:
|
|
||||||
m_Texture: {fileID: 2800000, guid: 150de288aed9a7c4ba456c9450b98189, type: 3}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _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: 2800000, guid: 150de288aed9a7c4ba456c9450b98189, type: 3}
|
|
||||||
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}
|
|
||||||
- _SpecGlossMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_Lightmaps:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_LightmapsInd:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_ShadowMasks:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
|
||||||
- _AddPrecomputedVelocity: 0
|
|
||||||
- _AlphaClip: 0
|
|
||||||
- _AlphaToMask: 0
|
|
||||||
- _Blend: 0
|
|
||||||
- _BlendModePreserveSpecular: 1
|
|
||||||
- _BumpScale: 1
|
|
||||||
- _ClearCoatMask: 0
|
|
||||||
- _ClearCoatSmoothness: 0
|
|
||||||
- _Cull: 2
|
|
||||||
- _Cutoff: 0.5
|
|
||||||
- _DetailAlbedoMapScale: 1
|
|
||||||
- _DetailNormalMapScale: 1
|
|
||||||
- _DstBlend: 0
|
|
||||||
- _DstBlendAlpha: 0
|
|
||||||
- _EnvironmentReflections: 1
|
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0.5
|
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0
|
|
||||||
- _Mode: 0
|
|
||||||
- _OcclusionStrength: 1
|
|
||||||
- _Parallax: 0.02
|
|
||||||
- _QueueOffset: 0
|
|
||||||
- _ReceiveShadows: 1
|
|
||||||
- _Smoothness: 0.5
|
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
|
||||||
- _SrcBlendAlpha: 1
|
|
||||||
- _Surface: 0
|
|
||||||
- _UVSec: 0
|
|
||||||
- _WorkflowMode: 1
|
|
||||||
- _ZWrite: 1
|
|
||||||
m_Colors:
|
|
||||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 0.95686275}
|
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 0.95686275}
|
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
|
||||||
m_BuildTextureStacks: []
|
|
||||||
m_AllowLocking: 1
|
|
||||||
@ -1,140 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!114 &-1893634801375650055
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 11
|
|
||||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
version: 9
|
|
||||||
--- !u!21 &2100000
|
|
||||||
Material:
|
|
||||||
serializedVersion: 8
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: MakeHuman_Longsleeve_URP
|
|
||||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
|
||||||
m_Parent: {fileID: 0}
|
|
||||||
m_ModifiedSerializedProperties: 0
|
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
- _NORMALMAP
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
|
||||||
m_DoubleSidedGI: 0
|
|
||||||
m_CustomRenderQueue: -1
|
|
||||||
stringTagMap:
|
|
||||||
RenderType: Opaque
|
|
||||||
disabledShaderPasses:
|
|
||||||
- MOTIONVECTORS
|
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TexEnvs:
|
|
||||||
- _BaseMap:
|
|
||||||
m_Texture: {fileID: 2800000, guid: b87fdb557dfa8d041813fdf2814265f9, type: 3}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _BumpMap:
|
|
||||||
m_Texture: {fileID: 2800000, guid: 5fc47733312fa6e4192ea4b74d4fe710, type: 3}
|
|
||||||
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: 2800000, guid: b87fdb557dfa8d041813fdf2814265f9, type: 3}
|
|
||||||
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}
|
|
||||||
- _SpecGlossMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_Lightmaps:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_LightmapsInd:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_ShadowMasks:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
|
||||||
- _AddPrecomputedVelocity: 0
|
|
||||||
- _AlphaClip: 0
|
|
||||||
- _AlphaToMask: 0
|
|
||||||
- _Blend: 0
|
|
||||||
- _BlendModePreserveSpecular: 1
|
|
||||||
- _BumpScale: 1
|
|
||||||
- _ClearCoatMask: 0
|
|
||||||
- _ClearCoatSmoothness: 0
|
|
||||||
- _Cull: 2
|
|
||||||
- _Cutoff: 0.5
|
|
||||||
- _DetailAlbedoMapScale: 1
|
|
||||||
- _DetailNormalMapScale: 1
|
|
||||||
- _DstBlend: 0
|
|
||||||
- _DstBlendAlpha: 0
|
|
||||||
- _EnvironmentReflections: 1
|
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0.12
|
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0
|
|
||||||
- _Mode: 0
|
|
||||||
- _OcclusionStrength: 1
|
|
||||||
- _Parallax: 0.02
|
|
||||||
- _QueueOffset: 0
|
|
||||||
- _ReceiveShadows: 1
|
|
||||||
- _Smoothness: 0.12
|
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
|
||||||
- _SrcBlendAlpha: 1
|
|
||||||
- _Surface: 0
|
|
||||||
- _UVSec: 0
|
|
||||||
- _WorkflowMode: 1
|
|
||||||
- _ZWrite: 1
|
|
||||||
m_Colors:
|
|
||||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 0.2}
|
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 0.2}
|
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
|
||||||
m_BuildTextureStacks: []
|
|
||||||
m_AllowLocking: 1
|
|
||||||
@ -1,139 +0,0 @@
|
|||||||
%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: MakeHuman_Skin_URP
|
|
||||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
|
||||||
m_Parent: {fileID: 0}
|
|
||||||
m_ModifiedSerializedProperties: 0
|
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
|
||||||
m_DoubleSidedGI: 0
|
|
||||||
m_CustomRenderQueue: -1
|
|
||||||
stringTagMap:
|
|
||||||
RenderType: Opaque
|
|
||||||
disabledShaderPasses:
|
|
||||||
- MOTIONVECTORS
|
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TexEnvs:
|
|
||||||
- _BaseMap:
|
|
||||||
m_Texture: {fileID: 2800000, guid: 278c00b683cc457458bf8db9ba698239, type: 3}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _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: 10, y: 10}
|
|
||||||
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: 2800000, guid: 278c00b683cc457458bf8db9ba698239, type: 3}
|
|
||||||
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}
|
|
||||||
- _SpecGlossMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_Lightmaps:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_LightmapsInd:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- unity_ShadowMasks:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
|
||||||
- _AddPrecomputedVelocity: 0
|
|
||||||
- _AlphaClip: 0
|
|
||||||
- _AlphaToMask: 0
|
|
||||||
- _Blend: 0
|
|
||||||
- _BlendModePreserveSpecular: 1
|
|
||||||
- _BumpScale: 1
|
|
||||||
- _ClearCoatMask: 0
|
|
||||||
- _ClearCoatSmoothness: 0
|
|
||||||
- _Cull: 2
|
|
||||||
- _Cutoff: 0.5
|
|
||||||
- _DetailAlbedoMapScale: 1
|
|
||||||
- _DetailNormalMapScale: 1
|
|
||||||
- _DstBlend: 0
|
|
||||||
- _DstBlendAlpha: 0
|
|
||||||
- _EnvironmentReflections: 1
|
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0
|
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0
|
|
||||||
- _Mode: 0
|
|
||||||
- _OcclusionStrength: 1
|
|
||||||
- _Parallax: 0.02
|
|
||||||
- _QueueOffset: 0
|
|
||||||
- _ReceiveShadows: 1
|
|
||||||
- _Smoothness: 0
|
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
|
||||||
- _SrcBlendAlpha: 1
|
|
||||||
- _Surface: 0
|
|
||||||
- _UVSec: 0
|
|
||||||
- _WorkflowMode: 1
|
|
||||||
- _ZWrite: 1
|
|
||||||
m_Colors:
|
|
||||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 0.775}
|
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 0.775}
|
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
|
||||||
m_BuildTextureStacks: []
|
|
||||||
m_AllowLocking: 1
|
|
||||||
--- !u!114 &5771129071352200887
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 11
|
|
||||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
version: 9
|
|
||||||
@ -3,10 +3,9 @@
|
|||||||
--- !u!1 &100000
|
--- !u!1 &100000
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
serializedVersion: 5
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 400000}
|
- component: {fileID: 400000}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
@ -16,31 +15,12 @@ GameObject:
|
|||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 1
|
||||||
--- !u!4 &400000
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 100000}
|
|
||||||
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: 819426745863577789}
|
|
||||||
- {fileID: 400002}
|
|
||||||
- {fileID: 8798210364446790789}
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &100002
|
--- !u!1 &100002
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
serializedVersion: 5
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 400002}
|
- component: {fileID: 400002}
|
||||||
- component: {fileID: 3300000}
|
- component: {fileID: 3300000}
|
||||||
@ -54,48 +34,202 @@ GameObject:
|
|||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 1
|
||||||
--- !u!4 &400002
|
--- !u!1 &100004
|
||||||
Transform:
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 400004}
|
||||||
|
- component: {fileID: 3300002}
|
||||||
|
- component: {fileID: 2300002}
|
||||||
|
- component: {fileID: 13600000}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: mesh0%root%0%
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!1 &100006
|
||||||
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
serializedVersion: 5
|
||||||
m_GameObject: {fileID: 100002}
|
m_Component:
|
||||||
serializedVersion: 2
|
- component: {fileID: 400006}
|
||||||
|
- component: {fileID: 5400004}
|
||||||
|
- component: {fileID: 5900000}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Emmer-Handvat
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!1 &100008
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 400008}
|
||||||
|
- component: {fileID: 3300004}
|
||||||
|
- component: {fileID: 2300004}
|
||||||
|
- component: {fileID: 6400000}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: mesh0%root%1%
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!1 &100010
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 400010}
|
||||||
|
- component: {fileID: 3300006}
|
||||||
|
- component: {fileID: 2300006}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: mesh0%root%0%
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!1 &100012
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 400012}
|
||||||
|
- component: {fileID: 5400000}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Emmer_100_99_100
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &400000
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
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_Children:
|
||||||
|
- {fileID: 400012}
|
||||||
|
- {fileID: 400002}
|
||||||
|
- {fileID: 400006}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!4 &400002
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100002}
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 400000}
|
m_Father: {fileID: 400000}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!4 &400004
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100004}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 400006}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!4 &400006
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100006}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.0000166893, y: 0.46408212, z: -0.00036907196}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 400004}
|
||||||
|
m_Father: {fileID: 400000}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!4 &400008
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100008}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 400010}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!4 &400010
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100010}
|
||||||
|
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_Children:
|
||||||
|
- {fileID: 400008}
|
||||||
|
m_Father: {fileID: 400012}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!4 &400012
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100012}
|
||||||
|
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_Children:
|
||||||
|
- {fileID: 400010}
|
||||||
|
m_Father: {fileID: 400000}
|
||||||
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!33 &3300000
|
|
||||||
MeshFilter:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 100002}
|
|
||||||
m_Mesh: {fileID: 4300006, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
--- !u!23 &2300000
|
--- !u!23 &2300000
|
||||||
MeshRenderer:
|
MeshRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 1
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 100002}
|
m_GameObject: {fileID: 100002}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_CastShadows: 1
|
m_CastShadows: 1
|
||||||
m_ReceiveShadows: 1
|
m_ReceiveShadows: 1
|
||||||
m_DynamicOccludee: 1
|
m_DynamicOccludee: 1
|
||||||
m_StaticShadowCaster: 0
|
|
||||||
m_MotionVectors: 1
|
m_MotionVectors: 1
|
||||||
m_LightProbeUsage: 0
|
m_LightProbeUsage: 0
|
||||||
m_ReflectionProbeUsage: 1
|
m_ReflectionProbeUsage: 1
|
||||||
m_RayTracingMode: 2
|
|
||||||
m_RayTraceProcedural: 0
|
|
||||||
m_RenderingLayerMask: 1
|
|
||||||
m_RendererPriority: 0
|
|
||||||
m_Materials:
|
m_Materials:
|
||||||
- {fileID: 2100000, guid: e817da7ab6ed0c446af2182934ed0e28, type: 2}
|
- {fileID: 2100000, guid: e817da7ab6ed0c446af2182934ed0e28, type: 2}
|
||||||
m_StaticBatchInfo:
|
m_StaticBatchInfo:
|
||||||
@ -105,7 +239,6 @@ MeshRenderer:
|
|||||||
m_ProbeAnchor: {fileID: 0}
|
m_ProbeAnchor: {fileID: 0}
|
||||||
m_LightProbeVolumeOverride: {fileID: 0}
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
m_ScaleInLightmap: 1
|
m_ScaleInLightmap: 1
|
||||||
m_ReceiveGI: 1
|
|
||||||
m_PreserveUVs: 0
|
m_PreserveUVs: 0
|
||||||
m_IgnoreNormalsForChartDetection: 0
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
m_ImportantGI: 0
|
m_ImportantGI: 0
|
||||||
@ -118,48 +251,192 @@ MeshRenderer:
|
|||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_AdditionalVertexStreams: {fileID: 0}
|
--- !u!23 &2300002
|
||||||
--- !u!54 &5400002
|
MeshRenderer:
|
||||||
Rigidbody:
|
m_ObjectHideFlags: 1
|
||||||
m_ObjectHideFlags: 0
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_GameObject: {fileID: 100004}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 0
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: de6a2023f50748744956c008af08b773, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 0
|
||||||
|
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
|
||||||
|
--- !u!23 &2300004
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100008}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 0
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: de6a2023f50748744956c008af08b773, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 0
|
||||||
|
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
|
||||||
|
--- !u!23 &2300006
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100010}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 0
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: e817da7ab6ed0c446af2182934ed0e28, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 0
|
||||||
|
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
|
||||||
|
--- !u!33 &3300000
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_GameObject: {fileID: 100002}
|
m_GameObject: {fileID: 100002}
|
||||||
serializedVersion: 4
|
m_Mesh: {fileID: 4300006, guid: 53a999c6120664e48a5b3f59e08a1af1, type: 3}
|
||||||
m_Mass: 1
|
--- !u!33 &3300002
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100004}
|
||||||
|
m_Mesh: {fileID: 4300000, guid: 51cef21fb8bc88c4bb4afcca6b6532f6, type: 3}
|
||||||
|
--- !u!33 &3300004
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100008}
|
||||||
|
m_Mesh: {fileID: 4300002, guid: 53a999c6120664e48a5b3f59e08a1af1, type: 3}
|
||||||
|
--- !u!33 &3300006
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100010}
|
||||||
|
m_Mesh: {fileID: 4300000, guid: 53a999c6120664e48a5b3f59e08a1af1, type: 3}
|
||||||
|
--- !u!54 &5400000
|
||||||
|
Rigidbody:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100012}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Mass: 5
|
||||||
m_Drag: 0
|
m_Drag: 0
|
||||||
m_AngularDrag: 0.05
|
m_AngularDrag: 0.05
|
||||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
|
||||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
|
||||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_IncludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_ExcludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_ImplicitCom: 1
|
|
||||||
m_ImplicitTensor: 1
|
|
||||||
m_UseGravity: 1
|
m_UseGravity: 1
|
||||||
m_IsKinematic: 0
|
m_IsKinematic: 0
|
||||||
m_Interpolate: 0
|
m_Interpolate: 0
|
||||||
m_Constraints: 0
|
m_Constraints: 0
|
||||||
m_CollisionDetection: 0
|
m_CollisionDetection: 0
|
||||||
--- !u!59 &5900002
|
--- !u!54 &5400002
|
||||||
HingeJoint:
|
Rigidbody:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 1
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 100002}
|
m_GameObject: {fileID: 100002}
|
||||||
m_ConnectedBody: {fileID: 0}
|
serializedVersion: 2
|
||||||
m_ConnectedArticulationBody: {fileID: 0}
|
m_Mass: 1
|
||||||
m_Anchor: {x: 0, y: 0.27, z: 0}
|
m_Drag: 0
|
||||||
|
m_AngularDrag: 0.05
|
||||||
|
m_UseGravity: 1
|
||||||
|
m_IsKinematic: 0
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_Constraints: 0
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
--- !u!54 &5400004
|
||||||
|
Rigidbody:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100006}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Mass: 1
|
||||||
|
m_Drag: 0
|
||||||
|
m_AngularDrag: 0.05
|
||||||
|
m_UseGravity: 1
|
||||||
|
m_IsKinematic: 0
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_Constraints: 0
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
--- !u!59 &5900000
|
||||||
|
HingeJoint:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100006}
|
||||||
|
m_ConnectedBody: {fileID: 5400002}
|
||||||
|
m_Anchor: {x: 0, y: 0, z: 0}
|
||||||
m_Axis: {x: 1, y: 0, z: 0}
|
m_Axis: {x: 1, y: 0, z: 0}
|
||||||
m_AutoConfigureConnectedAnchor: 1
|
m_AutoConfigureConnectedAnchor: 1
|
||||||
m_ConnectedAnchor: {x: 0, y: 0.26999998, z: 0}
|
m_ConnectedAnchor: {x: 0.000016689346, y: 0.46408212, z: -0.000369072}
|
||||||
serializedVersion: 2
|
|
||||||
m_UseSpring: 1
|
m_UseSpring: 1
|
||||||
m_Spring:
|
m_Spring:
|
||||||
spring: 0
|
spring: 0
|
||||||
@ -171,8 +448,6 @@ HingeJoint:
|
|||||||
force: 0
|
force: 0
|
||||||
freeSpin: 0
|
freeSpin: 0
|
||||||
m_UseLimits: 0
|
m_UseLimits: 0
|
||||||
m_ExtendedLimits: 0
|
|
||||||
m_UseAcceleration: 0
|
|
||||||
m_Limits:
|
m_Limits:
|
||||||
min: 0
|
min: 0
|
||||||
max: 0
|
max: 0
|
||||||
@ -185,127 +460,75 @@ HingeJoint:
|
|||||||
m_EnablePreprocessing: 1
|
m_EnablePreprocessing: 1
|
||||||
m_MassScale: 1
|
m_MassScale: 1
|
||||||
m_ConnectedMassScale: 1
|
m_ConnectedMassScale: 1
|
||||||
--- !u!1001 &819426745863191101
|
--- !u!59 &5900002
|
||||||
PrefabInstance:
|
HingeJoint:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100002}
|
||||||
|
m_ConnectedBody: {fileID: 5400000}
|
||||||
|
m_Anchor: {x: 0, y: 0.27, z: 0}
|
||||||
|
m_Axis: {x: 1, y: 0, z: 0}
|
||||||
|
m_AutoConfigureConnectedAnchor: 1
|
||||||
|
m_ConnectedAnchor: {x: 0, y: 0.26999998, z: 0}
|
||||||
|
m_UseSpring: 1
|
||||||
|
m_Spring:
|
||||||
|
spring: 0
|
||||||
|
damper: 0.1
|
||||||
|
targetPosition: 0
|
||||||
|
m_UseMotor: 0
|
||||||
|
m_Motor:
|
||||||
|
targetVelocity: 0
|
||||||
|
force: 0
|
||||||
|
freeSpin: 0
|
||||||
|
m_UseLimits: 0
|
||||||
|
m_Limits:
|
||||||
|
min: 0
|
||||||
|
max: 0
|
||||||
|
bounciness: 0
|
||||||
|
bounceMinVelocity: 0.2
|
||||||
|
contactDistance: 0
|
||||||
|
m_BreakForce: Infinity
|
||||||
|
m_BreakTorque: Infinity
|
||||||
|
m_EnableCollision: 0
|
||||||
|
m_EnablePreprocessing: 1
|
||||||
|
m_MassScale: 1
|
||||||
|
m_ConnectedMassScale: 1
|
||||||
|
--- !u!64 &6400000
|
||||||
|
MeshCollider:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100008}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Convex: 1
|
||||||
|
m_CookingOptions: 14
|
||||||
|
m_SkinWidth: 0.01
|
||||||
|
m_Mesh: {fileID: 4300002, guid: 53a999c6120664e48a5b3f59e08a1af1, type: 3}
|
||||||
|
--- !u!136 &13600000
|
||||||
|
CapsuleCollider:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100004}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Radius: 0.01
|
||||||
|
m_Height: 0.12
|
||||||
|
m_Direction: 0
|
||||||
|
m_Center: {x: 0.00000008009376, y: 0.0000633467, z: 0.0000022528698}
|
||||||
|
--- !u!1001 &100100000
|
||||||
|
Prefab:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Modification:
|
m_Modification:
|
||||||
serializedVersion: 3
|
m_TransformParent: {fileID: 0}
|
||||||
m_TransformParent: {fileID: 400000}
|
m_Modifications: []
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: 100000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: Emmer_100_99_100
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_ParentPrefab: {fileID: 0}
|
||||||
m_AddedGameObjects: []
|
m_RootGameObject: {fileID: 100000}
|
||||||
m_AddedComponents: []
|
m_IsPrefabParent: 1
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
--- !u!4 &819426745863577789 stripped
|
|
||||||
Transform:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 400000, guid: 2320b2c9aff2c434fa72dd781a6e907d, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 819426745863191101}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
--- !u!1001 &8798210364446920197
|
|
||||||
PrefabInstance:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Modification:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransformParent: {fileID: 400000}
|
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: 100000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: Emmer-Handvat (1)
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: 0.0000166893
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: 0.46408212
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: -0.00036907196
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: -0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
|
||||||
m_RemovedGameObjects: []
|
|
||||||
m_AddedGameObjects: []
|
|
||||||
m_AddedComponents: []
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
--- !u!4 &8798210364446790789 stripped
|
|
||||||
Transform:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 400000, guid: 348c9e6e505ba8f48a33ca1a6bda84d7, type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 8798210364446920197}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
|
|||||||
@ -2,25 +2,19 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Metal_Rough
|
m_Name: Metal_Rough
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_ShaderKeywords:
|
||||||
m_ModifiedSerializedProperties: 0
|
m_LightmapFlags: 5
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap: {}
|
stringTagMap: {}
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@ -60,25 +54,19 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
- _DetailNormalMapScale: 1
|
- _DetailNormalMapScale: 1
|
||||||
- _DstBlend: 0
|
- _DstBlend: 0
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0.5
|
- _Glossiness: 0.5
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0.859
|
- _Metallic: 0.859
|
||||||
- _Mode: 0
|
- _Mode: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _Parallax: 0.02
|
- _Parallax: 0.02
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
- _SrcBlend: 1
|
||||||
- _UVSec: 0
|
- _UVSec: 0
|
||||||
- _ZWrite: 1
|
- _ZWrite: 1
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_BuildTextureStacks: []
|
|
||||||
|
|||||||
@ -2,25 +2,19 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: WoodRough0106_2_S
|
m_Name: WoodRough0106_2_S
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_ShaderKeywords:
|
||||||
m_ModifiedSerializedProperties: 0
|
m_LightmapFlags: 5
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap: {}
|
stringTagMap: {}
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@ -60,25 +54,19 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
- _DetailNormalMapScale: 1
|
- _DetailNormalMapScale: 1
|
||||||
- _DstBlend: 0
|
- _DstBlend: 0
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0
|
- _Glossiness: 0
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _Mode: 0
|
- _Mode: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _Parallax: 0.02
|
- _Parallax: 0.02
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
- _SrcBlend: 1
|
||||||
- _UVSec: 0
|
- _UVSec: 0
|
||||||
- _ZWrite: 1
|
- _ZWrite: 1
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_BuildTextureStacks: []
|
|
||||||
|
|||||||
@ -2,25 +2,19 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Emmer-1-Metal_Rough
|
m_Name: Emmer-1-Metal_Rough
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_ShaderKeywords:
|
||||||
m_ModifiedSerializedProperties: 0
|
m_LightmapFlags: 5
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap: {}
|
stringTagMap: {}
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@ -60,7 +54,6 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
@ -81,4 +74,3 @@ Material:
|
|||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_BuildTextureStacks: []
|
|
||||||
|
|||||||
@ -2,25 +2,19 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Emmer-2-WoodRough0106_2_S
|
m_Name: Emmer-2-WoodRough0106_2_S
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_ShaderKeywords:
|
||||||
m_ModifiedSerializedProperties: 0
|
m_LightmapFlags: 5
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap: {}
|
stringTagMap: {}
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@ -60,7 +54,6 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
@ -81,4 +74,3 @@ Material:
|
|||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_BuildTextureStacks: []
|
|
||||||
|
|||||||
@ -2,25 +2,19 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_PrefabParentObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInternal: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Emmer-Handvat-1-WoodRough0106_2_S
|
m_Name: Emmer-Handvat-1-WoodRough0106_2_S
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_ShaderKeywords:
|
||||||
m_ModifiedSerializedProperties: 0
|
m_LightmapFlags: 5
|
||||||
m_ValidKeywords:
|
|
||||||
- _EMISSION
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 1
|
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: -1
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap: {}
|
stringTagMap: {}
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@ -60,7 +54,6 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
@ -81,4 +74,3 @@ Material:
|
|||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_BuildTextureStacks: []
|
|
||||||
|
|||||||
@ -0,0 +1,84 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &100000
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 5
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 400000}
|
||||||
|
- component: {fileID: 3300000}
|
||||||
|
- component: {fileID: 2300000}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: mesh2%Hengsel%0%
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &400000
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &2300000
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 0
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: e817da7ab6ed0c446af2182934ed0e28, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 0
|
||||||
|
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
|
||||||
|
--- !u!33 &3300000
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 100000}
|
||||||
|
m_Mesh: {fileID: 4300006, guid: 53a999c6120664e48a5b3f59e08a1af1, type: 3}
|
||||||
|
--- !u!1001 &100100000
|
||||||
|
Prefab:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications: []
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_ParentPrefab: {fileID: 0}
|
||||||
|
m_RootGameObject: {fileID: 100000}
|
||||||
|
m_IsPrefabParent: 1
|
||||||
@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 00d69c994b1a86745864920089aba4e6
|
guid: 5f4a7b3d888e9aa45a99a1076a352e6e
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 2100000
|
mainObjectFileID: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
BIN
Samples~/GroceryStore/Models/Characters/MakeHuman_high.fbx
Normal file
BIN
Samples~/GroceryStore/Models/Characters/MakeHuman_high.fbx
Normal file
Binary file not shown.
2268
Samples~/GroceryStore/Models/Characters/MakeHuman_high.fbx.meta
Normal file
2268
Samples~/GroceryStore/Models/Characters/MakeHuman_high.fbx.meta
Normal file
File diff suppressed because it is too large
Load Diff
@ -2,26 +2,20 @@
|
|||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: MakeHuman_Jeans
|
m_Name: MakeHuman_Jeans
|
||||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Parent: {fileID: 0}
|
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
|
||||||
m_ModifiedSerializedProperties: 0
|
|
||||||
m_ValidKeywords:
|
|
||||||
- _ALPHAPREMULTIPLY_ON
|
|
||||||
m_InvalidKeywords: []
|
|
||||||
m_LightmapFlags: 4
|
m_LightmapFlags: 4
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
m_CustomRenderQueue: 3000
|
m_CustomRenderQueue: -1
|
||||||
stringTagMap:
|
stringTagMap: {}
|
||||||
RenderType: Transparent
|
|
||||||
disabledShaderPasses: []
|
disabledShaderPasses: []
|
||||||
m_LockedProperties:
|
|
||||||
m_SavedProperties:
|
m_SavedProperties:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_TexEnvs:
|
m_TexEnvs:
|
||||||
@ -61,7 +55,6 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
@ -82,4 +75,3 @@ Material:
|
|||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 0.0426, g: 0.0557, b: 0.2079, a: 0.9574}
|
- _Color: {r: 0.0426, g: 0.0557, b: 0.2079, a: 0.9574}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_BuildTextureStacks: []
|
|
||||||
|
|||||||
@ -1,83 +0,0 @@
|
|||||||
%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: caucasian-male-young
|
|
||||||
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: 2800000, guid: 278c00b683cc457458bf8db9ba698239, type: 3}
|
|
||||||
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
|
|
||||||
- _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: 1, b: 1, a: 1}
|
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_BuildTextureStacks: []
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 00d8e91da1464b845adca1425e9599d7
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 2100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user