Toggle navigation
Toggle navigation
This project
Loading...
Sign in
范川铭
/
UnityFrameWork
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
王琪诚
2025-06-25 15:26:19 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e9c8adccbc0e24380355b69306b4736e5d9c980f
e9c8adcc
1 parent
2980be66
【任务】TAPD#
功能详情 朋友圈json加载 配置文件 否 提交作者 QiCheng.Wang 评审人员
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
148 additions
and
14 deletions
Assets/Scenes/ItemTest.unity
Assets/Scripts/FriendCircle/DanmakuManager.cs
Assets/Scripts/FriendCircle/MomentItem.cs
Assets/Scripts/FriendCircle/MomentManager.cs
Assets/Scripts/Manager/JsonLoaderManager.cs
Assets/Scripts/Manager/JsonLoaderManager.cs.meta
Assets/resources/Jsons/friend_data.json
Assets/resources/Prefab/MomentItem.prefab
Assets/Scenes/ItemTest.unity
View file @
e9c8adc
...
...
@@ -947,7 +947,7 @@ RectTransform:
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
800
,
y
:
-490
}
m_SizeDelta
:
{
x
:
1160
,
y
:
1
8
0
}
m_SizeDelta
:
{
x
:
1160
,
y
:
1
6
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!114
&637033553
MonoBehaviour
:
...
...
@@ -2319,7 +2319,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!224
&1347929217
RectTransform
:
m_ObjectHideFlags
:
0
...
...
@@ -2361,7 +2361,6 @@ MonoBehaviour:
danmakuPanel
:
{
fileID
:
1475588209
}
danmakuPrefab
:
{
fileID
:
7870940708185808822
,
guid
:
7b836662dd2b34183bc4e6c9d87f4d26
,
type
:
3
}
speed
:
100
maxLines
:
5
---
!u!1
&1447955073
GameObject
:
m_ObjectHideFlags
:
0
...
...
@@ -2529,7 +2528,7 @@ RectTransform:
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
:
-4.7269
,
y
:
-245
}
m_AnchoredPosition
:
{
x
:
-4.7269
,
y
:
283
}
m_SizeDelta
:
{
x
:
1500
,
y
:
300
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!114
&1475588210
...
...
Assets/Scripts/FriendCircle/DanmakuManager.cs
View file @
e9c8adc
...
...
@@ -10,7 +10,6 @@ public class DanmakuManager : MonoBehaviour
public
RectTransform
danmakuPanel
;
// 弹幕pannel
public
GameObject
danmakuPrefab
;
public
float
speed
=
100f
;
// px/sec
public
int
maxLines
=
5
;
// 最多几行
private
int
currentLine
=
0
;
public
void
AddDanmaku
(
string
text
,
int
direction
)
...
...
Assets/Scripts/FriendCircle/MomentItem.cs
View file @
e9c8adc
...
...
@@ -23,6 +23,7 @@ public class MomentItem : MonoBehaviour
public
Transform
imageGrid
;
// 父对象,用于图片缩略图排列
public
GameObject
imagePrefab
;
// 小图预制体
public
Image
bigImageInit
;
//大图初始化
public
Transform
videoGrid
;
// 父对象
public
GameObject
videoPrefab
;
// 视频预制体
...
...
@@ -218,9 +219,12 @@ public class MomentItem : MonoBehaviour
}
Image
img
=
imgObj
.
GetComponent
<
Image
>();
//缩略图和大图不一样,第一次LoadImage只为了预下载大图片
StartCoroutine
(
ImageLoader
.
LoadImage
(
url
,
img
));
//缩略图和大图不一样,第1次LoadImage只为了预下载大图片
StartCoroutine
(
ImageLoader
.
LoadImage
(
AddSuffixBeforeExtension
(
url
,
"-s"
),
img
));
StartCoroutine
(
ImageLoader
.
LoadImage
(
url
,
bigImageInit
));
bigImageInit
.
sprite
=
null
;
Transform
child
=
imgObj
.
transform
.
GetChild
(
0
);
child
.
DOScale
(
1.5f
,
2f
).
SetLoops
(-
1
,
LoopType
.
Yoyo
).
SetEase
(
Ease
.
InOutSine
);
...
...
Assets/Scripts/FriendCircle/MomentManager.cs
View file @
e9c8adc
...
...
@@ -13,8 +13,16 @@ public class MomentManager : MonoBehaviour
void
Start
()
{
TextAsset
jsonText
=
Resources
.
Load
<
TextAsset
>(
"Jsons/friend_data"
);
MomentList
data
=
JsonUtility
.
FromJson
<
MomentList
>(
jsonText
.
text
);
StartCoroutine
(
JsonLoaderManager
.
LoadJson
(
"https://h5.edcc.cn/FriendCircle/json/friend_data.json"
,
"Jsons/friend_data"
,
data
=>
{
Debug
.
Log
(
"最终获取到的 JSON 数据:\n"
+
data
);
InitFriendCircle
(
data
);
}));
}
private
void
InitFriendCircle
(
string
jsonText
)
{
MomentList
data
=
JsonUtility
.
FromJson
<
MomentList
>(
jsonText
);
StartCoroutine
(
ImageLoader
.
LoadImage
(
data
.
cover
,
coverImage
));
StartCoroutine
(
ImageLoader
.
LoadImage
(
data
.
bottom
,
bottomImage
));
...
...
@@ -60,10 +68,9 @@ public class MomentManager : MonoBehaviour
//设置外层ScrollContent层高度
RectTransform
scrollContentRt
=
contentParent
.
parent
.
GetComponent
<
RectTransform
>();
scrollContentRt
.
sizeDelta
=
new
Vector2
(
scrollContentRt
.
sizeDelta
.
x
,
coverHeight
+
momentListHeight
+
bottomHeight
);
scrollContentRt
.
sizeDelta
=
new
Vector2
(
scrollContentRt
.
sizeDelta
.
x
,
coverHeight
+
momentListHeight
+
bottomHeight
);
}
private
void
OnApplicationQuit
()
{
ClearTemporaryCache
();
...
...
Assets/Scripts/Manager/JsonLoaderManager.cs
0 → 100644
View file @
e9c8adc
using
UnityEngine
;
using
UnityEngine.Networking
;
using
System.Collections
;
public
class
JsonLoaderManager
:
Singleton
<
JsonLoaderManager
>
{
public
static
IEnumerator
LoadJson
(
string
remoteUrl
,
string
localUrl
,
System
.
Action
<
string
>
onJsonReady
)
{
string
json
=
null
;
bool
loadedFromWeb
=
false
;
using
(
UnityWebRequest
uwr
=
UnityWebRequest
.
Get
(
remoteUrl
))
{
uwr
.
timeout
=
5
;
// 设置超时时间
yield
return
uwr
.
SendWebRequest
();
if
(
uwr
.
result
==
UnityWebRequest
.
Result
.
Success
)
{
json
=
uwr
.
downloadHandler
.
text
;
loadedFromWeb
=
true
;
Debug
.
Log
(
"✅ 从网络加载成功"
);
}
else
{
Debug
.
LogWarning
(
"⚠️ 网络加载失败,尝试加载本地 JSON:"
+
uwr
.
error
);
}
}
if
(!
loadedFromWeb
)
{
TextAsset
localJson
=
Resources
.
Load
<
TextAsset
>(
localUrl
);
if
(
localJson
!=
null
)
{
json
=
localJson
.
text
;
Debug
.
Log
(
"📁 从本地加载 JSON 成功"
);
}
else
{
Debug
.
LogError
(
"❌ 本地 JSON 不存在!"
);
}
}
onJsonReady
?.
Invoke
(
json
);
}
}
\ No newline at end of file
...
...
Assets/Scripts/Manager/JsonLoaderManager.cs.meta
0 → 100644
View file @
e9c8adc
fileFormatVersion: 2
guid: bdb69f00adae4726a321eebf82ac9b79
timeCreated: 1750834988
\ No newline at end of file
...
...
Assets/resources/Jsons/friend_data.json
View file @
e9c8adc
...
...
@@ -104,7 +104,7 @@
},
{
"username"
:
"祝融号"
,
"avatarUrl"
:
"https://h5.edcc.cn/FriendCircle/image/head
-video
.png"
,
"avatarUrl"
:
"https://h5.edcc.cn/FriendCircle/image/head.png"
,
"text"
:
"忍不住发了好几条朋友圈,你们有看到吗?我还能原地转弯呢。"
,
"from"
:
"来自:火星"
,
"time"
:
"2021年6月11日"
,
...
...
Assets/resources/Prefab/MomentItem.prefab
View file @
e9c8adc
...
...
@@ -1002,6 +1002,7 @@ RectTransform:
-
{
fileID
:
5137047804386020533
}
-
{
fileID
:
3638516876483047710
}
-
{
fileID
:
954098158191977059
}
-
{
fileID
:
2685931706963452372
}
m_Father
:
{
fileID
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
...
...
@@ -1026,6 +1027,7 @@ MonoBehaviour:
contentText
:
{
fileID
:
4430445110796385188
}
imageGrid
:
{
fileID
:
1041260462946003438
}
imagePrefab
:
{
fileID
:
6223382467879224884
,
guid
:
ca325bf8ed54c41479e9c7d18e457e1e
,
type
:
3
}
bigImageInit
:
{
fileID
:
2628341785345091319
}
videoGrid
:
{
fileID
:
8815226098748290278
}
videoPrefab
:
{
fileID
:
646672757163800049
,
guid
:
bd2d13416179847beac4e59cd608113c
,
type
:
3
}
from
:
{
fileID
:
3009102025949839682
}
...
...
@@ -1054,7 +1056,6 @@ MonoBehaviour:
danmakuPanel
:
{
fileID
:
954098158191977059
}
danmakuPrefab
:
{
fileID
:
7870940708185808822
,
guid
:
7b836662dd2b34183bc4e6c9d87f4d26
,
type
:
3
}
speed
:
100
maxLines
:
5
---
!u!222
&8920725948406434288
CanvasRenderer
:
m_ObjectHideFlags
:
0
...
...
@@ -1367,6 +1368,81 @@ MonoBehaviour:
m_FlexibleWidth
:
-1
m_FlexibleHeight
:
-1
m_LayoutPriority
:
1
---
!u!1
&4336015732213254032
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
2685931706963452372
}
-
component
:
{
fileID
:
8974834196693201696
}
-
component
:
{
fileID
:
2628341785345091319
}
m_Layer
:
5
m_Name
:
ImageInit
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
0
---
!u!224
&2685931706963452372
RectTransform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
4336015732213254032
}
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
:
[]
m_Father
:
{
fileID
:
5112969456787946611
}
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
:
100
,
y
:
100
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&8974834196693201696
CanvasRenderer
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
4336015732213254032
}
m_CullTransparentMesh
:
1
---
!u!114
&2628341785345091319
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
4336015732213254032
}
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
:
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
:
1
---
!u!1
&4531716383457095180
GameObject
:
m_ObjectHideFlags
:
0
...
...
Please
register
or
login
to post a comment