设置页、弹窗逻辑、跳转逻辑
视频播放逻辑优化
This commit is contained in:
@@ -720,7 +720,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": -370.278,
|
||||
"y": -470.13199999999995,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -954,7 +954,7 @@
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 730.722,
|
||||
"_bottom": -489.13199999999995,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
@@ -1033,8 +1033,8 @@
|
||||
"__prefab": null,
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 2340
|
||||
"width": 100,
|
||||
"height": 100
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@@ -1053,12 +1053,12 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_alignFlags": 45,
|
||||
"_alignFlags": 18,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_left": 490,
|
||||
"_right": 490,
|
||||
"_top": 1120,
|
||||
"_bottom": 1120,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
|
||||
+41
-259
@@ -23,7 +23,7 @@
|
||||
"_active": true,
|
||||
"_components": [],
|
||||
"_prefab": {
|
||||
"__id__": 32
|
||||
"__id__": 26
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -54,7 +54,7 @@
|
||||
},
|
||||
"autoReleaseAssets": false,
|
||||
"_globals": {
|
||||
"__id__": 33
|
||||
"__id__": 27
|
||||
},
|
||||
"_id": "1a23cd3e-e487-4fd1-a415-346c2087464d"
|
||||
},
|
||||
@@ -74,25 +74,25 @@
|
||||
"__id__": 5
|
||||
},
|
||||
{
|
||||
"__id__": 22
|
||||
"__id__": 16
|
||||
},
|
||||
{
|
||||
"__id__": 25
|
||||
"__id__": 19
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 28
|
||||
"__id__": 22
|
||||
},
|
||||
{
|
||||
"__id__": 29
|
||||
"__id__": 23
|
||||
},
|
||||
{
|
||||
"__id__": 30
|
||||
"__id__": 24
|
||||
},
|
||||
{
|
||||
"__id__": 31
|
||||
"__id__": 25
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@@ -227,27 +227,21 @@
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 6
|
||||
},
|
||||
{
|
||||
"__id__": 9
|
||||
},
|
||||
{
|
||||
"__id__": 12
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 18
|
||||
"__id__": 12
|
||||
},
|
||||
{
|
||||
"__id__": 19
|
||||
"__id__": 13
|
||||
},
|
||||
{
|
||||
"__id__": 20
|
||||
"__id__": 14
|
||||
},
|
||||
{
|
||||
"__id__": 21
|
||||
"__id__": 15
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@@ -282,219 +276,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "sceneBg",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 5
|
||||
},
|
||||
"_children": [],
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 7
|
||||
},
|
||||
{
|
||||
"__id__": 8
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 33554432,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": "ce9RkKevxMhIxLKDH+iL0c"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 6
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 996,
|
||||
"height": 1280
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_id": "caAAHDheNGwLaPCNNzBaCH"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Sprite",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 6
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": null,
|
||||
"_type": 0,
|
||||
"_fillType": 0,
|
||||
"_sizeMode": 1,
|
||||
"_fillCenter": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"_fillStart": 0,
|
||||
"_fillRange": 0,
|
||||
"_isTrimmedMode": true,
|
||||
"_useGrayscale": false,
|
||||
"_atlas": null,
|
||||
"_id": "a2SQxTrmBC9qNsrxvj92xM"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "sceneRole",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 5
|
||||
},
|
||||
"_children": [],
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 10
|
||||
},
|
||||
{
|
||||
"__id__": 11
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": -640,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 33554432,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": "bdgqigDdFBJY09gKC16/wF"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 9
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 910,
|
||||
"height": 1170
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0
|
||||
},
|
||||
"_id": "4dDIFYm3JBNrMCoh2v53+x"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Sprite",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 9
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": null,
|
||||
"_type": 0,
|
||||
"_fillType": 0,
|
||||
"_sizeMode": 0,
|
||||
"_fillCenter": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"_fillStart": 0,
|
||||
"_fillRange": 0,
|
||||
"_isTrimmedMode": true,
|
||||
"_useGrayscale": false,
|
||||
"_atlas": null,
|
||||
"_id": "femSQ6kBFOf6AE358oYBOy"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "videoRole",
|
||||
"_name": "videoPlayer",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
@@ -504,16 +286,16 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 13
|
||||
"__id__": 7
|
||||
},
|
||||
{
|
||||
"__id__": 14
|
||||
"__id__": 8
|
||||
},
|
||||
{
|
||||
"__id__": 15
|
||||
"__id__": 9
|
||||
},
|
||||
{
|
||||
"__id__": 17
|
||||
"__id__": 11
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@@ -552,7 +334,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 12
|
||||
"__id__": 6
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -574,7 +356,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 12
|
||||
"__id__": 6
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -604,7 +386,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 12
|
||||
"__id__": 6
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -621,7 +403,7 @@
|
||||
"_keepAspectRatio": true,
|
||||
"videoPlayerEvent": [
|
||||
{
|
||||
"__id__": 16
|
||||
"__id__": 10
|
||||
}
|
||||
],
|
||||
"_id": "4eO0OJtSRAuJxLXluDHDbn"
|
||||
@@ -629,7 +411,7 @@
|
||||
{
|
||||
"__type__": "cc.ClickEvent",
|
||||
"target": {
|
||||
"__id__": 12
|
||||
"__id__": 6
|
||||
},
|
||||
"component": "",
|
||||
"_componentId": "72cc36txkdCsYwmehDVnUGe",
|
||||
@@ -642,7 +424,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 12
|
||||
"__id__": 6
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -738,10 +520,10 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 23
|
||||
"__id__": 17
|
||||
},
|
||||
{
|
||||
"__id__": 24
|
||||
"__id__": 18
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@@ -780,7 +562,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 22
|
||||
"__id__": 16
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -802,7 +584,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 22
|
||||
"__id__": 16
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -838,10 +620,10 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 26
|
||||
"__id__": 20
|
||||
},
|
||||
{
|
||||
"__id__": 27
|
||||
"__id__": 21
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@@ -880,7 +662,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 25
|
||||
"__id__": 19
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -902,7 +684,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 25
|
||||
"__id__": 19
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@@ -1005,10 +787,10 @@
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"UIRoot": {
|
||||
"__id__": 22
|
||||
"__id__": 16
|
||||
},
|
||||
"UILayerMod": {
|
||||
"__id__": 25
|
||||
"__id__": 19
|
||||
},
|
||||
"MainCamera": {
|
||||
"__id__": 4
|
||||
@@ -1026,28 +808,28 @@
|
||||
{
|
||||
"__type__": "cc.SceneGlobals",
|
||||
"ambient": {
|
||||
"__id__": 34
|
||||
"__id__": 28
|
||||
},
|
||||
"shadows": {
|
||||
"__id__": 35
|
||||
"__id__": 29
|
||||
},
|
||||
"_skybox": {
|
||||
"__id__": 36
|
||||
"__id__": 30
|
||||
},
|
||||
"fog": {
|
||||
"__id__": 37
|
||||
"__id__": 31
|
||||
},
|
||||
"octree": {
|
||||
"__id__": 38
|
||||
"__id__": 32
|
||||
},
|
||||
"skin": {
|
||||
"__id__": 39
|
||||
"__id__": 33
|
||||
},
|
||||
"lightProbeInfo": {
|
||||
"__id__": 40
|
||||
"__id__": 34
|
||||
},
|
||||
"postSettings": {
|
||||
"__id__": 41
|
||||
"__id__": 35
|
||||
},
|
||||
"bakedWithStationaryMainLight": false,
|
||||
"bakedWithHighpLightmap": false
|
||||
|
||||
@@ -1,269 +1,357 @@
|
||||
import { _decorator, instantiate, isValid, Label, Node,VideoClip, Sprite, UITransform, Vec3, VideoPlayer, view } from 'cc';
|
||||
import Utils from '../../Main/Common/Utils';
|
||||
import { InnerMsgCode } from '../../Main/Config/InnerMsgCode';
|
||||
import li_BaseView from '../../Main/Common/li_BaseView';
|
||||
import ResManager from '../../Main/Manager/ResManager';
|
||||
import GlobalValue, { VideoRoleType } from '../../Main/Common/GlobalValue';
|
||||
import { SDKManager } from '../../Main/Channel/SDKManager';
|
||||
import { BgVideo } from '../../Main/Channel/BgVideo';
|
||||
import {
|
||||
_decorator,
|
||||
isValid,
|
||||
Node,
|
||||
VideoClip,
|
||||
UITransform,
|
||||
Vec3,
|
||||
VideoPlayer,
|
||||
Size,
|
||||
} from "cc";
|
||||
import Utils from "../../Main/Common/Utils";
|
||||
import li_BaseView from "../../Main/Common/li_BaseView";
|
||||
import ResManager from "../../Main/Manager/ResManager";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
//场景背景层 - 视频模式
|
||||
@ccclass('SceneBgVideoLayer')
|
||||
@ccclass("SceneBgVideoLayer")
|
||||
export class SceneBgVideoLayer extends li_BaseView {
|
||||
private _nodeTab: any = {};
|
||||
private _data;
|
||||
private _nodeTab: any = {};
|
||||
private _data;
|
||||
|
||||
static handle: SceneBgVideoLayer | null = null;
|
||||
static handle: SceneBgVideoLayer | null = null;
|
||||
|
||||
private remoteLoopPath: string = "" //远程循环路径
|
||||
private curVideoType: VideoRoleType = VideoRoleType.None;
|
||||
private sceneBg: Sprite = null;
|
||||
private videoInited: boolean = false; //视频是否初始化完成
|
||||
private vpWait: BgVideo | null = null; //播表情视频时暂停的背景视频
|
||||
private emoReady: BgVideo | null = null; //已准备好播放的表情
|
||||
private videoPlayer: VideoPlayer = null;
|
||||
private isPlaying: boolean = false;
|
||||
private currentVideoData: any = null;
|
||||
|
||||
private videoPlayer: VideoPlayer = null;
|
||||
//----重写父类接口---------------------------------------
|
||||
onLoadCT() {
|
||||
Utils.parseNode(this.node, this._nodeTab);
|
||||
this.videoPlayer = this._nodeTab.videoPlayer.getComponent(VideoPlayer);
|
||||
if (!this.videoPlayer) {
|
||||
console.error("SceneBgVideoLayer: video节点未找到或没有VideoPlayer组件");
|
||||
}
|
||||
this.initVideoEvents();
|
||||
SceneBgVideoLayer.handle = this;
|
||||
}
|
||||
openUIDataCT(data: any): void {
|
||||
this._data = data;
|
||||
}
|
||||
|
||||
/**获取videoplayer副本 */
|
||||
getVideoClone() {
|
||||
let vp = instantiate(this._nodeTab.videoRole)
|
||||
this.node.addChild(vp)
|
||||
let bv = vp.getComponent(BgVideo)!
|
||||
return bv
|
||||
/**初始化视频事件监听 */
|
||||
private initVideoEvents() {
|
||||
if (!this.videoPlayer) return;
|
||||
|
||||
// 移除之前的事件监听器,避免重复绑定
|
||||
this.videoPlayer.node.off(
|
||||
VideoPlayer.EventType.READY_TO_PLAY,
|
||||
this.onVideoReadyToPlay,
|
||||
this
|
||||
);
|
||||
//this.videoPlayer.node.off(VideoPlayer.EventType.VIDEO_PLAYER_EVENT, this.onVideoEvent, this);
|
||||
|
||||
// 添加新的事件监听
|
||||
this.videoPlayer.node.on(
|
||||
VideoPlayer.EventType.READY_TO_PLAY,
|
||||
this.onVideoReadyToPlay,
|
||||
this
|
||||
);
|
||||
// this.videoPlayer.node.on(VideoPlayer.EventType.VIDEO_PLAYER_EVENT, this.onVideoEvent, this);
|
||||
}
|
||||
|
||||
//================== 公共 API 方法 ==================
|
||||
|
||||
/**
|
||||
* 播放视频
|
||||
* @param path 视频路径
|
||||
* @param loop 是否循环播放
|
||||
*/
|
||||
playVideo(path: string, loop: boolean = false) {
|
||||
if (!this.videoPlayer) {
|
||||
console.error("SceneBgVideoLayer: VideoPlayer未初始化");
|
||||
return;
|
||||
}
|
||||
|
||||
//----重写父类接口---------------------------------------
|
||||
onLoadCT() {
|
||||
this.registerListenner();
|
||||
Utils.parseNode(this.node, this._nodeTab)
|
||||
this.sceneBg = this._nodeTab.sceneBg.getComponent(Sprite)!;
|
||||
this.videoPlayer = this._nodeTab.videoRole.getComponent(VideoPlayer);
|
||||
if (GlobalValue.NpcVideoMod) {
|
||||
this.setVideoInited(true, true)
|
||||
// 加载本地视频资源
|
||||
ResManager.I.changeBundleVideo(
|
||||
this.videoPlayer,
|
||||
path,
|
||||
"Girls",
|
||||
(res: VideoClip) => {
|
||||
this.videoPlayer.loop = loop;
|
||||
this.videoPlayer.play();
|
||||
this.isPlaying = true;
|
||||
console.log(`SceneBgVideoLayer: 播放视频 ${path}, 循环: ${loop}`);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换视频(停止当前视频并播放新视频)
|
||||
* @param path 视频路径
|
||||
* @param loop 是否循环播放
|
||||
*/
|
||||
switchVideo(path: string, loop: boolean = false) {
|
||||
this.stop();
|
||||
this.playVideo(path, loop);
|
||||
}
|
||||
|
||||
/**
|
||||
* 暂停视频
|
||||
*/
|
||||
pause() {
|
||||
if (this.videoPlayer && this.isPlaying) {
|
||||
this.videoPlayer.pause();
|
||||
console.log("SceneBgVideoLayer: 暂停视频");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 继续播放视频
|
||||
*/
|
||||
resume() {
|
||||
if (this.videoPlayer && !this.videoPlayer.isPlaying) {
|
||||
this.videoPlayer.play();
|
||||
console.log("SceneBgVideoLayer: 继续播放视频");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 停止视频
|
||||
*/
|
||||
stop() {
|
||||
if (this.videoPlayer) {
|
||||
this.videoPlayer.stop();
|
||||
this.isPlaying = false;
|
||||
console.log("SceneBgVideoLayer: 停止视频");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置视频尺寸
|
||||
* @param width 宽度
|
||||
* @param height 高度
|
||||
*/
|
||||
setVideoSize(width: number, height: number) {
|
||||
if (this.videoPlayer) {
|
||||
const uiTransform = this.videoPlayer.node.getComponent(UITransform);
|
||||
if (uiTransform) {
|
||||
uiTransform.setContentSize(width, height);
|
||||
console.log(`SceneBgVideoLayer: 设置视频尺寸 ${width}x${height}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置视频位置
|
||||
* @param x X坐标
|
||||
* @param y Y坐标
|
||||
* @param z Z坐标
|
||||
*/
|
||||
setVideoPosition(x: number, y: number, z: number = 0) {
|
||||
if (this.videoPlayer) {
|
||||
this.videoPlayer.node.setPosition(x, y, z);
|
||||
console.log(`SceneBgVideoLayer: 设置视频位置 (${x}, ${y}, ${z})`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置视频世界位置
|
||||
* @param x X坐标
|
||||
* @param y Y坐标
|
||||
* @param z Z坐标
|
||||
*/
|
||||
setVideoWorldPosition(x: number, y: number, z: number = 0) {
|
||||
if (this.videoPlayer) {
|
||||
this.videoPlayer.node.setWorldPosition(x, y, z);
|
||||
console.log(`SceneBgVideoLayer: 设置视频世界位置 (${x}, ${y}, ${z})`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置视频锚点
|
||||
* @param anchorX X轴锚点 (0-1)
|
||||
* @param anchorY Y轴锚点 (0-1)
|
||||
*/
|
||||
setVideoAnchor(anchorX: number, anchorY: number) {
|
||||
if (this.videoPlayer) {
|
||||
const uiTransform = this.videoPlayer.node.getComponent(UITransform);
|
||||
if (uiTransform) {
|
||||
uiTransform.setAnchorPoint(anchorX, anchorY);
|
||||
console.log(`SceneBgVideoLayer: 设置视频锚点 (${anchorX}, ${anchorY})`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置视频缩放
|
||||
* @param scale 缩放值(数字或Vec3)
|
||||
*/
|
||||
setVideoScale(scale: number | Vec3) {
|
||||
if (this.videoPlayer) {
|
||||
if (typeof scale === "number") {
|
||||
this.videoPlayer.node.setScale(new Vec3(scale, scale, 1));
|
||||
console.log(`SceneBgVideoLayer: 设置视频缩放 ${scale}`);
|
||||
} else {
|
||||
this.videoPlayer.node.setScale(scale);
|
||||
console.log(
|
||||
`SceneBgVideoLayer: 设置视频缩放 (${scale.x}, ${scale.y}, ${scale.z})`
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 调整视频以填满指定区域
|
||||
* @param targetSize 目标尺寸
|
||||
* @param position 可选的位置
|
||||
*/
|
||||
adjustToFillArea(targetSize: Size, position?: Vec3) {
|
||||
if (!this.videoPlayer) return;
|
||||
|
||||
const tryAdjust = () => {
|
||||
const uiTransform = this.videoPlayer.node.getComponent(UITransform);
|
||||
if (!uiTransform) return false;
|
||||
|
||||
const videoSize = uiTransform.contentSize;
|
||||
|
||||
if (videoSize.width > 0 && videoSize.height > 0) {
|
||||
// 计算宽度和高度的缩放比例
|
||||
const scaleX = targetSize.width / videoSize.width;
|
||||
const scaleY = targetSize.height / videoSize.height;
|
||||
|
||||
// 选择较大的缩放比例以填满整个区域
|
||||
const scale = Math.max(scaleX, scaleY);
|
||||
|
||||
this.videoPlayer.node.setScale(new Vec3(scale, scale, 1));
|
||||
|
||||
if (position) {
|
||||
this.videoPlayer.node.setPosition(position);
|
||||
}
|
||||
SceneBgVideoLayer.handle = this;
|
||||
}
|
||||
openUIDataCT(data: any): void {
|
||||
this._data = data
|
||||
}
|
||||
|
||||
console.log(`SceneBgVideoLayer: 自适应填充区域,缩放: ${scale}`);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
registerListenner() {
|
||||
Utils.addInnerEL(InnerMsgCode.SimplePlayVide,this,this.playLocalLoopVideo);
|
||||
Utils.addInnerEL(InnerMsgCode.SceneLayerBgUp, this, this.resiveBgUp)
|
||||
Utils.addInnerEL(InnerMsgCode.BgVideo_Ready, this, this.resiveBgVideoReady)
|
||||
Utils.addInnerEL(InnerMsgCode.BgVideo_End, this, this.resiveBgVideoEnd)
|
||||
}
|
||||
|
||||
|
||||
|
||||
//刷新场景背景消息
|
||||
resiveBgUp(data) {
|
||||
if (!GlobalValue.NpcVideoMod) {
|
||||
return
|
||||
}
|
||||
if (data) {
|
||||
if (data.videoPath) {
|
||||
console.log("bgvideo 收到播放视频消息:", data)
|
||||
if (data.videoType == VideoRoleType.Idle) {
|
||||
this.playLoopVideo(data.videoPath, false)
|
||||
} else {
|
||||
this.playOnceVideo(data.videoPath)
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.videoInited && data.bgPath) {
|
||||
ResManager.I.changeBundleSpriteFrame(this.sceneBg, data.bgPath, "Raw", ()=>{
|
||||
//调整背景图适配
|
||||
Utils.adjustBgPixelRatio(this.sceneBg.node, 1)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**视频准备好消息 */
|
||||
resiveBgVideoReady(data:any) {
|
||||
if (!this.videoInited) {
|
||||
this.setVideoInited(true)
|
||||
}
|
||||
if (data.compo) {
|
||||
if (data.compo.vtype == VideoRoleType.emo) {
|
||||
this.setEmoReadyAudio(data.compo)
|
||||
if (this.curVideoType == VideoRoleType.emo) {
|
||||
this.doPlayEmoReadyAudio()
|
||||
}
|
||||
} else if (data.compo.vtype == VideoRoleType.Idle) {
|
||||
this.curVideoType = VideoRoleType.Idle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**视频播放完毕消息 */
|
||||
resiveBgVideoEnd(data:any) {
|
||||
if (data.compo) {
|
||||
if (data.compo.vtype == VideoRoleType.emo) {
|
||||
// this.playLoopVideo(this.remoteLoopPath, true)
|
||||
this.doEmoFinish()
|
||||
} else if (data.compo.vtype == VideoRoleType.Idle) {
|
||||
//主视频播完后,检测一下有没有要播的表情视频
|
||||
if (this.doPlayEmoReadyAudio()) {
|
||||
this.setBgAudioPause(data.compo)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
playLocalLoopVideo(data:any) {
|
||||
ResManager.I.changeBundleVideo(this.videoPlayer,data.path,"Chat18x",(res:VideoClip)=>{
|
||||
this.videoPlayer.play();
|
||||
|
||||
// 移除之前的事件监听器,避免重复绑定
|
||||
this.videoPlayer.node.off(VideoPlayer.EventType.READY_TO_PLAY, this.onVideoReadyToPlay, this);
|
||||
|
||||
// 添加视频准备完成事件监听
|
||||
this.videoPlayer.node.on(VideoPlayer.EventType.READY_TO_PLAY, this.onVideoReadyToPlay, this);
|
||||
|
||||
// 保存当前数据供回调使用
|
||||
this.currentVideoData = data;
|
||||
|
||||
// 也立即尝试调整(以防已经准备好)
|
||||
this.adjustVideoToFillFrame(data.size, data.bgFrameNode);
|
||||
});
|
||||
}
|
||||
|
||||
private currentVideoData: any = null;
|
||||
|
||||
private onVideoReadyToPlay = () => {
|
||||
if (this.currentVideoData) {
|
||||
this.adjustVideoToFillFrame(this.currentVideoData.size, this.currentVideoData.bgFrameNode);
|
||||
}
|
||||
}
|
||||
|
||||
adjustVideoToFillFrame(targetSize: any, bgFrameNode?: Node) {
|
||||
if (!this.videoPlayer) return;
|
||||
|
||||
const tryAdjust = () => {
|
||||
let uiT: UITransform = this.videoPlayer.node.getComponent(UITransform);
|
||||
const videoSize = uiT.contentSize;
|
||||
|
||||
console.log('Video size:', videoSize, 'Target size:', targetSize);
|
||||
|
||||
if (videoSize.width > 0 && videoSize.height > 0) {
|
||||
// 计算宽度和高度的缩放比例
|
||||
const scaleX = targetSize.width / videoSize.width;
|
||||
const scaleY = targetSize.height / videoSize.height;
|
||||
|
||||
// 选择较大的缩放比例以填满整个区域(可能超出但不会有黑边)
|
||||
const scale = Math.max(scaleX, scaleY);
|
||||
|
||||
console.log(`Video scaling: scaleX=${scaleX}, scaleY=${scaleY}, final scale=${scale}`);
|
||||
this.videoPlayer.node.setScale(new Vec3(scale, scale, 1));
|
||||
|
||||
// 只有传入bgFrameNode时才调整位置
|
||||
if (bgFrameNode && isValid(bgFrameNode) && bgFrameNode.position) {
|
||||
this.videoPlayer.node.setPosition(
|
||||
bgFrameNode.position.x,
|
||||
bgFrameNode.position.y,
|
||||
bgFrameNode.position.z
|
||||
);
|
||||
console.log(`Video positioned to bgFrame center: ${bgFrameNode.position}`);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
// 立即尝试一次
|
||||
// 立即尝试一次
|
||||
if (!tryAdjust()) {
|
||||
// 如果失败,延迟尝试
|
||||
this.scheduleOnce(() => {
|
||||
if (!tryAdjust()) {
|
||||
// 如果失败,延迟尝试
|
||||
this.scheduleOnce(() => {
|
||||
if (!tryAdjust()) {
|
||||
// 再次延迟尝试
|
||||
this.scheduleOnce(() => {
|
||||
tryAdjust();
|
||||
}, 0.5);
|
||||
}
|
||||
}, 0.1);
|
||||
this.scheduleOnce(() => {
|
||||
tryAdjust();
|
||||
}, 0.5);
|
||||
}
|
||||
}, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
/**播放循环视频 */
|
||||
playLoopVideo(path: string, force = false) {
|
||||
if (this.remoteLoopPath == path && !force) {
|
||||
return
|
||||
}
|
||||
console.log("bgvideo 播放循环视频", path)
|
||||
this.remoteLoopPath = path
|
||||
SDKManager.PlayBgAudio(path, VideoRoleType.Idle, true)
|
||||
}
|
||||
//================== 事件回调 ==================
|
||||
|
||||
/**播放单次视频 */
|
||||
playOnceVideo(path: string) {
|
||||
console.log("bgvideo 播放单次视频", path)
|
||||
SDKManager.AddEmoAudio(path, VideoRoleType.emo, false)
|
||||
}
|
||||
private onVideoReadyToPlay = () => {
|
||||
console.log("SceneBgVideoLayer: 视频准备完成");
|
||||
this.onVideoReady();
|
||||
};
|
||||
|
||||
private onVideoEvent = (event: any, eventType: string) => {
|
||||
switch (eventType) {
|
||||
case "completed":
|
||||
console.log("SceneBgVideoLayer: 视频播放完成");
|
||||
this.isPlaying = false;
|
||||
this.onVideoEnd();
|
||||
break;
|
||||
case "error":
|
||||
console.error("SceneBgVideoLayer: 视频播放错误");
|
||||
this.isPlaying = false;
|
||||
this.onVideoError();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
//设置视频是否初始化完成
|
||||
setVideoInited(inited: boolean, force: boolean = false) {
|
||||
if (this.videoInited == inited && !force) {
|
||||
return
|
||||
}
|
||||
console.log("bgvideo setVideoInited", inited)
|
||||
this.videoInited = inited
|
||||
this._nodeTab.sceneBg.active = !inited
|
||||
}
|
||||
|
||||
/**
|
||||
* 视频准备完成回调(可重写)
|
||||
*/
|
||||
protected onVideoReady() {
|
||||
// 由子类重写或外部监听
|
||||
}
|
||||
|
||||
//设置暂停播放的主视频
|
||||
setBgAudioPause(wait:BgVideo) {
|
||||
console.log("bgvideo 主视频暂停播放")
|
||||
this.vpWait = wait
|
||||
this.vpWait.pauseVideo()
|
||||
}
|
||||
replayBgAudioPause() {
|
||||
console.log("bgvideo 主视频继续播放")
|
||||
if (this.vpWait) {
|
||||
this.vpWait.replayVideo()
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 视频播放完成回调(可重写)
|
||||
*/
|
||||
protected onVideoEnd() {
|
||||
// 由子类重写或外部监听
|
||||
}
|
||||
|
||||
//设置准备好要播放的表情视频
|
||||
setEmoReadyAudio(au: BgVideo) {
|
||||
console.log("bgvideo 设置ready视频", au)
|
||||
if (this.emoReady) {
|
||||
this.emoReady.recycleVideo()
|
||||
}
|
||||
this.emoReady = au;
|
||||
this.emoReady.pauseVideo()
|
||||
}
|
||||
//移除准备好要播放的表情视频
|
||||
removeEmoReadyAudio() {
|
||||
console.log("bgvideo 移除ready视频")
|
||||
if (this.emoReady) {
|
||||
this.emoReady.recycleVideo()
|
||||
}
|
||||
this.emoReady = null
|
||||
}
|
||||
//播放准备好要播放的表情视频
|
||||
doPlayEmoReadyAudio():boolean {
|
||||
if (this.emoReady) {
|
||||
console.log("bgvideo 播放ready视频")
|
||||
this.emoReady.replayVideo()
|
||||
this.emoReady.moveIn()
|
||||
this.curVideoType = VideoRoleType.emo
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
//表情视频播放结束
|
||||
doEmoFinish() {
|
||||
console.log("bgvideo ready视频播放结束")
|
||||
this.removeEmoReadyAudio()
|
||||
this.replayBgAudioPause()
|
||||
this.curVideoType = VideoRoleType.Idle
|
||||
}
|
||||
/**
|
||||
* 视频播放错误回调(可重写)
|
||||
*/
|
||||
protected onVideoError() {
|
||||
// 由子类重写或外部监听
|
||||
}
|
||||
|
||||
//================== 兼容性方法 ==================
|
||||
|
||||
/**
|
||||
* 播放本地循环视频(保留以保证兼容性)
|
||||
* @deprecated 使用 playVideo(path, true) 替代
|
||||
*/
|
||||
playLocalLoopVideo(data: any) {
|
||||
if (data?.path) {
|
||||
this.playVideo(data.path, true);
|
||||
|
||||
// 保存当前数据供回调使用
|
||||
this.currentVideoData = data;
|
||||
|
||||
// 如果有尺寸和位置信息,进行调整
|
||||
if (data.size) {
|
||||
this.adjustToFillArea(data.size, data.bgFrameNode?.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 调整视频填充框架(保留以保证兼容性)
|
||||
* @deprecated 使用 adjustToFillArea 替代
|
||||
*/
|
||||
adjustVideoToFillFrame(targetSize: any, bgFrameNode?: Node) {
|
||||
let position: Vec3 | undefined;
|
||||
if (bgFrameNode && isValid(bgFrameNode) && bgFrameNode.position) {
|
||||
position = bgFrameNode.position;
|
||||
}
|
||||
this.adjustToFillArea(targetSize, position);
|
||||
}
|
||||
|
||||
//================== 其他方法 ==================
|
||||
|
||||
/**
|
||||
* 获取当前播放状态
|
||||
*/
|
||||
getIsPlaying(): boolean {
|
||||
return this.isPlaying;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取VideoPlayer组件引用
|
||||
*/
|
||||
getVideoPlayer(): VideoPlayer | null {
|
||||
return this.videoPlayer;
|
||||
}
|
||||
|
||||
/**
|
||||
* 销毁时清理资源
|
||||
*/
|
||||
onDestroy() {
|
||||
if (this.videoPlayer) {
|
||||
this.videoPlayer.node.off(
|
||||
VideoPlayer.EventType.READY_TO_PLAY,
|
||||
this.onVideoReadyToPlay,
|
||||
this
|
||||
);
|
||||
//this.videoPlayer.node.off(VideoPlayer.EventType.VIDEO_PLAYER_EVENT, this.onVideoEvent, this);
|
||||
}
|
||||
SceneBgVideoLayer.handle = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -525,6 +525,7 @@ export class ChatModel {
|
||||
* @returns 是否可以继续聊天
|
||||
*/
|
||||
public canChat(roleId?: number): boolean {
|
||||
//return false;
|
||||
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
||||
const roleData = this.rolesData.get(this.currentGirlId);
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ export class ImagePopup extends Component {
|
||||
start() {
|
||||
this.node.setPosition(new Vec3(-1500, 493, 0));
|
||||
GButton.BandClick(this.image.node, this.openImage, this);
|
||||
this.node.active = false;
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
@@ -36,6 +37,7 @@ export class ImagePopup extends Component {
|
||||
resId: number;
|
||||
//url: string;
|
||||
refresh(categoryId: string, girlId: number, resId: number, clear = false) {
|
||||
this.node.active = true;
|
||||
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
||||
this.categoryId = categoryId;
|
||||
this.girlId = girlId;
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
Sprite,
|
||||
UITransform,
|
||||
VideoPlayer,
|
||||
Size,
|
||||
} from "cc";
|
||||
// 首先加载 polyfills 以确保兼容性
|
||||
import "../../utils/polyfills";
|
||||
@@ -27,6 +28,7 @@ import { VideoEmotion, purchase } from "../../../schema/schema";
|
||||
import { PayToTalkSubpanel } from "./PayToTalkSubpanel";
|
||||
import { DataId, DataManager } from "../../data/DataManager";
|
||||
import { GirlData } from "../../data/GirlData";
|
||||
import { SceneBgVideoLayer } from "../../../Sub/UI/SceneBgVideoLayer";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("ChatPanel")
|
||||
@@ -46,8 +48,16 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
// @property(Sprite)
|
||||
// girlImg: Sprite = null;
|
||||
|
||||
@property(VideoPlayer)
|
||||
girlVideo: VideoPlayer = null;
|
||||
// 移除直接的 VideoPlayer 引用,改用 SceneBgVideoLayer 单例
|
||||
// @property(VideoPlayer)
|
||||
// girlVideo: VideoPlayer = null;
|
||||
@property(UITransform)
|
||||
videoArea: UITransform = null;
|
||||
|
||||
/** 获取 SceneBgVideoLayer 单例实例 */
|
||||
private get videoLayer(): SceneBgVideoLayer | null {
|
||||
return SceneBgVideoLayer.handle;
|
||||
}
|
||||
|
||||
@property(ChatContentsLayout)
|
||||
layout: ChatContentsLayout = null;
|
||||
@@ -119,17 +129,38 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
this.register();
|
||||
this.refresh();
|
||||
this.payToTalkPanel.node.active = false;
|
||||
// Add video loaded event callback
|
||||
if (this.girlVideo) {
|
||||
this.girlVideo.node.on(
|
||||
VideoPlayer.EventType.READY_TO_PLAY,
|
||||
() => {
|
||||
this.adjustVideoScale();
|
||||
},
|
||||
this
|
||||
);
|
||||
|
||||
// 检查 SceneBgVideoLayer 是否可用
|
||||
if (!this.videoLayer) {
|
||||
console.error("ChatPanel: SceneBgVideoLayer.handle 未初始化");
|
||||
} else {
|
||||
console.log("ChatPanel: 成功获取 SceneBgVideoLayer 实例");
|
||||
this.initVideoPosition();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化视频位置和属性
|
||||
*/
|
||||
private initVideoPosition() {
|
||||
if (!this.videoLayer || !this.videoArea) return;
|
||||
|
||||
// 设置视频锚点为中心 (0.5, 0.5),这样视频的中心点就是定位点
|
||||
this.videoLayer.setVideoAnchor(0.5, 0.5);
|
||||
|
||||
// 使用 videoArea 的世界坐标位置
|
||||
const videoAreaWorldPos = this.videoArea.node.getWorldPosition();
|
||||
this.videoLayer.setVideoWorldPosition(
|
||||
this.videoLayer.node.worldPosition.x,
|
||||
videoAreaWorldPos.y,
|
||||
videoAreaWorldPos.z
|
||||
);
|
||||
this.videoLayer.setVideoScale(1);
|
||||
console.log(
|
||||
`ChatPanel: 初始化视频世界位置到 (${videoAreaWorldPos.x}, ${videoAreaWorldPos.y})`
|
||||
);
|
||||
}
|
||||
|
||||
register() {
|
||||
Utils.addInnerEL(
|
||||
InnerMsgCode.Chat_DialogRefresh,
|
||||
@@ -179,8 +210,8 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
);
|
||||
|
||||
// Cleanup video event listeners
|
||||
if (this.girlVideo && this.girlVideo.node) {
|
||||
this.girlVideo.node.off(
|
||||
if (this.videoLayer && this.videoLayer.node) {
|
||||
this.videoLayer.node.off(
|
||||
VideoPlayer.EventType.READY_TO_PLAY,
|
||||
this.adjustVideoScale,
|
||||
this
|
||||
@@ -224,7 +255,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
const chatModel = this.chatController.getChatModel();
|
||||
|
||||
// Load initial video based on current emotion
|
||||
if (this.girlVideo) {
|
||||
if (this.videoLayer) {
|
||||
// Get current emotion from ChatController
|
||||
const currentEmotion = this.chatController.getCurrentEmotion();
|
||||
console.log(
|
||||
@@ -241,46 +272,81 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
`Loading initial video: ${initialVideo} (emotion: ${VideoEmotion[initialVideo]})`
|
||||
);
|
||||
|
||||
// 获取 videoArea 的尺寸
|
||||
const targetSize = this.videoArea
|
||||
? new Size(this.videoArea.width, this.videoArea.height)
|
||||
: new Size(600, 800);
|
||||
|
||||
const videoData = {
|
||||
path: initialVideo,
|
||||
size: targetSize,
|
||||
bgFrameNode: this.videoArea ? this.videoArea.node : null,
|
||||
};
|
||||
|
||||
// Set current emotion to the loaded video's emotion
|
||||
this.currentEmotion = this.chatController.getCurrentEmotion();
|
||||
ResManager.I.changeBundleVideo(this.girlVideo, initialVideo, "Girls");
|
||||
// Also immediately try to adjust scale (in case already loaded)
|
||||
this.adjustVideoScale();
|
||||
this.videoLayer.playLocalLoopVideo(videoData);
|
||||
|
||||
// 延迟调整视频缩放
|
||||
this.scheduleOnce(() => {
|
||||
this.adjustVideoScale();
|
||||
}, 0.1);
|
||||
}
|
||||
} else {
|
||||
this.commercialVideos = [];
|
||||
this.currentEmotion = null; // Reset current emotion when no videos available
|
||||
console.log("No commercialVideos data available for role", this.id);
|
||||
console.log("No SceneBgVideoLayer available for role", this.id);
|
||||
}
|
||||
}
|
||||
|
||||
adjustVideoScale() {
|
||||
if (!this.girlVideo || !this.girlVideo.node.parent) {
|
||||
if (!this.videoLayer || !this.videoArea) {
|
||||
console.error("ChatPanel: SceneBgVideoLayer 或 videoArea 不可用");
|
||||
return;
|
||||
}
|
||||
|
||||
const tryAdjustScale = () => {
|
||||
const parentTransform =
|
||||
this.girlVideo.node.parent.getComponent(UITransform);
|
||||
const videoTransform = this.girlVideo.node.getComponent(UITransform);
|
||||
const videoPlayer = this.videoLayer.getVideoPlayer();
|
||||
if (!videoPlayer) return false;
|
||||
|
||||
const videoTransform = videoPlayer.node.getComponent(UITransform);
|
||||
if (videoTransform && videoTransform.height > 0) {
|
||||
// 设置视频锚点为中心 (0.5, 0.5),确保视频的中心点就是定位点
|
||||
this.videoLayer.setVideoAnchor(0.5, 0.5);
|
||||
|
||||
// 计算缩放比例,使视频高度填满 videoArea
|
||||
const scale = this.videoArea.height / videoTransform.height;
|
||||
|
||||
// 设置视频缩放
|
||||
this.videoLayer.setVideoScale(scale);
|
||||
|
||||
// 获取 videoArea 的世界坐标中心点
|
||||
const videoAreaWorldPos = this.videoArea.node.getWorldPosition();
|
||||
|
||||
// 使用世界坐标设置视频位置,确保正确对齐
|
||||
this.videoLayer.setVideoWorldPosition(
|
||||
this.videoLayer.node.worldPosition.x,
|
||||
videoAreaWorldPos.y,
|
||||
videoAreaWorldPos.z
|
||||
);
|
||||
|
||||
if (parentTransform && videoTransform && videoTransform.height > 0) {
|
||||
const scale = parentTransform.height / videoTransform.height;
|
||||
this.girlVideo.node.setScale(scale, scale, 1);
|
||||
console.log(
|
||||
`ChatPanel Video scaled to: ${scale}, parent height: ${parentTransform.height}, video height: ${videoTransform.height}`
|
||||
`ChatPanel: 视频缩放到 ${scale}, videoArea高度: ${this.videoArea.height}, 视频高度: ${videoTransform.height}`
|
||||
);
|
||||
console.log(
|
||||
`ChatPanel: 视频世界位置设置为 (${videoAreaWorldPos.x}, ${videoAreaWorldPos.y})`
|
||||
);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
// Immediately try once
|
||||
// 立即尝试一次
|
||||
if (!tryAdjustScale()) {
|
||||
// If failed, delay and try again
|
||||
// 如果失败,延迟尝试
|
||||
this.scheduleOnce(() => {
|
||||
if (!tryAdjustScale()) {
|
||||
// Try again with longer delay
|
||||
// 再次延迟尝试
|
||||
this.scheduleOnce(() => {
|
||||
tryAdjustScale();
|
||||
}, 0.5);
|
||||
@@ -292,22 +358,28 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
||||
let triggerId = girlData.getTriggerGrilPhotoId(this.categoryId, this.id);
|
||||
|
||||
if (triggerId == 0) triggerId = 100040103;
|
||||
if (triggerId == 0) return;
|
||||
|
||||
this.popUpImage.refresh(this.categoryId, this.id, triggerId);
|
||||
}
|
||||
|
||||
setVideoEnable(enable: boolean) {
|
||||
if (!this.girlVideo) return;
|
||||
if (!this.videoLayer) {
|
||||
console.error("ChatPanel: SceneBgVideoLayer 不可用");
|
||||
return;
|
||||
}
|
||||
|
||||
this.girlVideo.enabled = enable;
|
||||
if (enable) {
|
||||
this.girlVideo.play();
|
||||
this.videoLayer.resume();
|
||||
console.log("ChatPanel: 恢复视频播放");
|
||||
} else {
|
||||
this.videoLayer.pause();
|
||||
console.log("ChatPanel: 暂停视频播放");
|
||||
}
|
||||
}
|
||||
|
||||
private switchVideoByEmotion(emotion: VideoEmotion): void {
|
||||
if (!this.girlVideo) {
|
||||
if (!this.videoLayer) {
|
||||
console.warn("Cannot switch video: missing video player");
|
||||
return;
|
||||
}
|
||||
@@ -337,7 +409,8 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
);
|
||||
|
||||
// Load the new video
|
||||
ResManager.I.changeBundleVideo(this.girlVideo, matchingVideo, "Girls");
|
||||
this.videoLayer.playVideo(matchingVideo, true);
|
||||
//ResManager.I.changeBundleVideo(this.girlVideo, matchingVideo, "Girls");
|
||||
|
||||
// Update current emotion state
|
||||
this.currentEmotion = emotion;
|
||||
@@ -357,11 +430,7 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
`Loading fallback video: ${fallbackVideo} (emotion: ${VideoEmotion[fallbackVideo]})`
|
||||
);
|
||||
|
||||
ResManager.I.changeBundleVideo(
|
||||
this.girlVideo,
|
||||
fallbackVideo,
|
||||
"Chat18x"
|
||||
);
|
||||
this.videoLayer.playVideo(fallbackVideo, true);
|
||||
|
||||
// Update current emotion state to the fallback video's emotion
|
||||
this.currentEmotion = this.chatController.getCurrentEmotion();
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
VideoPlayer,
|
||||
instantiate,
|
||||
UITransform,
|
||||
Size,
|
||||
} from "cc";
|
||||
import li_BaseView from "db://assets/Scripts/Main/Common/li_BaseView";
|
||||
import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
|
||||
@@ -20,18 +21,25 @@ import { DataManager, DataId } from "../../data/DataManager";
|
||||
import { GirlData } from "../../data/GirlData";
|
||||
import { GirlService } from "db://assets/Scripts/chat18x/network/services/GirlService";
|
||||
import proto from "db://assets/Scripts/proto/proto.pb.js";
|
||||
import { SceneBgVideoLayer } from "../../../Sub/UI/SceneBgVideoLayer";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("GirlDetailPanel")
|
||||
export class GirlDetailPanel extends li_BaseView {
|
||||
@property(Sprite)
|
||||
avatar: Sprite;
|
||||
@property(VideoPlayer)
|
||||
avatarVideo: VideoPlayer;
|
||||
@property(UITransform)
|
||||
videoArea: UITransform;
|
||||
// 移除直接的 VideoPlayer 引用,改用 SceneBgVideoLayer 单例
|
||||
// @property(VideoPlayer)
|
||||
// avatarVideo: VideoPlayer;
|
||||
@property(Label)
|
||||
girlName: Label;
|
||||
|
||||
/** 获取 SceneBgVideoLayer 单例实例 */
|
||||
private get videoLayer(): SceneBgVideoLayer | null {
|
||||
return SceneBgVideoLayer.handle;
|
||||
}
|
||||
|
||||
@property(SimpleToggle)
|
||||
imgToggle: SimpleToggle = null;
|
||||
@property(SimpleToggle)
|
||||
@@ -82,38 +90,76 @@ export class GirlDetailPanel extends li_BaseView {
|
||||
this.imgToggle.callback = this.bindImgToggle.bind(this);
|
||||
this.videoToggle.callback = this.bindVideoToggle.bind(this);
|
||||
|
||||
// 添加视频加载完成回调
|
||||
this.avatarVideo.node.on(
|
||||
VideoPlayer.EventType.READY_TO_PLAY,
|
||||
() => {
|
||||
this.adjustVideoScale();
|
||||
},
|
||||
this
|
||||
);
|
||||
// 检查 SceneBgVideoLayer 是否可用
|
||||
if (!this.videoLayer) {
|
||||
console.error("GirlDetailPanel: SceneBgVideoLayer.handle 未初始化");
|
||||
} else {
|
||||
console.log("GirlDetailPanel: 成功获取 SceneBgVideoLayer 实例");
|
||||
// 初始化视频显示位置
|
||||
this.initVideoPosition();
|
||||
}
|
||||
}
|
||||
|
||||
setVideEnable(enable: boolean) {
|
||||
this.avatarVideo.enabled = enable;
|
||||
if (!this.videoLayer) {
|
||||
console.error("GirlDetailPanel: SceneBgVideoLayer 不可用");
|
||||
return;
|
||||
}
|
||||
|
||||
if (enable) {
|
||||
this.avatarVideo.play();
|
||||
// 恢复播放
|
||||
this.videoLayer.resume();
|
||||
console.log("GirlDetailPanel: 开启视频播放");
|
||||
} else {
|
||||
// 暂停播放
|
||||
this.videoLayer.pause();
|
||||
console.log("GirlDetailPanel: 暂停视频播放");
|
||||
}
|
||||
}
|
||||
|
||||
adjustVideoScale() {
|
||||
if (!this.avatarVideo || !this.avatarVideo.node.parent) {
|
||||
if (!this.videoLayer) {
|
||||
console.error("GirlDetailPanel: SceneBgVideoLayer 不可用");
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取 videoArea 的尺寸
|
||||
if (!this.videoArea) {
|
||||
console.error("GirlDetailPanel: videoArea 未设置");
|
||||
return;
|
||||
}
|
||||
|
||||
// 参考原有逻辑,计算缩放比例使视频高度填满 videoArea
|
||||
const tryAdjustScale = () => {
|
||||
const parentTransform =
|
||||
this.avatarVideo.node.parent.getComponent(UITransform);
|
||||
const videoTransform = this.avatarVideo.node.getComponent(UITransform);
|
||||
const videoPlayer = this.videoLayer.getVideoPlayer();
|
||||
if (!videoPlayer) return false;
|
||||
|
||||
const videoTransform = videoPlayer.node.getComponent(UITransform);
|
||||
if (videoTransform && videoTransform.height > 0) {
|
||||
// 设置视频锚点为中心 (0.5, 0.5),确保视频的中心点就是定位点
|
||||
this.videoLayer.setVideoAnchor(0.5, 0.5);
|
||||
|
||||
// 计算缩放比例,使视频高度填满 videoArea(保持原有逻辑)
|
||||
const scale = this.videoArea.height / videoTransform.height;
|
||||
|
||||
// 设置视频缩放
|
||||
this.videoLayer.setVideoScale(scale);
|
||||
|
||||
// 获取 videoArea 的世界坐标中心点
|
||||
const videoAreaWorldPos = this.videoArea.node.getWorldPosition();
|
||||
|
||||
// 使用世界坐标设置视频位置,确保正确对齐
|
||||
this.videoLayer.setVideoWorldPosition(
|
||||
videoAreaWorldPos.x,
|
||||
videoAreaWorldPos.y,
|
||||
videoAreaWorldPos.z
|
||||
);
|
||||
|
||||
if (parentTransform && videoTransform && videoTransform.height > 0) {
|
||||
const scale = parentTransform.height / videoTransform.height;
|
||||
this.avatarVideo.node.setScale(scale, scale, 1);
|
||||
console.log(
|
||||
`Video scaled to: ${scale}, parent height: ${parentTransform.height}, video height: ${videoTransform.height}`
|
||||
`GirlDetailPanel: 视频缩放到 ${scale}, videoArea高度: ${this.videoArea.height}, 视频高度: ${videoTransform.height}`
|
||||
);
|
||||
console.log(
|
||||
`GirlDetailPanel: 视频世界位置设置为 (${videoAreaWorldPos.x}, ${videoAreaWorldPos.y})`
|
||||
);
|
||||
return true;
|
||||
}
|
||||
@@ -122,7 +168,7 @@ export class GirlDetailPanel extends li_BaseView {
|
||||
|
||||
// 立即尝试一次
|
||||
if (!tryAdjustScale()) {
|
||||
// 如果失败,延迟尝试
|
||||
// 如果失败,延迟尝试(保持原有的重试机制)
|
||||
this.scheduleOnce(() => {
|
||||
if (!tryAdjustScale()) {
|
||||
// 再次延迟尝试
|
||||
@@ -133,6 +179,21 @@ export class GirlDetailPanel extends li_BaseView {
|
||||
}, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取目标视频尺寸
|
||||
* 从 videoArea 获取实际需要填充的区域尺寸
|
||||
*/
|
||||
private getTargetVideoSize(): Size | null {
|
||||
// 从 videoArea 获取目标尺寸
|
||||
if (this.videoArea) {
|
||||
return new Size(this.videoArea.width, this.videoArea.height);
|
||||
}
|
||||
|
||||
// 如果没有 videoArea,使用默认尺寸
|
||||
console.warn("GirlDetailPanel: videoArea 未设置,使用默认尺寸");
|
||||
return new Size(600, 800);
|
||||
}
|
||||
nameKey: string;
|
||||
tagKey: string;
|
||||
descKey: string;
|
||||
@@ -173,14 +234,41 @@ export class GirlDetailPanel extends li_BaseView {
|
||||
this.category.toString(),
|
||||
this.id
|
||||
);
|
||||
ResManager.I.changeBundleVideo(this.avatarVideo, firstPath, "Girls");
|
||||
|
||||
// 使用 SceneBgVideoLayer 加载并播放视频
|
||||
if (this.videoLayer && firstPath) {
|
||||
console.log(`GirlDetailPanel: 加载视频 ${firstPath}`);
|
||||
|
||||
// 获取 videoArea 的尺寸和位置
|
||||
const targetSize = this.videoArea
|
||||
? new Size(this.videoArea.width, this.videoArea.height)
|
||||
: new Size(600, 800);
|
||||
|
||||
// 获取 videoArea 的中心位置作为参考节点
|
||||
const bgFrameNode = this.videoArea ? this.videoArea.node : null;
|
||||
|
||||
// 使用 playLocalLoopVideo 方法,保证兼容性
|
||||
const videoData = {
|
||||
path: firstPath,
|
||||
size: targetSize,
|
||||
bgFrameNode: bgFrameNode, // 传递 videoArea 节点作为位置参考
|
||||
};
|
||||
this.videoLayer.playLocalLoopVideo(videoData);
|
||||
|
||||
// 延迟调整视频缩放和位置,确保视频加载完成
|
||||
this.scheduleOnce(() => {
|
||||
this.adjustVideoScale();
|
||||
}, 0.1);
|
||||
} else if (!firstPath) {
|
||||
console.warn(
|
||||
`GirlDetailPanel: 未找到视频路径 category=${this.category}, id=${this.id}`
|
||||
);
|
||||
}
|
||||
|
||||
let resIds = girlData.getAllDisplayGrilPhotoId(
|
||||
this.category.toString(),
|
||||
this.id
|
||||
);
|
||||
// 也立即尝试调整(以防已经加载完成)
|
||||
this.adjustVideoScale();
|
||||
this.refreshImgs(
|
||||
proto.cs.EnmResType.ERT_Image,
|
||||
this.category,
|
||||
@@ -239,6 +327,28 @@ export class GirlDetailPanel extends li_BaseView {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化视频位置和属性
|
||||
*/
|
||||
private initVideoPosition() {
|
||||
if (!this.videoLayer || !this.videoArea) return;
|
||||
|
||||
// 设置视频锚点为中心 (0.5, 0.5),这样视频的中心点就是定位点
|
||||
this.videoLayer.setVideoAnchor(0.5, 0.5);
|
||||
|
||||
// 使用 videoArea 的世界坐标位置
|
||||
const videoAreaWorldPos = this.videoArea.node.getWorldPosition();
|
||||
this.videoLayer.setVideoWorldPosition(
|
||||
videoAreaWorldPos.x,
|
||||
videoAreaWorldPos.y,
|
||||
videoAreaWorldPos.z
|
||||
);
|
||||
this.videoLayer.setVideoScale(1);
|
||||
console.log(
|
||||
`GirlDetailPanel: 初始化视频世界位置到 (${videoAreaWorldPos.x}, ${videoAreaWorldPos.y})`
|
||||
);
|
||||
}
|
||||
|
||||
OnClickChatBtn() {
|
||||
// 使用带过渡动画的导航方法
|
||||
NavigationManager.Instance.navigateToChatWithTransition(
|
||||
@@ -254,4 +364,30 @@ export class GirlDetailPanel extends li_BaseView {
|
||||
NavigationManager.Instance.navigateToGirlList(this.category);
|
||||
//ViewManager.I.openBundlesView("GirlListPanel");
|
||||
}
|
||||
|
||||
/**
|
||||
* 面板关闭时的清理工作
|
||||
*/
|
||||
onClose() {
|
||||
// 停止视频播放,释放资源
|
||||
if (this.videoLayer) {
|
||||
//this.videoLayer.stop();
|
||||
//console.log("GirlDetailPanel: 停止视频播放");
|
||||
}
|
||||
|
||||
super.onClose();
|
||||
}
|
||||
|
||||
/**
|
||||
* 面板销毁时的清理工作
|
||||
*/
|
||||
onDestroy() {
|
||||
// 确保视频资源被释放
|
||||
if (this.videoLayer) {
|
||||
//this.videoLayer.stop();
|
||||
//console.log("GirlDetailPanel: 销毁时停止视频播放");
|
||||
}
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { _decorator, Button, Component, Node, Label } from "cc";
|
||||
import { _decorator, Button, Component, Node, Label, View } from "cc";
|
||||
import li_BaseView from "../../../Main/Common/li_BaseView";
|
||||
import Utils from "../../../Main/Common/Utils";
|
||||
import { GButton } from "../../../Main/Common/GButton";
|
||||
@@ -10,6 +10,8 @@ import { GirlData } from "../../data/GirlData";
|
||||
import { WalletData } from "../../data/WalletData";
|
||||
import proto from "db://assets/Scripts/proto/proto.pb.js";
|
||||
import LanguageUtils from "../../../Main/Common/LanguageUtils";
|
||||
import { ViewManager } from "../../../Main/Manager/ViewManager";
|
||||
import { TipsPanel } from "./TipsPanel";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("GirlListPopupPanel")
|
||||
@@ -74,6 +76,11 @@ export class GirlListPopupPanel extends li_BaseView {
|
||||
// 刷新界面
|
||||
this.base.refreshBuy(true);
|
||||
this.close();
|
||||
} else {
|
||||
//ViewManager.I.openBundlesView("PurchasePanel");
|
||||
this.close();
|
||||
TipsPanel.show("Insufficient balance, need to purchase");
|
||||
}
|
||||
// TipsPanel.show("Insufficient balance, need to purchase");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import { WalletData } from "../../data/WalletData";
|
||||
import proto from "db://assets/Scripts/proto/proto.pb.js";
|
||||
import LanguageUtils from "../../../Main/Common/LanguageUtils";
|
||||
import { ImagePopup } from "../components/ImagePopup";
|
||||
import { TipsPanel } from "./TipsPanel";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("PopupGirlDetailPanel")
|
||||
@@ -103,6 +104,8 @@ export class PopupGirlDetailPanel extends li_BaseView {
|
||||
this.base.refreshSelf();
|
||||
}
|
||||
this.close();
|
||||
} else {
|
||||
TipsPanel.show("Insufficient balance, need to purchase");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import { AccountData } from "../../data/AccountData";
|
||||
|
||||
import { ShopData } from "../../data/ShopData";
|
||||
import proto from "db://assets/Scripts/proto/proto.pb.js";
|
||||
import GameRootUI from "../../../Main/Common/GameRootUI";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@@ -109,7 +110,7 @@ export class ThemePanel extends li_BaseView {
|
||||
ResManager.I.changeBundleSpriteFrame(
|
||||
this.recSprite,
|
||||
avatarPath,
|
||||
"Chat18x",
|
||||
"Girls",
|
||||
() => {
|
||||
let sizeTran = this.recSprite.node.parent.getComponent(UITransform);
|
||||
Utils.adjustBgPixelRatioToSize(
|
||||
@@ -163,7 +164,7 @@ export class ThemePanel extends li_BaseView {
|
||||
) == 0;
|
||||
if (isRelease || isFree) {
|
||||
NavigationManager.Instance.navigateToGirlDetail(this.recId);
|
||||
ViewManager.I.closeView(this.node);
|
||||
GameRootUI.I.hideDefaultView();
|
||||
} else {
|
||||
//未解锁
|
||||
ViewManager.I.openBundlesPopupView("GirlListPopupPanel", {
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
import { _decorator, Component, Node, Label, tween, Vec3, UIOpacity } from "cc";
|
||||
import li_BaseView from "../../../Main/Common/li_BaseView";
|
||||
import Utils from "../../../Main/Common/Utils";
|
||||
import { ViewManager } from "../../../Main/Manager/ViewManager";
|
||||
import { GButton } from "../../../Main/Common/GButton";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
interface TipsPanelData {
|
||||
content: string;
|
||||
duration?: number;
|
||||
autoClose?: boolean;
|
||||
}
|
||||
|
||||
@ccclass("TipsPanel")
|
||||
export class TipsPanel extends li_BaseView {
|
||||
private _nodeTab: any = {};
|
||||
private _data: TipsPanelData;
|
||||
private contentLabel: Label;
|
||||
|
||||
static show(content: string, duration: number = 1) {
|
||||
ViewManager.I.openBundlesPopupView("TipsPanel", {
|
||||
content: content,
|
||||
duration: duration,
|
||||
autoClose: true,
|
||||
});
|
||||
}
|
||||
|
||||
onLoadCT() {
|
||||
Utils.parseNode(this.node, this._nodeTab);
|
||||
this.contentLabel = this._nodeTab.text.getComponent(Label);
|
||||
this.setupUI();
|
||||
|
||||
// 如果数据已经传入,立即更新内容
|
||||
if (this._data) {
|
||||
this.updateContent();
|
||||
}
|
||||
}
|
||||
|
||||
openUIData(data: TipsPanelData) {
|
||||
this._data = data;
|
||||
|
||||
// 如果UI已经初始化,立即更新内容
|
||||
if (this.contentLabel) {
|
||||
this.updateContent();
|
||||
}
|
||||
}
|
||||
|
||||
private setupUI() {
|
||||
if (this._nodeTab.mask) {
|
||||
GButton.BandClick(this._nodeTab.mask, this.onMaskClick, this);
|
||||
}
|
||||
|
||||
this.node.setScale(Vec3.ZERO);
|
||||
const uiOpacity =
|
||||
this.node.getComponent(UIOpacity) || this.node.addComponent(UIOpacity);
|
||||
uiOpacity.opacity = 0;
|
||||
|
||||
this.playShowAnimation();
|
||||
}
|
||||
|
||||
private updateContent() {
|
||||
if (this.contentLabel && this._data) {
|
||||
this.contentLabel.string = this._data.content;
|
||||
|
||||
if (this._data.autoClose !== false) {
|
||||
const duration = this._data.duration || 1;
|
||||
this.scheduleOnce(this.autoClose, duration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private playShowAnimation() {
|
||||
const uiOpacity = this.node.getComponent(UIOpacity);
|
||||
|
||||
tween(this.node)
|
||||
.to(0.3, { scale: Vec3.ONE }, { easing: "backOut" })
|
||||
.start();
|
||||
|
||||
tween(uiOpacity).to(0.3, { opacity: 255 }).start();
|
||||
}
|
||||
|
||||
private playHideAnimation(callback?: () => void) {
|
||||
const uiOpacity = this.node.getComponent(UIOpacity);
|
||||
|
||||
tween(this.node)
|
||||
.to(0.2, { scale: new Vec3(0.8, 0.8, 1) })
|
||||
.start();
|
||||
|
||||
tween(uiOpacity)
|
||||
.to(0.2, { opacity: 0 })
|
||||
.call(() => {
|
||||
callback && callback();
|
||||
})
|
||||
.start();
|
||||
}
|
||||
|
||||
private onMaskClick() {
|
||||
this.closePanel();
|
||||
}
|
||||
|
||||
private autoClose() {
|
||||
this.closePanel();
|
||||
}
|
||||
|
||||
private closePanel() {
|
||||
this.playHideAnimation(() => {
|
||||
this.close();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "3a01052c-1b9f-4ad4-b5a4-ecda9b0c1bbe",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import { GirlDetailPanel } from "../ui/panels/GirlDetailPanel";
|
||||
import proto from "db://assets/Scripts/proto/proto.pb.js";
|
||||
import { DataManager, DataId } from "../data/DataManager";
|
||||
import { GirlData } from "../data/GirlData";
|
||||
import { TipsPanel } from "../ui/panels/TipsPanel";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
|
||||
@@ -133,12 +133,12 @@ export class GirlListItem extends Component {
|
||||
// this.price.node.active = priceType == PriceType.pay;
|
||||
// this.freeNode.active = priceType == PriceType.free;
|
||||
//this.tryNode.active = priceType == PriceType.first_time_free;
|
||||
let listAvatarPath = girlData.getGrilListAvatar(
|
||||
let listAvatarPath = girlData.getGrilAvatar(
|
||||
this.category.toString(),
|
||||
this.id
|
||||
);
|
||||
|
||||
listAvatarPath = listAvatarPath.replace("Avatar", "avatar"); //临时
|
||||
//listAvatarPath = listAvatarPath.replace("Avatar", "avatar"); //临时
|
||||
ResManager.I.changeBundleSpriteFrame(
|
||||
this.avatar,
|
||||
listAvatarPath,
|
||||
|
||||
@@ -31,23 +31,23 @@
|
||||
"__id__": 103
|
||||
},
|
||||
{
|
||||
"__id__": 292
|
||||
"__id__": 288
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 318
|
||||
},
|
||||
{
|
||||
"__id__": 320
|
||||
},
|
||||
{
|
||||
"__id__": 322
|
||||
},
|
||||
{
|
||||
"__id__": 324
|
||||
},
|
||||
{
|
||||
"__id__": 326
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 328
|
||||
"__id__": 324
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -2985,7 +2985,7 @@
|
||||
"__id__": 127
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 129
|
||||
@@ -4818,11 +4818,17 @@
|
||||
"__id__": 219
|
||||
},
|
||||
{
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 277
|
||||
},
|
||||
{
|
||||
"__id__": 279
|
||||
},
|
||||
{
|
||||
"__id__": 281
|
||||
},
|
||||
@@ -4831,16 +4837,10 @@
|
||||
},
|
||||
{
|
||||
"__id__": 285
|
||||
},
|
||||
{
|
||||
"__id__": 287
|
||||
},
|
||||
{
|
||||
"__id__": 289
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 291
|
||||
"__id__": 287
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -5067,14 +5067,17 @@
|
||||
"__id__": 220
|
||||
},
|
||||
{
|
||||
"__id__": 228
|
||||
"__id__": 226
|
||||
},
|
||||
{
|
||||
"__id__": 234
|
||||
"__id__": 232
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 238
|
||||
},
|
||||
{
|
||||
"__id__": 240
|
||||
},
|
||||
@@ -5082,14 +5085,11 @@
|
||||
"__id__": 242
|
||||
},
|
||||
{
|
||||
"__id__": 244
|
||||
},
|
||||
{
|
||||
"__id__": 247
|
||||
"__id__": 245
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 249
|
||||
"__id__": 247
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -5136,13 +5136,10 @@
|
||||
},
|
||||
{
|
||||
"__id__": 223
|
||||
},
|
||||
{
|
||||
"__id__": 225
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 227
|
||||
"__id__": 225
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -5187,7 +5184,7 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 66.7265625,
|
||||
"width": 145,
|
||||
"height": 68.04
|
||||
},
|
||||
"_anchorPoint": {
|
||||
@@ -5229,8 +5226,8 @@
|
||||
"_actualFontSize": 48,
|
||||
"_fontSize": 48,
|
||||
"_fontFamily": "NotoSans-Regular",
|
||||
"_lineHeight": 54,
|
||||
"_overflow": 0,
|
||||
"_lineHeight": 38.5,
|
||||
"_overflow": 2,
|
||||
"_enableWrapText": false,
|
||||
"_font": {
|
||||
"__uuid__": "52af39e6-df78-413a-88bb-72dfdca7ec84",
|
||||
@@ -5272,27 +5269,6 @@
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "d0uaKlRZJFBaqGg9HAS8Kr"
|
||||
},
|
||||
{
|
||||
"__type__": "d7e4fOii5xNLqH2PF6de4pP",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 220
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 226
|
||||
},
|
||||
"languageKey": "girldetailpanel.chatbtn",
|
||||
"defaultText": "",
|
||||
"autoUpdate": true,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "5cJiT+aq5Oba0pXvMhBbKb"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
@@ -5318,14 +5294,14 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 229
|
||||
"__id__": 227
|
||||
},
|
||||
{
|
||||
"__id__": 231
|
||||
"__id__": 229
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 233
|
||||
"__id__": 231
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -5362,11 +5338,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 228
|
||||
"__id__": 226
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 230
|
||||
"__id__": 228
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -5390,11 +5366,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 228
|
||||
"__id__": 226
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 232
|
||||
"__id__": 230
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -5454,14 +5430,14 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 235
|
||||
"__id__": 233
|
||||
},
|
||||
{
|
||||
"__id__": 237
|
||||
"__id__": 235
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 239
|
||||
"__id__": 237
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -5498,11 +5474,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 234
|
||||
"__id__": 232
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 236
|
||||
"__id__": 234
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -5526,11 +5502,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 234
|
||||
"__id__": 232
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 238
|
||||
"__id__": 236
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -5614,7 +5590,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 241
|
||||
"__id__": 239
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -5642,7 +5618,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 243
|
||||
"__id__": 241
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -5687,11 +5663,11 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 245
|
||||
"__id__": 243
|
||||
},
|
||||
"clickEvents": [
|
||||
{
|
||||
"__id__": 246
|
||||
"__id__": 244
|
||||
}
|
||||
],
|
||||
"_interactable": true,
|
||||
@@ -5759,7 +5735,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 248
|
||||
"__id__": 246
|
||||
},
|
||||
"_alignFlags": 16,
|
||||
"_target": null,
|
||||
@@ -5808,32 +5784,32 @@
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 251
|
||||
"__id__": 249
|
||||
},
|
||||
{
|
||||
"__id__": 259
|
||||
"__id__": 255
|
||||
},
|
||||
{
|
||||
"__id__": 265
|
||||
"__id__": 261
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 267
|
||||
},
|
||||
{
|
||||
"__id__": 269
|
||||
},
|
||||
{
|
||||
"__id__": 271
|
||||
},
|
||||
{
|
||||
"__id__": 273
|
||||
},
|
||||
{
|
||||
"__id__": 275
|
||||
},
|
||||
{
|
||||
"__id__": 278
|
||||
"__id__": 274
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 280
|
||||
"__id__": 276
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -5870,23 +5846,20 @@
|
||||
"_objFlags": 512,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 250
|
||||
},
|
||||
{
|
||||
"__id__": 252
|
||||
},
|
||||
{
|
||||
"__id__": 254
|
||||
},
|
||||
{
|
||||
"__id__": 256
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 258
|
||||
"__id__": 254
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -5923,16 +5896,16 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 251
|
||||
"__id__": 249
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 253
|
||||
"__id__": 251
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 66.7265625,
|
||||
"height": 125.49599999999998
|
||||
"width": 145.626563,
|
||||
"height": 65.096
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@@ -5951,11 +5924,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 251
|
||||
"__id__": 249
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 255
|
||||
"__id__": 253
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -5973,8 +5946,8 @@
|
||||
"_actualFontSize": 48,
|
||||
"_fontSize": 48,
|
||||
"_fontFamily": "NotoSans-Regular",
|
||||
"_lineHeight": 99.6,
|
||||
"_overflow": 0,
|
||||
"_lineHeight": 37,
|
||||
"_overflow": 2,
|
||||
"_enableWrapText": false,
|
||||
"_font": {
|
||||
"__uuid__": "52af39e6-df78-413a-88bb-72dfdca7ec84",
|
||||
@@ -6016,27 +5989,6 @@
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "d6L1tZXCpGI5qPucj6Lkx2"
|
||||
},
|
||||
{
|
||||
"__type__": "d7e4fOii5xNLqH2PF6de4pP",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 251
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 257
|
||||
},
|
||||
"languageKey": "girldetailpanel.chatbtn",
|
||||
"defaultText": "",
|
||||
"autoUpdate": true,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "bevrWNKgpB84FWIZckM8ww"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
@@ -6056,20 +6008,20 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 260
|
||||
"__id__": 256
|
||||
},
|
||||
{
|
||||
"__id__": 262
|
||||
"__id__": 258
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 264
|
||||
"__id__": 260
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -6106,11 +6058,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 259
|
||||
"__id__": 255
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 261
|
||||
"__id__": 257
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -6134,11 +6086,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 259
|
||||
"__id__": 255
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 263
|
||||
"__id__": 259
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -6218,20 +6170,20 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 266
|
||||
"__id__": 262
|
||||
},
|
||||
{
|
||||
"__id__": 268
|
||||
"__id__": 264
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 270
|
||||
"__id__": 266
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -6268,11 +6220,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 265
|
||||
"__id__": 261
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 267
|
||||
"__id__": 263
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -6296,11 +6248,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 265
|
||||
"__id__": 261
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 269
|
||||
"__id__": 265
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -6354,11 +6306,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 272
|
||||
"__id__": 268
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -6382,11 +6334,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 274
|
||||
"__id__": 270
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -6427,15 +6379,15 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 276
|
||||
"__id__": 272
|
||||
},
|
||||
"clickEvents": [
|
||||
{
|
||||
"__id__": 277
|
||||
"__id__": 273
|
||||
}
|
||||
],
|
||||
"_interactable": true,
|
||||
@@ -6475,7 +6427,7 @@
|
||||
"_duration": 0.1,
|
||||
"_zoomScale": 1.2,
|
||||
"_target": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
@@ -6499,11 +6451,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 250
|
||||
"__id__": 248
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 279
|
||||
"__id__": 275
|
||||
},
|
||||
"_alignFlags": 16,
|
||||
"_target": null,
|
||||
@@ -6552,7 +6504,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 282
|
||||
"__id__": 278
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -6580,7 +6532,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 284
|
||||
"__id__": 280
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -6625,7 +6577,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 286
|
||||
"__id__": 282
|
||||
},
|
||||
"_alignFlags": 40,
|
||||
"_target": null,
|
||||
@@ -6661,19 +6613,19 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 288
|
||||
"__id__": 284
|
||||
},
|
||||
"timeLabel": {
|
||||
"__id__": 223
|
||||
},
|
||||
"timeBtnLabel": {
|
||||
"__id__": 237
|
||||
"__id__": 235
|
||||
},
|
||||
"vipLabel": {
|
||||
"__id__": 254
|
||||
"__id__": 252
|
||||
},
|
||||
"vipBtnLabel": {
|
||||
"__id__": 262
|
||||
"__id__": 258
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
@@ -6691,7 +6643,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 290
|
||||
"__id__": 286
|
||||
},
|
||||
"_opacity": 255,
|
||||
"_id": ""
|
||||
@@ -6723,20 +6675,20 @@
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 293
|
||||
"__id__": 289
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 317
|
||||
"__id__": 313
|
||||
},
|
||||
{
|
||||
"__id__": 319
|
||||
"__id__": 315
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 321
|
||||
"__id__": 317
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -6773,24 +6725,24 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 292
|
||||
"__id__": 288
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 294
|
||||
"__id__": 290
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 312
|
||||
"__id__": 308
|
||||
},
|
||||
{
|
||||
"__id__": 314
|
||||
"__id__": 310
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 316
|
||||
"__id__": 312
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -6827,27 +6779,27 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 293
|
||||
"__id__": 289
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 295
|
||||
"__id__": 291
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 301
|
||||
},
|
||||
{
|
||||
"__id__": 303
|
||||
},
|
||||
{
|
||||
"__id__": 305
|
||||
},
|
||||
{
|
||||
"__id__": 307
|
||||
},
|
||||
{
|
||||
"__id__": 309
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 311
|
||||
"__id__": 307
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -6884,26 +6836,26 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 294
|
||||
"__id__": 290
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 292
|
||||
},
|
||||
{
|
||||
"__id__": 294
|
||||
},
|
||||
{
|
||||
"__id__": 296
|
||||
},
|
||||
{
|
||||
"__id__": 298
|
||||
},
|
||||
{
|
||||
"__id__": 300
|
||||
},
|
||||
{
|
||||
"__id__": 302
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 304
|
||||
"__id__": 300
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -6940,11 +6892,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 295
|
||||
"__id__": 291
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 297
|
||||
"__id__": 293
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -6968,11 +6920,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 295
|
||||
"__id__": 291
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 299
|
||||
"__id__": 295
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -7010,11 +6962,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 295
|
||||
"__id__": 291
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 301
|
||||
"__id__": 297
|
||||
},
|
||||
"_alignFlags": 12,
|
||||
"_target": null,
|
||||
@@ -7046,11 +6998,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 295
|
||||
"__id__": 291
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 303
|
||||
"__id__": 299
|
||||
},
|
||||
"clickEvents": [],
|
||||
"_interactable": true,
|
||||
@@ -7115,11 +7067,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 294
|
||||
"__id__": 290
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 306
|
||||
"__id__": 302
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -7143,11 +7095,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 294
|
||||
"__id__": 290
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 308
|
||||
"__id__": 304
|
||||
},
|
||||
"_type": 3,
|
||||
"_inverted": false,
|
||||
@@ -7165,11 +7117,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 294
|
||||
"__id__": 290
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 310
|
||||
"__id__": 306
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -7223,11 +7175,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 293
|
||||
"__id__": 289
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 313
|
||||
"__id__": 309
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -7251,11 +7203,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 293
|
||||
"__id__": 289
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 315
|
||||
"__id__": 311
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -7309,11 +7261,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 292
|
||||
"__id__": 288
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 318
|
||||
"__id__": 314
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -7337,14 +7289,14 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 292
|
||||
"__id__": 288
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 320
|
||||
"__id__": 316
|
||||
},
|
||||
"image": {
|
||||
"__id__": 298
|
||||
"__id__": 294
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
@@ -7375,7 +7327,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 323
|
||||
"__id__": 319
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -7403,7 +7355,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 325
|
||||
"__id__": 321
|
||||
},
|
||||
"_alignFlags": 45,
|
||||
"_target": null,
|
||||
@@ -7439,11 +7391,11 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 327
|
||||
"__id__": 323
|
||||
},
|
||||
"m_rootNode": null,
|
||||
"payToTalkPanel": {
|
||||
"__id__": 287
|
||||
"__id__": 283
|
||||
},
|
||||
"editBox": {
|
||||
"__id__": 175
|
||||
@@ -7451,14 +7403,14 @@
|
||||
"girlName": {
|
||||
"__id__": 32
|
||||
},
|
||||
"girlVideo": {
|
||||
"__id__": 131
|
||||
"videoArea": {
|
||||
"__id__": 134
|
||||
},
|
||||
"layout": {
|
||||
"__id__": 76
|
||||
},
|
||||
"popUpImage": {
|
||||
"__id__": 319
|
||||
"__id__": 315
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -441,7 +441,7 @@
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": {
|
||||
"__uuid__": "754a00f9-2bf4-4ef9-b2a8-be09d1fb5a44@f9941",
|
||||
"__uuid__": "20fad4e5-6a91-4685-8861-b7b4a85512d6@f9941",
|
||||
"__expectedType__": "cc.SpriteFrame"
|
||||
},
|
||||
"_type": 0,
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": {
|
||||
"__uuid__": "754a00f9-2bf4-4ef9-b2a8-be09d1fb5a44@f9941",
|
||||
"__uuid__": "1000b7ea-1ea6-4f0b-8e42-72dba307f062@f9941",
|
||||
"__expectedType__": "cc.SpriteFrame"
|
||||
},
|
||||
"_type": 0,
|
||||
|
||||
@@ -0,0 +1,679 @@
|
||||
[
|
||||
{
|
||||
"__type__": "cc.Prefab",
|
||||
"_name": "TipsPanel",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_native": "",
|
||||
"data": {
|
||||
"__id__": 1
|
||||
},
|
||||
"optimizationPolicy": 0,
|
||||
"persistent": false
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "TipsPanel",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": null,
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 2
|
||||
},
|
||||
{
|
||||
"__id__": 10
|
||||
},
|
||||
{
|
||||
"__id__": 18
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 24
|
||||
},
|
||||
{
|
||||
"__id__": 26
|
||||
},
|
||||
{
|
||||
"__id__": 28
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 30
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 33554432,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "mask",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 3
|
||||
},
|
||||
{
|
||||
"__id__": 5
|
||||
},
|
||||
{
|
||||
"__id__": 7
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 9
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 33554432,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 2
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 4
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 700
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "c2tLhWwLBDnYLRDaWMRRxM"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Sprite",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 2
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 6
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 0
|
||||
},
|
||||
"_spriteFrame": {
|
||||
"__uuid__": "7d8f9b89-4fd1-4c9f-a3ab-38ec7cded7ca@f9941",
|
||||
"__expectedType__": "cc.SpriteFrame"
|
||||
},
|
||||
"_type": 0,
|
||||
"_fillType": 0,
|
||||
"_sizeMode": 0,
|
||||
"_fillCenter": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"_fillStart": 0,
|
||||
"_fillRange": 0,
|
||||
"_isTrimmedMode": true,
|
||||
"_useGrayscale": false,
|
||||
"_atlas": null,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "01BjwM3cpND5isd+/5/SZY"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Widget",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 2
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 8
|
||||
},
|
||||
"_alignFlags": 40,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
"_isAbsRight": true,
|
||||
"_isAbsTop": true,
|
||||
"_isAbsBottom": true,
|
||||
"_isAbsHorizontalCenter": true,
|
||||
"_isAbsVerticalCenter": true,
|
||||
"_originalWidth": 100,
|
||||
"_originalHeight": 0,
|
||||
"_alignMode": 2,
|
||||
"_lockFlags": 0,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "3cCCNgHU5AH6nbb6/n67eT"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "1c+Bxy1xJOrrL5HXTFbW+E",
|
||||
"instance": null,
|
||||
"targetOverrides": null,
|
||||
"nestedPrefabInstanceRoots": null
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "bg",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 11
|
||||
},
|
||||
{
|
||||
"__id__": 13
|
||||
},
|
||||
{
|
||||
"__id__": 15
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 17
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 33554432,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 10
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 12
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 119
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "98Mjhx8ixNbId87q1P4U+w"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Sprite",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 10
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 14
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": {
|
||||
"__uuid__": "33221d92-6943-4820-8898-ab1440bef579@f9941",
|
||||
"__expectedType__": "cc.SpriteFrame"
|
||||
},
|
||||
"_type": 0,
|
||||
"_fillType": 0,
|
||||
"_sizeMode": 0,
|
||||
"_fillCenter": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"_fillStart": 0,
|
||||
"_fillRange": 0,
|
||||
"_isTrimmedMode": true,
|
||||
"_useGrayscale": false,
|
||||
"_atlas": null,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "aek4vQQqFEp5BwJPOgX+QZ"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Widget",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 10
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 16
|
||||
},
|
||||
"_alignFlags": 40,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
"_isAbsRight": true,
|
||||
"_isAbsTop": true,
|
||||
"_isAbsBottom": true,
|
||||
"_isAbsHorizontalCenter": true,
|
||||
"_isAbsVerticalCenter": true,
|
||||
"_originalWidth": 117,
|
||||
"_originalHeight": 0,
|
||||
"_alignMode": 2,
|
||||
"_lockFlags": 40,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "70rJ/sR8tBmZ9PXotZbKbP"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "f32RbfHHRCHoUb1Y1OdHqi",
|
||||
"instance": null,
|
||||
"targetOverrides": null,
|
||||
"nestedPrefabInstanceRoots": null
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "text",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 19
|
||||
},
|
||||
{
|
||||
"__id__": 21
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 23
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 33554432,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 18
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 20
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 807.6796875,
|
||||
"height": 50.4
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "desNFjqw1Ow5UXMRWHhuYt"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Label",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 18
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 22
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 209,
|
||||
"g": 61,
|
||||
"b": 61,
|
||||
"a": 255
|
||||
},
|
||||
"_string": "Insufficient balance, need to purchase",
|
||||
"_horizontalAlign": 1,
|
||||
"_verticalAlign": 1,
|
||||
"_actualFontSize": 48,
|
||||
"_fontSize": 48,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 40,
|
||||
"_overflow": 0,
|
||||
"_enableWrapText": true,
|
||||
"_font": null,
|
||||
"_isSystemFontUsed": true,
|
||||
"_spacingX": 0,
|
||||
"_isItalic": false,
|
||||
"_isBold": false,
|
||||
"_isUnderline": false,
|
||||
"_underlineHeight": 2,
|
||||
"_cacheMode": 0,
|
||||
"_enableOutline": false,
|
||||
"_outlineColor": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 0,
|
||||
"g": 0,
|
||||
"b": 0,
|
||||
"a": 255
|
||||
},
|
||||
"_outlineWidth": 2,
|
||||
"_enableShadow": false,
|
||||
"_shadowColor": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 0,
|
||||
"g": 0,
|
||||
"b": 0,
|
||||
"a": 255
|
||||
},
|
||||
"_shadowOffset": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 2,
|
||||
"y": 2
|
||||
},
|
||||
"_shadowBlur": 2,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "f1Ia0mnHpIZr4gO/hi7/zb"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "ceS/A8XepOf5lvB27HQJBC",
|
||||
"instance": null,
|
||||
"targetOverrides": null,
|
||||
"nestedPrefabInstanceRoots": null
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 25
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 119
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "50KRUlRjRGoK/w18+7UsoL"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Widget",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 27
|
||||
},
|
||||
"_alignFlags": 40,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
"_isAbsRight": true,
|
||||
"_isAbsTop": true,
|
||||
"_isAbsBottom": true,
|
||||
"_isAbsHorizontalCenter": true,
|
||||
"_isAbsVerticalCenter": true,
|
||||
"_originalWidth": 119,
|
||||
"_originalHeight": 0,
|
||||
"_alignMode": 2,
|
||||
"_lockFlags": 0,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "f3RqfhgRdKVo+Y6/THc5tT"
|
||||
},
|
||||
{
|
||||
"__type__": "3a010UsG59K1LWk7NqbDBu+",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 29
|
||||
},
|
||||
"m_rootNode": null,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "7bAluu/8NHyK+Eahr5mMpe"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "630e3mesJKuZJC9gpYcm7p",
|
||||
"instance": null,
|
||||
"targetOverrides": null
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.50",
|
||||
"importer": "prefab",
|
||||
"imported": true,
|
||||
"uuid": "0949803f-8458-4fbd-ba56-e8e2fd6f8160",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"syncNodeName": "TipsPanel"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 358 B |
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"ver": "1.0.27",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "33221d92-6943-4820-8898-ab1440bef579",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "33221d92-6943-4820-8898-ab1440bef579@6c48a",
|
||||
"displayName": "矩形 12 拷贝",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"imageUuidOrDatabaseUri": "33221d92-6943-4820-8898-ab1440bef579",
|
||||
"isUuid": true,
|
||||
"visible": false,
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "33221d92-6943-4820-8898-ab1440bef579@f9941",
|
||||
"displayName": "矩形 12 拷贝",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 117,
|
||||
"height": 117,
|
||||
"rawWidth": 117,
|
||||
"rawHeight": 117,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-58.5,
|
||||
-58.5,
|
||||
0,
|
||||
58.5,
|
||||
-58.5,
|
||||
0,
|
||||
-58.5,
|
||||
58.5,
|
||||
0,
|
||||
58.5,
|
||||
58.5,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
117,
|
||||
117,
|
||||
117,
|
||||
0,
|
||||
0,
|
||||
117,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-58.5,
|
||||
-58.5,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
58.5,
|
||||
58.5,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "33221d92-6943-4820-8898-ab1440bef579@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"hasAlpha": true,
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "33221d92-6943-4820-8898-ab1440bef579@6c48a"
|
||||
}
|
||||
}
|
||||
+1
-1
Submodule xchat_cfg updated: 659dec1b4c...cc6aa9382d
Reference in New Issue
Block a user