最新修改后提交
This commit is contained in:
parent
6621b7c370
commit
f162ddb353
@ -125,6 +125,7 @@ MonoBehaviour:
|
||||
m_Version: 0
|
||||
m_Tracks:
|
||||
- {fileID: -8040467985507400763}
|
||||
- {fileID: 8343031591517442995}
|
||||
m_FixedDuration: 0
|
||||
m_EditorSettings:
|
||||
m_Framerate: 60
|
||||
@ -153,3 +154,321 @@ MonoBehaviour:
|
||||
m_Loop: 0
|
||||
m_Version: 1
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
--- !u!114 &8343031591517442995
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
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: d21dcc2386d650c4597f3633c75a1f98, type: 3}
|
||||
m_Name: Animation Track (1)
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 3
|
||||
m_AnimClip: {fileID: 0}
|
||||
m_Locked: 0
|
||||
m_Muted: 0
|
||||
m_CustomPlayableFullTypename:
|
||||
m_Curves: {fileID: 0}
|
||||
m_Parent: {fileID: 11400000}
|
||||
m_Children: []
|
||||
m_Clips: []
|
||||
m_Markers:
|
||||
m_Objects: []
|
||||
m_InfiniteClipPreExtrapolation: 1
|
||||
m_InfiniteClipPostExtrapolation: 1
|
||||
m_InfiniteClipOffsetPosition: {x: 0.23064011, y: 1.1151208, z: 0.100568086}
|
||||
m_InfiniteClipOffsetEulerAngles: {x: -0, y: 14.999999, z: 0}
|
||||
m_InfiniteClipTimeOffset: 0
|
||||
m_InfiniteClipRemoveOffset: 0
|
||||
m_InfiniteClipApplyFootIK: 1
|
||||
mInfiniteClipLoop: 0
|
||||
m_MatchTargetFields: 63
|
||||
m_Position: {x: 0, y: 0, z: 0}
|
||||
m_EulerAngles: {x: 0, y: 0, z: 0}
|
||||
m_AvatarMask: {fileID: 0}
|
||||
m_ApplyAvatarMask: 1
|
||||
m_TrackOffset: 0
|
||||
m_InfiniteClip: {fileID: 8975377450033155017}
|
||||
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_ApplyOffsets: 0
|
||||
--- !u!74 &8975377450033155017
|
||||
AnimationClip:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Recorded
|
||||
serializedVersion: 7
|
||||
m_Legacy: 0
|
||||
m_Compressed: 0
|
||||
m_UseHighQualityCurve: 1
|
||||
m_RotationCurves: []
|
||||
m_CompressedRotationCurves: []
|
||||
m_EulerCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: {x: 0.000002980232, y: -0.000002803438, z: 0.00000000126758}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
path:
|
||||
m_PositionCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: {x: 0, y: 0.00000023841858, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 2.5166667
|
||||
value: {x: 0.044934943, y: -0.06354082, z: -0.038034044}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
path:
|
||||
m_ScaleCurves: []
|
||||
m_FloatCurves: []
|
||||
m_PPtrCurves: []
|
||||
m_SampleRate: 60
|
||||
m_WrapMode: 0
|
||||
m_Bounds:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
m_ClipBindingConstant:
|
||||
genericBindings:
|
||||
- serializedVersion: 2
|
||||
path: 0
|
||||
attribute: 1
|
||||
script: {fileID: 0}
|
||||
typeID: 4
|
||||
customType: 0
|
||||
isPPtrCurve: 0
|
||||
- serializedVersion: 2
|
||||
path: 0
|
||||
attribute: 4
|
||||
script: {fileID: 0}
|
||||
typeID: 4
|
||||
customType: 4
|
||||
isPPtrCurve: 0
|
||||
pptrCurveMapping: []
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
m_AdditiveReferencePoseTime: 0
|
||||
m_StartTime: 0
|
||||
m_StopTime: 2.5166667
|
||||
m_OrientationOffsetY: 0
|
||||
m_Level: 0
|
||||
m_CycleOffset: 0
|
||||
m_HasAdditiveReferencePose: 0
|
||||
m_LoopTime: 0
|
||||
m_LoopBlend: 0
|
||||
m_LoopBlendOrientation: 0
|
||||
m_LoopBlendPositionY: 0
|
||||
m_LoopBlendPositionXZ: 0
|
||||
m_KeepOriginalOrientation: 0
|
||||
m_KeepOriginalPositionY: 1
|
||||
m_KeepOriginalPositionXZ: 0
|
||||
m_HeightFromFeet: 0
|
||||
m_Mirror: 0
|
||||
m_EditorCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: 0.000002980232
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: localEulerAnglesRaw.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: -0.000002803438
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: localEulerAnglesRaw.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: 0.00000000126758
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: localEulerAnglesRaw.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 2.5166667
|
||||
value: 0.044934943
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: 0.00000023841858
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 2.5166667
|
||||
value: -0.06354082
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 2.5
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 2.5166667
|
||||
value: -0.038034044
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
m_EulerEditorCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalEulerAngles.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalEulerAngles.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalEulerAngles.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
m_HasGenericRootTransform: 1
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events: []
|
||||
|
||||
@ -27,14 +27,17 @@ public class RongMaoSkinMesh : MonoBehaviour
|
||||
|
||||
[Header("皮毛渲染")]
|
||||
//毛发染色
|
||||
public Color FurColor=Color.white;
|
||||
public Color ShadowColor=Color.white;
|
||||
[Range(0,1)]public float ShadowStrength = 0.3f;
|
||||
public Color FurColor = Color.white;
|
||||
public Color ShadowColor = Color.white;
|
||||
[Range(0, 1)] public float ShadowStrength = 0.3f;
|
||||
[Range(0.01f, 1)] public float R = 0.5f;
|
||||
[Range(0, 3)] public float _LengthMut = 1;
|
||||
public float Density = 1;
|
||||
[Header("是否使用GPU实例化")]
|
||||
public bool isInStance = false;
|
||||
|
||||
public bool ZWrite = true;
|
||||
public int RenderSort = 0;
|
||||
|
||||
private bool skinHasValue = false;
|
||||
private Renderer target;
|
||||
@ -56,9 +59,13 @@ public class RongMaoSkinMesh : MonoBehaviour
|
||||
void LateUpdate()
|
||||
{
|
||||
//目标为空就不渲染
|
||||
if(TargetChange()==false) return;
|
||||
|
||||
if(isInStance) UpDateInstance();
|
||||
if (TargetChange() == false)
|
||||
{
|
||||
Debug.Log("返回");
|
||||
return;
|
||||
}
|
||||
isInStance = false;
|
||||
if (isInStance) UpDateInstance();
|
||||
else UpDateMesh();
|
||||
}
|
||||
|
||||
@ -76,12 +83,12 @@ public class RongMaoSkinMesh : MonoBehaviour
|
||||
//初始化毛发,返回是否初始化成功
|
||||
bool Init()
|
||||
{
|
||||
if(target.IsUnityNull()) return false;
|
||||
if (target.IsUnityNull()) return false;
|
||||
CreateFur();
|
||||
MeshInstancedData();
|
||||
if (target.GetType() == typeof(MeshRenderer))
|
||||
{
|
||||
mesh=target.GetComponent<MeshFilter>().sharedMesh;
|
||||
mesh = target.GetComponent<MeshFilter>().sharedMesh;
|
||||
skinHasValue = false;
|
||||
}
|
||||
else
|
||||
@ -97,17 +104,19 @@ public class RongMaoSkinMesh : MonoBehaviour
|
||||
void CreateFur()
|
||||
{
|
||||
mesh = new Mesh();
|
||||
layerMat =new Material(BaseShader);
|
||||
layerMat.SetTexture("_MainTex",MainTex);
|
||||
layerMat.SetColor("_Color",FurColor);
|
||||
layerMat.SetFloat("_FurLength",FurLength);
|
||||
layerMat.SetTexture("_Noise",Noise);
|
||||
layerMat.SetTexture("_Noise2",Noise2);
|
||||
layerMat.SetTexture("_Mask",Mask);
|
||||
layerMat.SetColor("_ShadowColor",ShadowColor);
|
||||
layerMat.SetFloat("_R",R);
|
||||
layerMat.SetFloat("_LayerCount",LayerCount);
|
||||
layerMat.renderQueue = 3000;
|
||||
layerMat = new Material(BaseShader);
|
||||
layerMat.SetTexture("_MainTex", MainTex);
|
||||
layerMat.SetColor("_Color", FurColor);
|
||||
layerMat.SetFloat("_FurLength", FurLength);
|
||||
layerMat.SetTexture("_Noise", Noise);
|
||||
layerMat.SetTexture("_Noise2", Noise2);
|
||||
layerMat.SetTexture("_Mask", Mask);
|
||||
layerMat.SetColor("_ShadowColor", ShadowColor);
|
||||
layerMat.SetFloat("_R", R);
|
||||
layerMat.SetFloat("_LayerCount", LayerCount);
|
||||
layerMat.SetInt("_ZWrite", ZWrite ? 1 : 0);
|
||||
layerMat.SetFloat("_Density", Density);
|
||||
layerMat.renderQueue = 3000 + RenderSort;
|
||||
|
||||
mpb = new MaterialPropertyBlock();
|
||||
|
||||
@ -121,11 +130,11 @@ public class RongMaoSkinMesh : MonoBehaviour
|
||||
// 随机生成实例的位置和旋转
|
||||
for (int i = 0; i < LayerCount; i++)
|
||||
{
|
||||
Vector3 position = target.transform.position;
|
||||
Quaternion rotation = target.transform.rotation;
|
||||
Vector3 scale = Vector3.one;
|
||||
//Vector3 position = target.transform.position;
|
||||
//Quaternion rotation = target.transform.rotation;
|
||||
//Vector3 scale = Vector3.one;
|
||||
|
||||
instanceMatrices[i] = Matrix4x4.TRS(position, rotation, scale);
|
||||
instanceMatrices[i] = target.transform.localToWorldMatrix;// //Matrix4x4.TRS(position, rotation, scale);
|
||||
}
|
||||
|
||||
}
|
||||
@ -138,9 +147,12 @@ public class RongMaoSkinMesh : MonoBehaviour
|
||||
{
|
||||
skinnedMeshRenderer.BakeMesh(mesh);
|
||||
}
|
||||
|
||||
for (int i = 0; i < LayerCount; i++)
|
||||
{
|
||||
instanceMatrices[i] = target.transform.localToWorldMatrix;
|
||||
}
|
||||
layerMat.EnableKeyword("INSTANCE");
|
||||
Graphics.DrawMeshInstanced(mesh,0,layerMat,instanceMatrices,LayerCount);
|
||||
Graphics.DrawMeshInstanced(mesh, 0, layerMat, instanceMatrices, LayerCount);
|
||||
}
|
||||
//未使用GPU实例化
|
||||
void UpDateMesh()
|
||||
@ -154,8 +166,8 @@ public class RongMaoSkinMesh : MonoBehaviour
|
||||
float furOffset = 1.0f / LayerCount;
|
||||
for (int i = 0; i < LayerCount; i++)
|
||||
{
|
||||
mpb.SetFloat("_LayerOffset",i*furOffset);
|
||||
Graphics.DrawMesh(mesh,target.transform.localToWorldMatrix,layerMat,0,Camera.main,0,mpb);
|
||||
mpb.SetFloat("_LayerOffset", i * furOffset);
|
||||
Graphics.DrawMesh(mesh, target.transform.localToWorldMatrix, layerMat, 0, Camera.main, 0, mpb);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,5 @@
|
||||
using FSM;
|
||||
using ZXKFramework;
|
||||
namespace DongWuYiXue.QiGuanChaGuan
|
||||
{
|
||||
public class BingLiXinXiState : FsmState<FSMManager>
|
||||
@ -7,12 +8,28 @@ namespace DongWuYiXue.QiGuanChaGuan
|
||||
{
|
||||
base.OnStateEnter();
|
||||
this.Log("进入病例信息状态");
|
||||
fsm.ShowTip(0, true);
|
||||
fsm.ShowCamera("病例信息1_Camera");
|
||||
fsm.PlayClip("病例信息_TimeLine", () =>
|
||||
if (fsm.main_gameModel.modeType == ModeType.KaoHe)
|
||||
{
|
||||
fsm.nextState = true;
|
||||
});
|
||||
GameManager.Instance.uiManager.ShowUI<StartKaoHePanel>();
|
||||
GameManager.Instance.uiManager.GetUI<StartKaoHePanel>().callback = () =>
|
||||
{
|
||||
fsm.ShowTip(0, true);
|
||||
fsm.ShowCamera("病例信息1_Camera");
|
||||
fsm.PlayClip("病例信息_TimeLine", () =>
|
||||
{
|
||||
fsm.nextState = true;
|
||||
});
|
||||
};
|
||||
}
|
||||
else if (fsm.main_gameModel.modeType == ModeType.ShiXun)
|
||||
{
|
||||
fsm.ShowTip(0, true);
|
||||
fsm.ShowCamera("病例信息1_Camera");
|
||||
fsm.PlayClip("病例信息_TimeLine", () =>
|
||||
{
|
||||
fsm.nextState = true;
|
||||
});
|
||||
}
|
||||
}
|
||||
public override void OnStateStay()
|
||||
{
|
||||
|
||||
@ -43,6 +43,10 @@ namespace DongWuYiXue.QiGuanChaGuan
|
||||
fsm.nextState = true;
|
||||
});
|
||||
}
|
||||
if (fsm.main_gameModel.modeType == ModeType.ShiXun)
|
||||
{
|
||||
fsm.nextState = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,6 +42,7 @@ namespace DongWuYiXue.QiGuanChaGuan
|
||||
if (Input.GetKeyDown(KeyCode.L))
|
||||
{
|
||||
laValue = 1.0f;
|
||||
fsm.PlayClip("³äӯθÄÒÀ_TimeLine", null, laValue);
|
||||
}
|
||||
if (laValue >= 1.0f)
|
||||
{
|
||||
@ -55,7 +56,7 @@ namespace DongWuYiXue.QiGuanChaGuan
|
||||
}
|
||||
isLa = false;
|
||||
laValue = 0;
|
||||
cor2=Game.Instance.IEnumeratorManager.Run(1.0f, () =>
|
||||
cor2 = Game.Instance.IEnumeratorManager.Run(1.0f, () =>
|
||||
{
|
||||
isTui = true;
|
||||
});
|
||||
|
||||
@ -40,6 +40,10 @@ namespace DongWuYiXue.QiGuanChaGuan
|
||||
fsm.nextState = true;
|
||||
});
|
||||
}
|
||||
if (fsm.main_gameModel.modeType == ModeType.ShiXun)
|
||||
{
|
||||
fsm.nextState = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@ -11,6 +11,7 @@ namespace DongWuYiXue.QiGuanChaGuan
|
||||
if (fsm.main_gameModel.modeType == ModeType.ShiXun)
|
||||
{
|
||||
fsm.AddScore(5, 0);
|
||||
fsm.nextState = true;
|
||||
}
|
||||
if (fsm.main_gameModel.modeType == ModeType.KaoHe)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user