gameplay所有基本功能都装了,加入了全局警告。加入飘字等各种东西。
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class enemyBallLightPrefab : MonoBehaviour
|
||||
{
|
||||
public Image ballImage_img;
|
||||
public Image cursor_img;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6c9fce59f1efea47a0ab5749a9d1d23
|
||||
@@ -0,0 +1,204 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &556102388742712204
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8120702170385693631}
|
||||
- component: {fileID: 8825121522545113228}
|
||||
- component: {fileID: 1053406925112209067}
|
||||
m_Layer: 5
|
||||
m_Name: cursor
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8120702170385693631
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 556102388742712204}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0.26303118, w: 0.9647873}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1475245678665496213}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 30.5}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 11.71, y: 16.1}
|
||||
m_SizeDelta: {x: 10, y: 10}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8825121522545113228
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 556102388742712204}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1053406925112209067
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 556102388742712204}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 82ff18ae7ceadd943996d346a7d5b7da, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 0.3
|
||||
--- !u!1 &2979410272479687480
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5774449902534146125}
|
||||
- component: {fileID: 7137847011436429731}
|
||||
m_Layer: 5
|
||||
m_Name: enemyListBallPrefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5774449902534146125
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2979410272479687480}
|
||||
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: 1475245678665496213}
|
||||
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: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &7137847011436429731
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2979410272479687480}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c6c9fce59f1efea47a0ab5749a9d1d23, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ballImage_img: {fileID: 5342438604247076245}
|
||||
cursor_img: {fileID: 1053406925112209067}
|
||||
--- !u!1 &4474694856134958237
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1475245678665496213}
|
||||
- component: {fileID: 2116234052611698026}
|
||||
- component: {fileID: 5342438604247076245}
|
||||
m_Layer: 5
|
||||
m_Name: ballImage
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1475245678665496213
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4474694856134958237}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -0.000010233372}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8120702170385693631}
|
||||
m_Father: {fileID: 5774449902534146125}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 110, y: -50}
|
||||
m_SizeDelta: {x: 20, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2116234052611698026
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4474694856134958237}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5342438604247076245
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4474694856134958237}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 0.3
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 835171242d507cb448a22d7b5a2b32a1
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,118 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class load_enemyBall_light : MonoBehaviour
|
||||
{
|
||||
[Header("prefabs")]
|
||||
public GameObject enemyBallLightPrefab;
|
||||
public Transform obj_to_put; // Changed to Transform for easier parenting
|
||||
|
||||
[Header("colors")]
|
||||
public Color symbol_default_color = Color.white;
|
||||
|
||||
public Color symbol_dead_color = Color.gray;
|
||||
public Color symbol_simple_color = Color.green;
|
||||
public Color symbol_elite_color = Color.blue;
|
||||
public Color symbol_boss_color = Color.red;
|
||||
public Color symbol_legendary_color = Color.yellow;
|
||||
|
||||
private List<global::enemyBallLightPrefab> instantiatedBalls = new List<global::enemyBallLightPrefab>();
|
||||
private int currentEnemyIndex = 0;
|
||||
|
||||
public void InitializeEnemyBalls(List<EnemyData_SO.EnemyType> enemyList)
|
||||
{
|
||||
// Clear existing balls list references
|
||||
instantiatedBalls.Clear();
|
||||
currentEnemyIndex = 0;
|
||||
|
||||
// Clean up all children in obj_to_put to ensure a fresh start
|
||||
if (obj_to_put != null)
|
||||
{
|
||||
for (int i = obj_to_put.childCount - 1; i >= 0; i--)
|
||||
{
|
||||
Destroy(obj_to_put.GetChild(i).gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
if (enemyList == null || enemyList.Count == 0) return;
|
||||
|
||||
// Instantiate balls based on enemy count
|
||||
foreach (var enemyType in enemyList)
|
||||
{
|
||||
if (enemyBallLightPrefab == null || obj_to_put == null) continue;
|
||||
|
||||
GameObject ballObj = Instantiate(enemyBallLightPrefab, obj_to_put);
|
||||
global::enemyBallLightPrefab ballScript = ballObj.GetComponent<global::enemyBallLightPrefab>();
|
||||
|
||||
if (ballScript != null)
|
||||
{
|
||||
// Set color based on enemy type
|
||||
if (ballScript.ballImage_img != null)
|
||||
{
|
||||
ballScript.ballImage_img.color = GetColorForEnemyType(enemyType);
|
||||
}
|
||||
|
||||
// Initial cursor state: only first one active
|
||||
if (ballScript.cursor_img != null)
|
||||
{
|
||||
ballScript.cursor_img.gameObject.SetActive(instantiatedBalls.Count == 0);
|
||||
}
|
||||
|
||||
instantiatedBalls.Add(ballScript);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnEnemyDefeated()
|
||||
{
|
||||
// Check if we have valid balls list
|
||||
if (instantiatedBalls.Count == 0) return;
|
||||
|
||||
// Ensure index is within bounds
|
||||
if (currentEnemyIndex >= instantiatedBalls.Count) return;
|
||||
|
||||
// Change the current enemy's ball color to dead color
|
||||
if (instantiatedBalls[currentEnemyIndex].ballImage_img != null)
|
||||
{
|
||||
instantiatedBalls[currentEnemyIndex].ballImage_img.color = symbol_dead_color;
|
||||
}
|
||||
|
||||
// Turn off cursor for current (defeated) enemy
|
||||
// UNLESS it's the last enemy, per requirements: "若最后一个敌人死亡,则最后一个敌人的cursor不消失"
|
||||
if (currentEnemyIndex < instantiatedBalls.Count - 1)
|
||||
{
|
||||
if (instantiatedBalls[currentEnemyIndex].cursor_img != null)
|
||||
{
|
||||
instantiatedBalls[currentEnemyIndex].cursor_img.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
// Move to next enemy
|
||||
currentEnemyIndex++;
|
||||
|
||||
// Turn on cursor for next enemy (if exists)
|
||||
if (currentEnemyIndex < instantiatedBalls.Count)
|
||||
{
|
||||
if (instantiatedBalls[currentEnemyIndex].cursor_img != null)
|
||||
{
|
||||
instantiatedBalls[currentEnemyIndex].cursor_img.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Color GetColorForEnemyType(EnemyData_SO.EnemyType enemyType)
|
||||
{
|
||||
// Assuming enemy types map to standard conventions or simple integer mapping
|
||||
// Adjust these mappings based on actual EnemyInfo.enemyType values if known
|
||||
// For now using a switch based on common patterns or provided requirements
|
||||
switch (enemyType)
|
||||
{
|
||||
case EnemyData_SO.EnemyType.Simple: return symbol_simple_color;
|
||||
case EnemyData_SO.EnemyType.Elite: return symbol_elite_color;
|
||||
case EnemyData_SO.EnemyType.Boss: return symbol_boss_color;
|
||||
case EnemyData_SO.EnemyType.Legend: return symbol_legendary_color;
|
||||
default: return symbol_default_color;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f09c766e1ee67bb46a574a9aa777022f
|
||||
Reference in New Issue
Block a user