Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
T
tuseGameColor
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shujianhe
tuseGameColor
Commits
835ea7bb
Commit
835ea7bb
authored
Aug 10, 2023
by
JiangWanZhi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新点击组的表现
parent
a23aca39
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
171 additions
and
71 deletions
+171
-71
gameAreaGroupItem.prefab
Assets/Resources/perfabs/gameAreaGroupItem.prefab
+1
-1
gameViewLogic.prefab
Assets/Resources/perfabs/gameViewLogic.prefab
+3
-3
gameSceneLogic.cs
Assets/scripts/Views/gameScene/gameSceneLogic.cs
+132
-56
gridView.cs
Assets/scripts/common/gridView.cs
+19
-4
colorItem.cs
Assets/scripts/perfabItems/colorItem.cs
+15
-6
ProjectSettings.asset
ProjectSettings/ProjectSettings.asset
+1
-1
No files found.
Assets/Resources/perfabs/gameAreaGroupItem.prefab
View file @
835ea7bb
...
...
@@ -421,4 +421,4 @@ MonoBehaviour:
idName
:
12
useColor
:
{
r
:
0.9612525
,
g
:
0.9811321
,
b
:
0
,
a
:
1
}
index
:
0
selectLang
:
0.
2
5
selectLang
:
0.
0
5
Assets/Resources/perfabs/gameViewLogic.prefab
View file @
835ea7bb
...
...
@@ -2971,11 +2971,11 @@ MonoBehaviour:
m_Bottom
:
0
m_ChildAlignment
:
0
m_StartCorner
:
0
m_StartAxis
:
0
m_StartAxis
:
1
m_CellSize
:
{
x
:
120
,
y
:
120
}
m_Spacing
:
{
x
:
0
,
y
:
0
}
m_Constraint
:
0
m_ConstraintCount
:
2
m_Constraint
:
2
m_ConstraintCount
:
1
---
!u!1
&6769909122946713645
GameObject
:
m_ObjectHideFlags
:
0
...
...
Assets/scripts/Views/gameScene/gameSceneLogic.cs
View file @
835ea7bb
...
...
@@ -11,6 +11,7 @@ using UnityEngine.Networking;
using
UnityEngine.SceneManagement
;
using
UnityEngine.UI
;
using
static
gameSceneLogic
;
using
System.Linq
;
class
DebugNetHotData
{
...
...
@@ -37,6 +38,8 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
public
float
tempValue1
=
130f
;
public
float
tempValue2
=
130f
;
private
float
tempValue3
=
5f
;
private
int
DestoryIndex
=
-
1
;
Dictionary
<
string
,
EventChildItemBack
>
childEventHandlers
=
new
Dictionary
<
string
,
EventChildItemBack
>();
void
onEvent
(
string
name
,
EventChildItemBack
func
)
{
...
...
@@ -65,7 +68,7 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
onEvent
(
"gameViewOnInitEnd"
,
this
.
onEvent_gameViewOnInitEnd_Handler
);
//游戏图片初始化完成
onEvent
(
"gameClickPos"
,
this
.
onEvent_gameClickPos_Handler
);
//灰色的点击回掉
onEvent
(
"inGameLoadingBarEnd"
,
this
.
onEvent_inGameLoadingBarEnd_Handler
);
//进入游戏的进度条加载完成
onEvent
(
"showAreaEventOk"
,
onSelectAreaEvent
);
//当前组的
都涂完了
onEvent
(
"showAreaEventOk"
,
onSelectAreaEvent
);
//当前组的
涂了一个
onEvent
(
"initViewShowData"
,
onInitViewShowDataEvent
);
//初始化数据完成
onEvent
(
"changeGameUserProgress"
,
onChangeGameUserProgressEvent
);
//整体进度改变
onEvent
(
"tipShowPosMaxScale"
,
onTipShowPosMaxScaleEvent
);
// 点提示,当前组随机一个没涂的位置放大
...
...
@@ -142,6 +145,10 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
void
Update
()
{
ActionManages
.
update
();
if
(
Input
.
GetKeyDown
(
KeyCode
.
A
))
{
SubAGorpItem
(
1
);
}
}
//创建列表item的时候回调并设置、初始化和刷新
...
...
@@ -155,6 +162,7 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
item
.
IsSelect
=
isSelect
;
item
.
index
=
idx
;
item
.
IdName
=
(
group
.
gid
).
ToString
();
item
.
GID
=
group
.
gid
;
item
.
UseColor
=
group
.
rgb
;
item
.
NowProgress
=
group
.
Jindu
;
...
...
@@ -187,30 +195,49 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
//切换组的id
private
void
onEvent_switchGameAreaGroupId_Handler
(
List
<
UnityEngine
.
Object
>
uobjects
,
List
<
System
.
Object
>
objects
)
{
Vector3
vector3
;
Quaternion
quaternion
;
var
gridViewList
=
areaGroupList
.
GetComponent
<
gameSceneAreaGroupHandler
>();
colorItem
item
=
null
;
var
maingameView
=
gameShowView
.
GetComponent
<
mainGameView
>();
if
(
DestoryIndex
!=
-
1
)
{
oldindex
=
0
;
if
(
DestoryIndex
==
groupInfos
.
Count
)
{
nowidx
=
DestoryIndex
-
1
;
}
else
{
nowidx
=
(
int
)
objects
[
0
]
-
1
;
}
DestoryIndex
=
-
1
;
var
ite
=
groupInfos
[
nowidx
].
gid
;
item
=
gridViewList
.
GetObjByGID
(
ite
).
GetComponent
<
colorItem
>();
item
.
IsSelect
=
true
;
item
.
switchPlayAnimation
();
maingameView
.
switchShowAreaGroup
((
short
)
ite
,
(
int
id
,
bool
isOk
)
=>
{
if
(
isOk
)
{
transform
.
Find
(
"areaGroupList/tipSelectGroup"
).
gameObject
.
SetActive
(
false
);
}
});
return
;
}
if
(
nowidx
>=
0
)
{
item
=
gridViewList
.
getObjectById
(
nowidx
).
GetComponent
<
colorItem
>();
item
.
IsSelect
=
false
;
item
.
transform
.
GetLocalPositionAndRotation
(
out
vector3
,
out
quaternion
);
//vector3.y = vector3.y - 14;
item
.
transform
.
SetLocalPositionAndRotation
(
vector3
,
quaternion
);
item
.
updateOneUI
();
item
.
switchPlayAnimation
();
}
var
maingameView
=
gameShowView
.
GetComponent
<
mainGameView
>();
int
idx
=
(
int
)
objects
[
0
];
oldindex
=
nowidx
;
nowidx
=
idx
;
var
nowSelectGroupId
=
groupInfos
[
idx
].
gid
;
item
=
gridViewList
.
getObjectById
(
idx
).
GetComponent
<
colorItem
>();
item
.
IsSelect
=
true
;
item
.
transform
.
GetLocalPositionAndRotation
(
out
vector3
,
out
quaternion
);
//vector3.y = vector3.y + 14;
item
.
transform
.
SetLocalPositionAndRotation
(
vector3
,
quaternion
);
item
.
switchPlayAnimation
();
maingameView
.
switchShowAreaGroup
((
short
)
nowSelectGroupId
,
(
int
id
,
bool
isOk
)
=>
{
if
(
isOk
)
...
...
@@ -262,18 +289,6 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
}
IEnumerator
DelayToRefreshGrid
()
{
yield
return
new
WaitForSeconds
(
0.6f
);
if
(
areaGroupList
.
transform
.
GetComponent
<
ScrollRect
>().
content
.
GetComponent
<
GridLayoutGroup
>().
enabled
)
{
LayoutRebuilder
.
ForceRebuildLayoutImmediate
(
areaGroupList
.
transform
.
GetComponent
<
ScrollRect
>().
content
.
GetComponent
<
RectTransform
>());
}
else
{
areaGroupList
.
transform
.
GetComponent
<
ScrollRect
>().
content
.
GetComponent
<
GridLayoutGroup
>().
enabled
=
true
;
}
}
//游戏图片初始化完成
private
void
onEvent_gameViewOnInitEnd_Handler
(
List
<
UnityEngine
.
Object
>
uobjects
,
List
<
System
.
Object
>
objects
)
{
...
...
@@ -639,7 +654,7 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
// }, 10);
}
//当前组的
都涂完了
//当前组的
色块涂一个就会回调过来
void
onSelectAreaEvent
(
List
<
UnityEngine
.
Object
>
uobjects
,
List
<
System
.
Object
>
objects
)
{
gameAreaItem
gameArea
=
(
gameAreaItem
)
objects
[
0
];
...
...
@@ -647,44 +662,52 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
short
y
=
(
short
)
objects
[
2
];
short
nowAidByGid
=
gameArea
.
gid
;
if
(
groupInfos
.
Count
.
Equals
(
0
)
||
nowidx
<
0
)
return
;
if
(
groupInfos
[
nowidx
].
gid
.
Equals
(
nowAidByGid
)
==
false
)
return
;
var
groupdinfo
=
groupInfos
.
FirstOrDefault
(
a
=>
a
.
gid
==
nowAidByGid
);
if
(
groupdinfo
==
null
)
return
;
if
(
groupInfos
!=
null
)
{
int
operId
=
-
1
;
for
(
int
i
=
0
;
i
<
groupInfos
.
Count
;
i
++)
{
if
(
groupInfos
[
i
].
gid
.
Equals
(
nowAidByGid
))
{
operId
=
i
;
break
;
}
}
if
(
operId
.
Equals
(-
1
))
return
;
var
gridViewList
=
areaGroupList
.
GetComponent
<
gameSceneAreaGroupHandler
>();
colorItem
item
=
null
;
group
Infos
[
operId
]
.
show
++;
if
(
group
Infos
[
operId
].
show
.
Equals
(
groupInfos
[
operId
].
size
))
//直接移除
group
dinfo
.
show
++;
if
(
group
dinfo
.
show
.
Equals
(
groupdinfo
.
size
))
//直接移除,这里涂了的区域和总的区域一样了
{
if
(
operId
==
groupInfos
.
Count
-
1
)
if
(
groupdinfo
.
gid
==
nowAidByGid
)
{
groupInfos
.
RemoveAt
(
operId
);
operId
--;
}
else
groupInfos
.
RemoveAt
(
operId
);
groupInfos
.
Remove
(
groupdinfo
);
}
//切换组
if
(
autoSwitchGroup
==
false
)
nowidx
=
-
1
;
Vector2
size
=
gridViewList
.
getCellSize
();
gradViewBack
gradView
=
(
GameObject
gobject
,
int
idx
,
ListViewBackTypeEnum
lvbType
)
=>
{
if
(
lvbType
==
ListViewBackTypeEnum
.
create
)
{
var
gagi
=
gobject
.
GetComponent
<
colorItem
>();
if
(
gagi
==
null
)
{
Debug
.
Log
(
"gagi == null"
);
}
gagi
.
resetSize
(
size
.
x
,
size
.
y
);
}
this
.
onUpdateGroupGridHandler
(
gobject
,
idx
,
lvbType
,
groupInfos
[
idx
],
false
);
};
gridViewList
.
setDataNoGrid
(
groupInfos
.
Count
,
tempValue1
,
tempValue2
,
tempValue3
,
gradView
,
false
);
//if (autoSwitchGroup == false) nowidx = -1;
//Vector2 size = gridViewList.getCellSize();
//gradViewBack gradView = (GameObject gobject, int idx, ListViewBackTypeEnum lvbType) =>
//{
// if (lvbType == ListViewBackTypeEnum.create)
// {
// var gagi = gobject.GetComponent<colorItem>();
// if (gagi == null)
// {
// Debug.Log("gagi == null");
// }
// gagi.resetSize(size.x, size.y);
// }
// this.onUpdateGroupGridHandler(gobject, idx, lvbType, groupInfos[idx], false);
//};
//gridViewList.setDataNoGrid(groupInfos.Count, tempValue1, tempValue2, tempValue3, gradView, false);
if
(
groupInfos
.
Count
<=
1
)
{
Debug
.
LogError
(
$"没有组了,涂完了"
);
}
else
{
SubAGorpItem
(
nowidx
);
}
//gridViewList.setData(groupInfos.Count, gradView,false);
//震动
if
(
vibration
)
...
...
@@ -704,11 +727,64 @@ public class gameSceneLogic : MonoBehaviour, IEventHandler
}
else
{
item
=
gridViewList
.
getObjectById
(
nowidx
).
GetComponent
<
colorItem
>();
item
.
NowProgress
=
groupInfos
[
nowidx
].
Jindu
;
//item = gridViewList.getObjectById(nowidx).GetComponent<colorItem>();
item
=
gridViewList
.
GetObjByGID
(
nowAidByGid
).
GetComponent
<
colorItem
>();
var
gdata
=
groupInfos
.
FirstOrDefault
(
a
=>
a
.
gid
==
nowAidByGid
);
item
.
NowProgress
=
gdata
.
Jindu
;
}
}
}
private
void
SubAGorpItem
(
int
index
)
//去掉一个组的item的动画效果
{
ScrollRect
Rect
=
areaGroupList
.
transform
.
GetComponent
<
ScrollRect
>();
Transform
item
=
Rect
.
content
.
GetChild
(
index
);
DestoryIndex
=
index
;
item
.
DOScale
(
Vector3
.
zero
,
0.5f
).
onComplete
=
()
=>
{
Destroy
(
item
.
gameObject
);
if
(
Rect
.
content
.
childCount
-
1
>
index
)
{
Rect
.
content
.
sizeDelta
=
new
Vector2
(
Rect
.
content
.
sizeDelta
.
x
-
120
,
Rect
.
content
.
sizeDelta
.
y
);
}
for
(
int
i
=
0
;
i
<
Rect
.
content
.
childCount
;
i
++)
{
if
(
i
>
index
)
{
Rect
.
content
.
GetChild
(
i
).
GetComponent
<
colorItem
>().
index
=
i
-
1
;
Rect
.
content
.
GetChild
(
i
).
name
=
Rect
.
content
.
GetChild
(
i
).
name
.
Replace
(
$"
{
i
}
"
,
$"
{
i
-
1
}
"
);
}
}
};
if
(
Rect
.
content
.
childCount
-
1
==
index
&&
Rect
.
content
.
localPosition
.
x
<
-
120
)
//最右边的那个
{
Rect
.
content
.
DOLocalMoveX
(
Rect
.
content
.
localPosition
.
x
+
120
,
0.5f
).
onComplete
=
()
=>
{
Rect
.
content
.
sizeDelta
=
new
Vector2
(
Rect
.
content
.
sizeDelta
.
x
-
120
,
Rect
.
content
.
sizeDelta
.
y
);
};
}
//else if (-Rect.content.localPosition.x > Rect.content.sizeDelta.x - 120)
//{
// Rect.content.DOLocalMoveX(Rect.content.localPosition.x - 120, 0.5f);
//}
else
{
for
(
int
i
=
0
;
i
<
Rect
.
content
.
childCount
;
i
++)
{
if
(
i
>
index
)
{
Rect
.
content
.
GetChild
(
i
).
DOLocalMoveX
(
Rect
.
content
.
GetChild
(
i
).
localPosition
.
x
-
120
,
0.6f
);
}
}
}
if
(
index
<
Rect
.
content
.
childCount
-
1
)
Rect
.
content
.
GetChild
(
index
+
1
).
GetComponent
<
colorItem
>().
onClickAreaGroup
();
else
if
(
index
>
0
)
{
Rect
.
content
.
GetChild
(
index
-
1
).
GetComponent
<
colorItem
>().
onClickAreaGroup
();
}
}
public
void
onRemoveGroupByGidEvent
(
List
<
UnityEngine
.
Object
>
uobjects
,
List
<
System
.
Object
>
objects
)
{
short
gid
=
(
short
)
objects
[
0
];
...
...
Assets/scripts/common/gridView.cs
View file @
835ea7bb
using
ICSharpCode.SharpZipLib
;
using
System
;
using
System.Collections
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Runtime.CompilerServices
;
using
Unity.VisualScripting
;
using
UnityEngine
;
using
UnityEngine.UI
;
using
static
UnityEngine
.
Rendering
.
DebugUI
.
Table
;
using
Debug
=
UnityEngine
.
Debug
;
public
class
gridView
:
MonoBehaviour
{
...
...
@@ -70,6 +73,19 @@ public class gridView : MonoBehaviour
}
return
transfromitem
.
gameObject
;
}
//根据组的ID获取列表对应的物体
public
Transform
GetObjByGID
(
int
Gid
)
{
Transform
parent
=
transform
.
GetComponent
<
ScrollRect
>().
content
;
for
(
int
i
=
0
;
i
<
parent
.
childCount
;
i
++)
{
var
item
=
parent
.
GetChild
(
i
).
GetComponent
<
colorItem
>();
if
(
item
.
GID
==
Gid
)
return
item
.
transform
;
}
return
null
;
}
virtual
public
Vector2
getOffset
()
{
var
gameObjectContext
=
GetComponent
<
ScrollRect
>();
...
...
@@ -170,9 +186,8 @@ public class gridView : MonoBehaviour
{
w
=
width
-
w
;
}
rectTransform
.
sizeDelta
=
new
Vector2
(
w
,
rectTransform
.
sizeDelta
.
y
);
rectTransform
.
sizeDelta
=
new
Vector2
(
w
,
rectTransform
.
sizeDelta
.
y
);
}
Vector3
vector3
=
new
Vector3
();
utilsTools
.
setGDataByKey
(
"listViewTempCellSize"
,
new
Vector2
(
gridLayout
.
cellSize
.
x
,
gridLayout
.
cellSize
.
y
));
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
...
...
@@ -285,7 +300,7 @@ public class gridView : MonoBehaviour
startY
=
0
-
h
/
2
+
heightItem
/
2
-
(
heightItem
/
2
+
interval
/
2
);
vector3
.
x
=
0
-
rectTransform
.
sizeDelta
.
x
/
2
-
offset1
;
float
spacingLen
=
interval
*
(
size
-
1
);
float
height
=
spacingLen
+
coutPixel
;
float
height
=
coutPixel
;
if
(
height
>
h
)
{
h
=
height
;
...
...
@@ -298,7 +313,7 @@ public class gridView : MonoBehaviour
vector3
.
y
=
0
-
rectTransform
.
sizeDelta
.
y
/
2
-
offset1
;
//0 - rectTransform.sizeDelta.y / 2 - offset1;
startX
=
0
-
w
/
2
+
widthItem
/
2
-
(
widthItem
/
2
+
interval
/
2
);
float
spacingLen
=
interval
*
(
size
-
1
);
float
width
=
spacingLen
+
coutPixel
;
float
width
=
coutPixel
;
if
(
width
>
w
)
{
w
=
width
-
w
;
...
...
Assets/scripts/perfabItems/colorItem.cs
View file @
835ea7bb
...
...
@@ -19,25 +19,33 @@ public class colorItem : MonoBehaviour
private
Color
useColor
=
new
Color
();
public
int
index
=
0
;
public
float
selectLang
=
0.05f
;
private
int
gID
;
public
int
GID
//组ID
{
get
{
return
gID
;
}
set
{
gID
=
value
;
}
}
private
gameGroupEffect
effectImg
=
null
;
private
Vector3
normalScale
=
Vector3
.
one
;
private
List
<
Vector2
>
initScaleSize
=
new
List
<
Vector2
>();
private
float
offset
=
0
;
private
Vector3
LocalPos_Root
;
//记录实例化出来后在本地的原始坐标
void
initMember
()
{
if
(
effectImg
==
null
)
if
(
effectImg
==
null
)
{
Vector2
listViewTempCellSize
=
utilsTools
.
getGDataByKey
<
Vector2
>(
"listViewTempCellSize"
,
Vector2
.
zero
);
Vector2
listViewContextCellSize
=
utilsTools
.
getGDataByKey
<
Vector2
>(
"listViewContextCellSize"
,
Vector2
.
zero
);
offset
=
(
listViewContextCellSize
.
y
-
listViewTempCellSize
.
y
)
/
2f
;
offset
=
(
listViewContextCellSize
.
y
-
listViewTempCellSize
.
y
)
/
2f
;
effectImg
=
transform
.
Find
(
"circle"
).
GetComponent
<
gameGroupEffect
>();
normalScale
=
transform
.
localScale
*
0.85f
;
normalScale
=
transform
.
localScale
*
0.85f
;
transform
.
localScale
=
normalScale
;
}
transform
.
localScale
=
Vector3
.
one
*
0.8f
;
}
public
bool
IsSelect
{
...
...
@@ -149,7 +157,8 @@ public class colorItem : MonoBehaviour
}
nowProgress
=
value
;
bool
isend
=
this
.
isFinish
();
effectImg
.
Height
=
1.0f
-
nowProgress
;
//effectImg.Height = 1.0f - nowProgress;
effectImg
.
Height
=
nowProgress
;
transform
.
Find
(
"idname"
).
gameObject
.
SetActive
(!
isend
);
if
(
isend
)
{
...
...
ProjectSettings/ProjectSettings.asset
View file @
835ea7bb
...
...
@@ -784,7 +784,7 @@ PlayerSettings:
embeddedLinuxEnableGamepadInput
:
1
hmiLogStartupTiming
:
0
hmiCpuConfiguration
:
apiCompatibilityLevel
:
6
apiCompatibilityLevel
:
3
activeInputHandler
:
0
windowsGamepadBackendHint
:
0
cloudProjectId
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment