update feature icon task on head NPC ( not yet completed )

This commit is contained in:
VuNgocHaiC7
2026-01-21 14:12:23 +07:00
parent b461d0b151
commit 0ca50d5475
13 changed files with 838 additions and 95 deletions
+56 -1
View File
@@ -53,7 +53,6 @@ public class CECNPC : CECObject
[SerializeField] protected NPCVisual npcVisual;
protected static CECStringTab m_ActionNames;
/* public string NameNPC => m_strName;
public string ROLEBASICPROP => m_strName;*/
@@ -69,6 +68,54 @@ public class CECNPC : CECObject
m_pNPCModelPolicy = new CECNPCModelDefaultPolicy(this);
}
// Add this field to CECNPC class
private bool m_bHasRelatedTask = false;
private float _timerCheckTask = 0;
public void UpdateTaskIcon()
{
// Check if npcUI is assigned
if (m_npcUI == null)
{
m_npcUI = GetComponentInChildren<UINPC>();
if (m_npcUI == null) return;
}
// 2. Get Host Player & Interface
var host = CECGameRun.Instance.GetHostPlayer();
if (host == null) return;
var taskInterface = host.GetTaskInterface();
if (taskInterface == null)
{
if (m_bHasRelatedTask) // only update if state changed
{
m_npcUI.SetTaskIconMain(false);
m_bHasRelatedTask = false;
}
return;
}
// Get NPC Template ID
int npcTemplateID = m_NPCInfo.tid;
// Check if there are tasks related to this NPC
bool hasTask = taskInterface.HasTaskRelatedToNPC(npcTemplateID);
// Update icon only if state changed
if (m_bHasRelatedTask != hasTask)
{
m_bHasRelatedTask = hasTask;
m_npcUI.SetTaskIconMain(hasTask);
if (hasTask)
{
Debug.Log($"[Icon] NPC {m_strName} (TID: {npcTemplateID})");
}
}
}
public string GetName()
{
return m_strName;
@@ -180,6 +227,7 @@ public class CECNPC : CECObject
new Vector2(pHost.transform.position.x, pHost.transform.position.z));
}
UpdateTaskIcon();
return true;
}
@@ -513,6 +561,13 @@ public class CECNPC : CECObject
{
StartAdjustTransparency(-1.0f, GetTransparentLimit(), 500);
}
_timerCheckTask += Time.deltaTime;
if (_timerCheckTask > 1.0f)
{
_timerCheckTask = 0;
UpdateTaskIcon();
}
}
private void TickWork_Dead(float deltaTime)
@@ -57,6 +57,8 @@ public class CECNPCServer : CECNPC
transform.position = EC_Utility.ToVector3(info.pos);
StartWork((int)WorkType.WT_NOTHING, (int)WorkID.WORK_STAND);
UpdateTaskIcon();
return true;
}
@@ -300,6 +300,97 @@ namespace BrewMonster.Scripts.Task
return tasks;
}
// Add this method to ATaskTemplMan class if not exists
public List<ATaskTempl> GetAllTopTasks()
{
List<ATaskTempl> topTasks = new List<ATaskTempl>();
// Iterate through all task templates and collect top-level tasks
// Assuming you have a dictionary or collection of all tasks
foreach (var kvp in m_TaskTemplMap) // Replace with your actual collection name
{
var templ = kvp.Value;
if (templ != null && templ.m_pParent == null) // Top-level task has no parent
{
topTasks.Add(templ);
}
}
return topTasks;
}
// Alternative method if you want to check by NPC ID directly
public List<ATaskTempl> GetAvailableTasksForNPC(int npcID)
{
List<ATaskTempl> availableTasks = new List<ATaskTempl>();
foreach (var kvp in m_TaskTemplMap) // Replace with your actual collection name
{
var templ = kvp.Value;
if (templ != null &&
templ.m_pParent == null &&
templ.m_FixedData.m_ulDelvNPC == npcID)
{
availableTasks.Add(templ);
}
}
return availableTasks;
}
// Add this method to ATaskTemplMan class
/// <summary>
/// Get all task templates (for iterating to find available tasks)
/// Lấy tất cả task templates (để duyệt tìm nhiệm vụ có thể nhận)
/// </summary>
public List<ATaskTempl> GetAllTaskTemplates()
{
List<ATaskTempl> allTasks = new List<ATaskTempl>();
// Assuming you have a collection storing all task templates
// Replace m_TaskMap with your actual collection name
if (m_TaskTemplMap != null)
{
foreach (var kvp in m_TaskTemplMap)
{
if (kvp.Value != null)
{
allTasks.Add(kvp.Value);
}
}
}
return allTasks;
}
/// <summary>
/// Get list of tasks delivered by a specific NPC
/// </summary>
public List<ATaskTempl> GetTasksFromNPC(int npcID)
{
var result = new List<ATaskTempl>();
// Check if NPC info map is available
if (m_NPCInfoMap != null && m_NPCInfoMap.TryGetValue((uint)npcID, out var npcInfo))
{
return new List<ATaskTempl>();
}
else
{
// Fallback
foreach (var kvp in m_TaskTemplMap)
{
var templ = kvp.Value;
if (templ != null && templ.m_FixedData.m_ulDelvNPC == npcID)
{
result.Add(templ);
}
}
}
return result;
}
// General method to read a struct from a FileStream
private T ReadStruct<T>(FileStream stream) where T : struct
@@ -1,17 +1,19 @@
using BrewMonster.Managers;
using BrewMonster.Network;
using BrewMonster.Scripts; // For CECNavigateCtrl
using BrewMonster.UI;
using CSNetwork;
using CSNetwork.GPDataType;
using Cysharp.Threading.Tasks;
using PerfectWorld.Scripts.Task;
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;
using BrewMonster.UI;
using CSNetwork;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking;
using System;
using BrewMonster.Scripts; // For CECNavigateCtrl
using static BrewMonster.TASKDICE_ESSENCE;
namespace BrewMonster.Scripts.Task
{
@@ -528,85 +530,164 @@ namespace BrewMonster.Scripts.Task
{
return m_pActiveListBuf;
}
// private void InitActiveTaskList()
// {
// ActiveTaskList pLst = GetActiveTaskList();
// if (pLst == null) return;
//
// ATaskTemplMan pMan = GetTaskTemplMan();
// if (pMan == null) return;
//
// // reset counters
// pLst.m_uTopShowTaskCount = 0;
// pLst.m_uTopHideTaskCount = 0;
// pLst.m_uTitleTaskCount = 0;
//
// byte i = 0;
// while (i < pLst.m_uTaskCount)
// {
// ActiveTaskEntry entry = pLst.m_TaskEntries[i];
// if (entry == null)
// {
// i++;
// continue;
// }
//
// // repair sibling linkage
// if (entry.m_NextSblIndex != (char)0xff)
// {
// ActiveTaskEntry entryNextSbl = pLst.m_TaskEntries[entry.m_NextSblIndex];
// if (entryNextSbl == null || entryNextSbl.m_PrevSblIndex != (char)i)
// {
// entry.m_NextSblIndex = (char)0xff;
// }
// }
//
// // resolve template for top-level entries; children left unresolved in C#
// if (entry.m_ParentIndex == (char)0xff)
// {
// // entry.m_ulTemplAddr = 0u;
// entry.m_ulTemplAddr = pMan.GetTopTaskByID(entry.m_ID) != null ? 1u : 0u;
//
// ATaskTempl topTempl = pMan.GetTopTaskByID(entry.m_ID);
// if (topTempl != null)
// {
// if (topTempl.m_FixedData.m_bHidden)
// pLst.m_uTopHideTaskCount++;
// else if (topTempl.m_FixedData.m_bDisplayInTitleTaskUI)
// pLst.m_uTitleTaskCount++;
// else
// pLst.m_uTopShowTaskCount++;
// }
// }
// else
// {
// entry.m_ulTemplAddr = 0u;
// }
//
// // cap template best-effort (no pointer in managed)
// if (entry.m_uCapTaskId != 0)
// {
// ATaskTempl cap = pMan.GetTopTaskByID(entry.m_uCapTaskId);
// entry.m_ulCapTemplAddr = 0u;
// if (cap == null)
// {
// entry.m_uCapTaskId = 0;
// }
// }
// else
// {
// entry.m_ulCapTemplAddr = 0u;
// }
//
// i++;
// }
//
// // approximate used count
// pLst.m_uUsedCount = pLst.m_uTaskCount;
// }
public void InitActiveTaskList()
// Trong file CECTaskInterface.cs
public bool HasTaskRelatedToNPC(int npcID)
{
// Check tasks is active
ActiveTaskList activeList = GetActiveTaskList();
if (activeList != null && activeList.m_TaskEntries != null)
{
for (int i = 0; i < activeList.m_uTaskCount; i++)
{
var entry = activeList.m_TaskEntries[i];
if (entry == null) continue;
ATaskTempl templ = entry.GetTempl();
if (templ == null) continue;
// Check if this NPC is the target of the task
if (IsNPCTargetOfTask(templ, entry, npcID))
{
return true;
}
}
}
// Check tasks new
ATaskTemplMan taskMan = GetTaskTemplMan();
if (taskMan != null)
{
List<ATaskTempl> npcTasks = taskMan.GetTasksFromNPC(npcID);
if (npcTasks != null)
{
uint ulCurTime = GetCurTime();
foreach (var templ in npcTasks)
{
// Check prerequisite
if (templ.CheckPrerequisite(this, activeList, ulCurTime) == 0)
{
return true;
}
}
}
}
return false;
}
// Check NPC is target of the task
private bool IsNPCTargetOfTask(ATaskTempl templ, ActiveTaskEntry entry, int npcID)
{
var data = templ.m_FixedData;
// Task completed case
if (entry.IsFinished())
{
if (data.m_ulAwardNPC == npcID) return true;
}
else
{
// NPC target
if (data.m_ulNPCMoving == npcID) return true;
// Pos target
if (data.m_ulNPCDestSite == npcID) return true;
// Security target
if (data.m_ulNPCToProtect == npcID) return true;
if (data.m_enumMethod == (ulong)TaskCompletionMethod.enumTMTalkToNPC)
{
if (data.m_ulNPCMoving == 0 && data.m_ulAwardNPC == npcID)
{
return true;
}
}
}
return false;
}
// private void InitActiveTaskList()
// {
// ActiveTaskList pLst = GetActiveTaskList();
// if (pLst == null) return;
//
// ATaskTemplMan pMan = GetTaskTemplMan();
// if (pMan == null) return;
//
// // reset counters
// pLst.m_uTopShowTaskCount = 0;
// pLst.m_uTopHideTaskCount = 0;
// pLst.m_uTitleTaskCount = 0;
//
// byte i = 0;
// while (i < pLst.m_uTaskCount)
// {
// ActiveTaskEntry entry = pLst.m_TaskEntries[i];
// if (entry == null)
// {
// i++;
// continue;
// }
//
// // repair sibling linkage
// if (entry.m_NextSblIndex != (char)0xff)
// {
// ActiveTaskEntry entryNextSbl = pLst.m_TaskEntries[entry.m_NextSblIndex];
// if (entryNextSbl == null || entryNextSbl.m_PrevSblIndex != (char)i)
// {
// entry.m_NextSblIndex = (char)0xff;
// }
// }
//
// // resolve template for top-level entries; children left unresolved in C#
// if (entry.m_ParentIndex == (char)0xff)
// {
// // entry.m_ulTemplAddr = 0u;
// entry.m_ulTemplAddr = pMan.GetTopTaskByID(entry.m_ID) != null ? 1u : 0u;
//
// ATaskTempl topTempl = pMan.GetTopTaskByID(entry.m_ID);
// if (topTempl != null)
// {
// if (topTempl.m_FixedData.m_bHidden)
// pLst.m_uTopHideTaskCount++;
// else if (topTempl.m_FixedData.m_bDisplayInTitleTaskUI)
// pLst.m_uTitleTaskCount++;
// else
// pLst.m_uTopShowTaskCount++;
// }
// }
// else
// {
// entry.m_ulTemplAddr = 0u;
// }
//
// // cap template best-effort (no pointer in managed)
// if (entry.m_uCapTaskId != 0)
// {
// ATaskTempl cap = pMan.GetTopTaskByID(entry.m_uCapTaskId);
// entry.m_ulCapTemplAddr = 0u;
// if (cap == null)
// {
// entry.m_uCapTaskId = 0;
// }
// }
// else
// {
// entry.m_ulCapTemplAddr = 0u;
// }
//
// i++;
// }
//
// // approximate used count
// pLst.m_uUsedCount = pLst.m_uTaskCount;
// }
public void InitActiveTaskList()
{
ActiveTaskList pLst = GetActiveTaskList();
FinishedTaskList pFnsh = GetFinishedTaskList();
@@ -1058,10 +1139,11 @@ namespace BrewMonster.Scripts.Task
// TODO: Expose account total cash on host/session
return 0u;
}
#if _TASK_CLIENT
// Prepare award preview based on task and state
public void GetTaskAwardPreview(uint ulTaskId, ref Task_Award_Preview p, bool bActiveTask=true)
// Prepare award preview based on task and state
public void GetTaskAwardPreview(uint ulTaskId, ref Task_Award_Preview p, bool bActiveTask=true)
{
// Zero and init output
p = default;
@@ -1644,7 +1726,7 @@ namespace BrewMonster.Scripts.Task
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnNewTask: Task {iTaskID} is not a force navigate task (pTempl={pTempl != null}, method={pTempl?.m_FixedData.m_enumMethod})");
}
}
}
public void OnTaskConfirmUpdate()
{
@@ -1676,7 +1758,7 @@ namespace BrewMonster.Scripts.Task
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnCompleteTask: Task {iTaskID} is not a force navigate task");
}
}
}
public void TakeAwayCommonItem(uint ulTemplId, uint ulNum) {}
@@ -1699,7 +1781,7 @@ namespace BrewMonster.Scripts.Task
{
UnityEngine.Debug.Log($"[CECTaskInterface] OnGiveupTask: Task {iTaskID} is not a force navigate task");
}
}
}
// Handle task text click in UI - trigger navigation if it's a force navigate task // 处理任务UI文本点击 - 如果是强制导航任务则触发导航
// This is called when user clicks on task name/link in the task UI // 当用户在任务UI中点击任务名称/链接时调用
@@ -1,3 +1,4 @@
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@@ -9,6 +10,10 @@ namespace BrewMonster
[SerializeField] private TextMeshProUGUI _nameText;
[SerializeField] private TextMeshProUGUI _healthText;
[SerializeField] private Image _healthImage;
[Header("List Icon Task")]
[SerializeField] private GameObject _iconTaskMain;
// Start is called once before the first execution of Update after the MonoBehaviour is created
public void SetName(string name)
{
@@ -24,5 +29,11 @@ namespace BrewMonster
if(_healthText != null)
_healthText.text = healthText;
}
public void SetTaskIconMain(bool isShow)
{
if(_iconTaskMain != null)
_iconTaskMain.SetActive(isShow);
}
}
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dcaa1adabe1192947a68c7e0f4edece4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 634 KiB

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: d2ab8e4bde76db4478aff9994361b46a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: ChuTuyen_0
rect:
serializedVersion: 2
x: 201
y: 163
width: 618
height: 700
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 42af0f91f2269ff47b862dbb765d32f2
internalID: -338310257
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: f1f78b52002efcf4da3264912e38dddb
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
ChuTuyen_0: -338310257
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 7c5f76c428f533d4ca3a449e2bc02ff5
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 568 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: cd36f0d3de378e94caea2807302f7a18
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
+85 -4
View File
@@ -49,7 +49,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
namedAnimancer: {fileID: 0}
isDebug: 0
animName1:
--- !u!114 &-5899287755522118344
MonoBehaviour:
@@ -63,11 +62,16 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: aebb5e19da26bb64c8d5620d35681a2b, type: 3}
m_Name:
m_EditorClassIdentifier:
m_NPCInfo:
nid: 0
tid: 0
vis_tid: 0
m_iMMIndex: 0
m_idAttackTarget: 0
m_npcUI: {fileID: 0}
m_fMoveSpeed: 0
_characterController: {fileID: -1360397627327243963}
isDebug: 0
npcVisual: {fileID: 0}
--- !u!136 &1637622316711963511
CapsuleCollider:
m_ObjectHideFlags: 0
@@ -143,12 +147,13 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3297168817873124018}
m_LocalRotation: {x: 8.102368e-16, y: 1, z: 0.000000046460137, w: -0.000000017439397}
m_LocalRotation: {x: -0.08684798, y: 0.24095127, z: 0.02165367, w: 0.9664011}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5661997413782496610}
- {fileID: 7509779512108699303}
m_Father: {fileID: 8745273338113588215}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -233,6 +238,81 @@ MonoBehaviour:
m_EditorClassIdentifier:
targetCamera: {fileID: 0}
mode: 1
--- !u!1 &5100466107490290627
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7509779512108699303}
- component: {fileID: 397635185778217656}
- component: {fileID: 1609008502916343598}
m_Layer: 0
m_Name: TaskIcon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &7509779512108699303
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5100466107490290627}
m_LocalRotation: {x: 3.7702125e-16, y: -0.97228837, z: -0.23378475, w: 1.5679955e-15}
m_LocalPosition: {x: 0, y: 0, z: 1.2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8006159455096186264}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 2.36}
m_SizeDelta: {x: 0.5, y: 0.5}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &397635185778217656
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5100466107490290627}
m_CullTransparentMesh: 1
--- !u!114 &1609008502916343598
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5100466107490290627}
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: -338310257, guid: d2ab8e4bde76db4478aff9994361b46a, 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: 1
--- !u!1 &5709911674741944065
GameObject:
m_ObjectHideFlags: 0
@@ -281,6 +361,7 @@ MonoBehaviour:
_nameText: {fileID: 606418994916995261}
_healthText: {fileID: 0}
_healthImage: {fileID: 0}
_iconTaskMain: {fileID: 5100466107490290627}
--- !u!1 &6510845919681767284
GameObject:
m_ObjectHideFlags: 0
@@ -307,7 +388,7 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6510845919681767284}
m_LocalRotation: {x: -0.015657494, y: 0.89469767, z: -0.03145985, w: -0.44528785}
m_LocalRotation: {x: 0.028356783, y: 0.9830809, z: 0.02226828, w: 0.17958853}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0