public override void In_Skill_R() { isOkGo = playerScript.GetRangeAnyPoint(projector_W[1].transform, projector_W[0].transform, 48.75f); if (Input.GetMouseButtonDown(0)) { if (isOkGo) { if (playerScript.ConsumeAP(skillR_needAP, true)) { playerScript.SkillState = Player.SkillData.None; //開啟攻擊範圍 playerScript.Net.RPC("GetSkillPos", PhotonTargets.All, projector_W[1].transform.position); //關閉顯示範圍 ProjectorManager.SwitchPorjector(projector_W, false); transform.forward = playerScript.arrow.forward; playerScript.stopAnything_Switch(true); playerScript.Net.RPC("Skill_R_Fun", PhotonTargets.All); } } else { playerScript.HintScript.CreatHint("不能在此處傳送"); } } if (Input.GetMouseButtonDown(1)) { playerScript.CancelNowSkill(); } }
void Initialize(ProjectorManager projectorManager) { m_projectorManager = projectorManager; m_serializedObject = new SerializedObject(projectorManager); m_currentPage = 0; m_errorStyle = new GUIStyle(); m_errorStyle.richText = true; m_errorStyle.wordWrap = true; }
public void Go_RSkill() { playerScript.deadManager.NoDamage(true); //設定攻擊範圍 allSkillRange.transform.position = mySkillPos; ProjectorManager.Setsize(allSkillRange, 17.5f, 1, true); //clone體執行 if (!photonView.isMine) { playerScript.MatchTimeManager.SetCountDownNoCancel(R_Skill, .9f); } }
//R按下&&偵測 public override void Skill_R_Click() { if (!playerScript.ConsumeAP(skillR_needAP, false)) { return; } playerScript.canSkill_R = false; playerScript.SkillState = Player.SkillData.skill_R; //顯示範圍 ProjectorManager.SwitchPorjector(projector_R, true); }
//W按下&&偵測 public override void Skill_W_Click() { //消耗不足 if (!playerScript.ConsumeAP(skillW_needAP, false)) { return; } playerScript.canSkill_W = false; playerScript.SkillState = Player.SkillData.skill_W; //顯示範圍 ProjectorManager.Setsize(projector_W[0], 26, 1, true); ProjectorManager.Setsize(projector_W[1], 7.2f, 1, true); }
public static void CreateWizard(ProjectorManager projectorManager) { if (s_instance != null) { s_instance.Close(); } EasySetupWizard window = ScriptableObject.CreateInstance <EasySetupWizard>(); window.title = "Easy Setup Wizard of Projector Manager"; window.maxSize = window.minSize = WINDOW_SIZE; window.Initialize(projectorManager); window.ShowUtility(); s_instance = window; }
void OnEnable() { ProjectorManager manager = target as ProjectorManager; Renderer renderer = manager.GetComponent <Renderer>(); if (renderer.sharedMaterial == null) { renderer.sharedMaterial = editorSettings.m_defaultProjectorManagerMaterial; #if (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7) // support Unity 4.3 or later renderer.castShadows = false; #else renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; renderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; #endif renderer.useLightProbes = false; renderer.receiveShadows = false; } if (manager.receivers != null) { { var __list1 = manager.receivers; var __listCount1 = __list1.Count; for (int __i1 = 0; __i1 < __listCount1; ++__i1) { var receiver = (ReceiverBase)__list1[__i1]; { Renderer r = receiver.GetComponent <Renderer>(); if (r.sharedMaterial == null) { r.sharedMaterial = editorSettings.m_defaultReceiverMaterial; #if (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7) // support Unity 4.3 or later r.castShadows = false; #else r.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; r.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; #endif r.useLightProbes = false; r.receiveShadows = false; } } } } } }
public override void In_Skill_Q() { if (Input.GetMouseButtonDown(0)) { if (playerScript.ConsumeAP(skillQ_needAP, true)) { playerScript.SkillState = Player.SkillData.None; ProjectorManager.SwitchPorjector(projector_Q, false); //關閉顯示範圍 transform.forward = playerScript.arrow.forward; playerScript.stopAnything_Switch(true); playerScript.Net.RPC("Skill_Q_Fun", PhotonTargets.All); } } if (Input.GetMouseButtonDown(1)) { playerScript.CancelNowSkill(); } }
public override void In_Skill_R() { if (Input.GetMouseButtonDown(0)) { if (playerScript.ConsumeAP(skillR_needAP, true)) { playerScript.SkillState = Player.SkillData.None; //開啟攻擊範圍 playerScript.Net.RPC("GetSkillPos", PhotonTargets.All, projector_R[0].transform.position); //關閉顯示範圍 ProjectorManager.SwitchPorjector(projector_R, false); myCachedTransform.forward = playerScript.arrow.forward; playerScript.stopAnything_Switch(true); playerScript.Net.RPC("Skill_R_Fun", PhotonTargets.All); } } if (Input.GetMouseButtonDown(1)) { playerScript.CancelNowSkill(); } }
public override void CancelDetectSkill(Player.SkillData _nowSkill) { switch (_nowSkill) { case Player.SkillData.skill_Q: ProjectorManager.SwitchPorjector(projector_Q, false); break; case Player.SkillData.skill_W: ProjectorManager.SwitchPorjector(projector_W, false); break; case Player.SkillData.skill_R: ProjectorManager.SwitchPorjector(projector_W, false); break; case Player.SkillData.skill_E: projector_E.enabled = false; break; default: if (projector_Q[0].enabled) { ProjectorManager.SwitchPorjector(projector_Q, false); } if (projector_W[1].enabled) { ProjectorManager.SwitchPorjector(projector_W, false); } if (projector_E.enabled) { projector_E.enabled = false; } break; } }
public void R_Skill() { allSkillRange.transform.position = mySkillPos; ProjectorManager.Setsize(allSkillRange, 2.5f, 1, true); }
public void W_Skill() { //設定攻擊範圍 allSkillRange.transform.position = mySkillPos; ProjectorManager.Setsize(allSkillRange, 7.2f, 1, true); }
public override void OnInspectorGUI() { ProjectorManager manager = target as ProjectorManager; if (GUILayout.Button("Easy Setup Wizard")) { EasySetupWizard.CreateWizard(manager); } s_bShowReceivers = EditorGUILayout.Foldout(s_bShowReceivers, "Shadow Receivers"); if (s_bShowReceivers) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(serializedObject.FindProperty("m_receiverLayerMask")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_receivers"), true); --EditorGUI.indentLevel; } s_bShowProjectorControls = EditorGUILayout.Foldout(s_bShowProjectorControls, "Projector Controls"); if (s_bShowProjectorControls) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(serializedObject.FindProperty("m_mainCamera")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_environmentLayers")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_projectorFadeoutDistance")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_fadeDuration")); --EditorGUI.indentLevel; } s_bShowPlaneShadows = EditorGUILayout.Foldout(s_bShowPlaneShadows, "Plane Shadows"); if (s_bShowPlaneShadows) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(serializedObject.FindProperty("m_raycastPlaneMask")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_useInfinitePlane")); if (manager.useInfinitPlane) { EditorGUILayout.PropertyField(serializedObject.FindProperty("m_infinitePlaneTransform")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_infinitePlaneNormal")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_infinitePlaneHeight")); } --EditorGUI.indentLevel; } s_bShowPlaneShadowTextures = EditorGUILayout.Foldout(s_bShowPlaneShadowTextures, "Plane Shadow Textures"); if (s_bShowPlaneShadowTextures) { ++EditorGUI.indentLevel; EditorGUILayout.PropertyField(serializedObject.FindProperty("m_blobShadowTextures"), true); if (manager.blobShadowTextures != null && 1 < manager.blobShadowTextures.Length) { EditorGUILayout.PropertyField(serializedObject.FindProperty("m_packedBlobShadowTexture")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_blobShadowTextureRects"), true); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_packedTexturePadding")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_packedTextureMaxSize")); if (GUILayout.Button("Pack Blob Shadow Textures")) { PackBlobShadowTextures(manager, serializedObject); } } EditorGUILayout.PropertyField(serializedObject.FindProperty("m_shadowTexName")); --EditorGUI.indentLevel; } EditorGUILayout.PropertyField(serializedObject.FindProperty("m_manualUpdate")); serializedObject.ApplyModifiedProperties(); }
public static void PackBlobShadowTextures(ProjectorManager manager, SerializedObject serializedObject) { string folderPath; string fileName; string assetPath; if (manager.packedBlobShadowTexture != null) { assetPath = AssetDatabase.GetAssetPath(manager.packedBlobShadowTexture); folderPath = System.IO.Path.GetDirectoryName(assetPath); fileName = System.IO.Path.GetFileNameWithoutExtension(assetPath); } else { assetPath = AssetDatabase.GetAssetPath(manager.blobShadowTextures[0]); folderPath = System.IO.Path.GetDirectoryName(assetPath); fileName = "PackedBlobShadowTexture"; } string fullPath = EditorUtility.SaveFilePanel("Create Packed Blob Texture", folderPath, fileName, "png"); if (!string.IsNullOrEmpty(fullPath)) { assetPath = fullPath; if (assetPath.StartsWith(Application.dataPath)) { assetPath = assetPath.Substring(Application.dataPath.Length - 6); } Texture2D packedTexture = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Texture2D)) as Texture2D; if (packedTexture == null) { packedTexture = new Texture2D(4, 4, TextureFormat.ARGB32, true); SaveTextureAsPNG(packedTexture, fullPath); packedTexture = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Texture2D)) as Texture2D; } Undo.RegisterCompleteObjectUndo(manager, "Pack Blob Shadow Textures"); // enable read/write blob shadow textures bool[] readableFlgas = new bool[manager.blobShadowTextures.Length]; for (int i = 0; i < manager.blobShadowTextures.Length; ++i) { string path = AssetDatabase.GetAssetPath(manager.blobShadowTextures[i]); TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter; if (importer != null && !importer.isReadable) { readableFlgas[i] = importer.isReadable; importer.isReadable = true; AssetDatabase.ImportAsset(path); } else { readableFlgas[i] = true; } } TextureImporter packedImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(packedTexture)) as TextureImporter; packedImporter.isReadable = true; AssetDatabase.ImportAsset(assetPath); manager.PackBlobShadowTextures(packedTexture); for (int i = 0; i < manager.blobShadowTextures.Length; ++i) { string path = AssetDatabase.GetAssetPath(manager.blobShadowTextures[i]); TextureImporter importer = AssetImporter.GetAtPath(path) as TextureImporter; if (importer != null && !readableFlgas[i]) { importer.isReadable = false; AssetDatabase.ImportAsset(path); } } SaveTextureAsPNG(packedTexture, fullPath); packedImporter.isReadable = false; packedImporter.wrapMode = TextureWrapMode.Clamp; AssetDatabase.ImportAsset(assetPath); AssetDatabase.Refresh(); EditorUtility.SetDirty(manager); // repaint inspector view serializedObject.FindProperty("m_packedBlobShadowTexture").objectReferenceValue = manager.packedBlobShadowTexture; SerializedProperty prop = serializedObject.FindProperty("m_blobShadowTextureRects"); prop.arraySize = manager.blobShadowTextureRects.Length; for (int i = 0; i < manager.blobShadowTextureRects.Length; ++i) { prop.GetArrayElementAtIndex(i).rectValue = manager.blobShadowTextureRects[i]; } } }
public override void OnInspectorGUI() { ReceiverBase receiver = target as ReceiverBase; DrawDefaultInspector(); Object projector = receiver.customProjector; if (projector == null) { projector = receiver.unityProjector; } Component newProjector = EditorGUILayout.ObjectField("Projector", projector, typeof(Component), true) as Component; if (newProjector != projector) { if (newProjector == null) { Undo.RecordObject(receiver, "Inspector"); receiver.unityProjector = null; receiver.customProjector = null; } else { Projector unityProjector = newProjector.GetComponent <Projector>(); Renderer renderer = receiver.GetComponent <Renderer>(); Material material = renderer.sharedMaterial; if (unityProjector != null) { Undo.RecordObject(receiver, "Inspector"); receiver.unityProjector = unityProjector; if (material == null || material == editorSettings.m_defaultShadowmapReceiverMaterial) { Undo.RecordObject(renderer, "Inspector"); renderer.sharedMaterial = editorSettings.m_defaultReceiverMaterial; #if (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7) // support Unity 4.3 or later renderer.castShadows = false; #else renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; renderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; #endif renderer.useLightProbes = false; renderer.receiveShadows = false; } } else { ProjectorBase projectorBase = newProjector.GetComponent <ProjectorBase>(); if (projectorBase != null) { Undo.RegisterCompleteObjectUndo(receiver, "Inspector"); receiver.customProjector = projectorBase; if (material == null || material == editorSettings.m_defaultReceiverMaterial) { Undo.RecordObject(renderer, "Inspector"); renderer.sharedMaterial = editorSettings.m_defaultShadowmapReceiverMaterial; #if (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7) // support Unity 4.3 or later renderer.castShadows = false; #else renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; renderer.reflectionProbeUsage = UnityEngine.Rendering.ReflectionProbeUsage.Off; #endif renderer.useLightProbes = false; renderer.receiveShadows = true; } } } } } // check errors string errorMessage = null; if (projector == null) { // check if the object is prefab or not. PrefabType type = PrefabUtility.GetPrefabType(receiver.gameObject); if (type != PrefabType.Prefab && type != PrefabType.ModelPrefab) { // check if there is ProjectorManager and the receiver is add to it. ProjectorManager proman = Object.FindObjectOfType <ProjectorManager>(); if (proman != null) { if (!proman.receivers.Contains(receiver)) { errorMessage = "<color=red>Projector has not been set! There is a ProjectorManager in the scene. Do you forget to add this shadow receiver into the ProjectorManager?</color>"; } } else { errorMessage = "<color=red>Projector has not been set! Shadow receiver will not work until a Projector is assigned.</color>"; } } } else if (projector is Projector) { if ((((Projector)projector).ignoreLayers & (1 << receiver.gameObject.layer)) != 0) { errorMessage = "<color=red>This shadow receiver is being ignored by the Projector. Cannot receive the shadow from the Projector. Please check the layer of this object and Ignore Layers of the Projector.</color>"; } } if (!string.IsNullOrEmpty(errorMessage)) { GUILayout.TextArea(errorMessage, errorStyle); } }