From affb537801908f5e25e842b6e16e7e2fe35b2591 Mon Sep 17 00:00:00 2001 From: su Date: Wed, 19 Aug 2026 12:06:13 +0800 Subject: [PATCH] Publish obfuscated DLL package with full samples --- .gitignore | 2 + Editor/Aisu.SIM1.Face.Editor.dll | Bin 19968 -> 19456 bytes Runtime/Aisu.SIM1.Face.Runtime.dll | Bin 101888 -> 100864 bytes ...SIM1.Face.Samples.FaceDetectionDemo.asmdef | 16 + .../Scripts/FaceDetectionDemoBootstrap.cs | 382 +++++ .../Scripts/FaceDetectionDemoCamera.cs | 200 +++ .../Scripts/FaceDetectionDemoController.cs | 546 +++++++ .../Scripts/FaceDetectionDemoLogger.cs | 79 + .../Scripts/FaceDetectionDemoUserList.cs | 126 ++ .../Aisu.SIM1.Face.Samples.asmdef | 16 + .../Aisu.SIM1.Face.Samples.Editor.asmdef | 19 + .../Editor/FaceModuleDemoSceneGenerator.cs | 39 + .../Scripts/Core/FaceModuleKeyboardTester.cs | 1347 +++++++++++++++++ .../UI/Common/FaceModuleDemoBootstrap.cs | 173 +++ .../UI/Common/FaceModuleUiCommon.cs | 927 ++++++++++++ .../UI/Pages/FaceModuleAdvancedPages.cs | 511 +++++++ .../UI/Pages/FaceModulePages.cs | 940 ++++++++++++ .../UI/ViewModels/FaceModuleViewModels.cs | 78 + 18 files changed, 5401 insertions(+) create mode 100644 Samples~/Face Detection Demo/Aisu.SIM1.Face.Samples.FaceDetectionDemo.asmdef create mode 100644 Samples~/Face Detection Demo/Scripts/FaceDetectionDemoBootstrap.cs create mode 100644 Samples~/Face Detection Demo/Scripts/FaceDetectionDemoCamera.cs create mode 100644 Samples~/Face Detection Demo/Scripts/FaceDetectionDemoController.cs create mode 100644 Samples~/Face Detection Demo/Scripts/FaceDetectionDemoLogger.cs create mode 100644 Samples~/Face Detection Demo/Scripts/FaceDetectionDemoUserList.cs create mode 100644 Samples~/SI-M1 Face Demo/Aisu.SIM1.Face.Samples.asmdef create mode 100644 Samples~/SI-M1 Face Demo/Editor/Aisu.SIM1.Face.Samples.Editor.asmdef create mode 100644 Samples~/SI-M1 Face Demo/Editor/FaceModuleDemoSceneGenerator.cs create mode 100644 Samples~/SI-M1 Face Demo/Scripts/Core/FaceModuleKeyboardTester.cs create mode 100644 Samples~/SI-M1 Face Demo/UI/Common/FaceModuleDemoBootstrap.cs create mode 100644 Samples~/SI-M1 Face Demo/UI/Common/FaceModuleUiCommon.cs create mode 100644 Samples~/SI-M1 Face Demo/UI/Pages/FaceModuleAdvancedPages.cs create mode 100644 Samples~/SI-M1 Face Demo/UI/Pages/FaceModulePages.cs create mode 100644 Samples~/SI-M1 Face Demo/UI/ViewModels/FaceModuleViewModels.cs diff --git a/.gitignore b/.gitignore index da2c31b..29dff36 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ UserSettings/ *.asmdef *.pdb *.mdb +!Samples~/**/*.cs +!Samples~/**/*.asmdef # OS/editor noise .DS_Store diff --git a/Editor/Aisu.SIM1.Face.Editor.dll b/Editor/Aisu.SIM1.Face.Editor.dll index 2362395008fa37d618b4fe535d4e07c45d75003b..e2ef8c4a5357e8f0d5ce057c025e7873cbc32cb4 100644 GIT binary patch delta 7006 zcma)B4RBOdmOl5s_wIZBI(ejDl1@TQNC+ekI)TLC@-w<7gsA)sKZ}S62vMR2Xqq(O z4hHB}XGWcMMl)}5RG1M_*&Q843uo08s$|tw=MQi#U1u2=x7by;7{!_?Ysyt-zjI&b z2WPfwyXf=I`R=*r@1A?_OOxL#^7o5-?`xO!ap4fnAtHq@KIeKs>X_qCN5o4aQ_FY` zzA@eVdnhesAdjy(SYK-HBPt3zyQhUKM3ZaI23&{lobWrM*3)zI5ZT6M;XjBbF)w^i zjITNcGyJ&%Ur83d(oS@`g-F2C^l-849Agl<0j9a6k`D$}xKEbl5UAUjTBW|%S8-03 zS_!MUfmEqVsK92$tRUK)EfXLfND!&FWUD1@-hy1+A}4z(_#npGP6oN9ieom5ik!&V zb0QwL8)eJ2(HTF4M)q!_FxXrhx&B80*)=A}7LcGQnwJvE zBB$A))P|s#JuyYFx3UVdOu4Eo7!&@;sBDh{ZVO7FP--U3=Ej0r0zf0@qXL&rsK93% z3U&F&n6k7K0$h}i!u4=*s)Msi#k2QYa8?d5NP;xl5m3QeL8YcTC_A!i!|r->W@Qyd zT=hNV4(k?`6{mb&jIrU1W_@l923ukVVh58F6>*z$TqCzs^DLRIRd9I$cv9I_;4?Mg zjZCdZ3@$42$c%&77}SBng-g=N)UyJ~U_3u%hWjAX01`|9X`D=@t&%Px3RhY&F(&M_ zF3+)HS2dp>i=r7{Vv$t#o9ufcRE$g`Xr>7S@V*f^V0cmlzcd0*W;hkWZ;rst45L-q z$Z3Xik?|>`aA^wIgubC?h*Y;0s5=2S#9Q8ib-(QDxsA!KX1k zDLksG7ok#a@E0I%iWD;9>fMXFpu}kJ;SMg2HG7d*5lq*k*=C0}yGqa1y%Ww1NA zxjMs(o!T6ZBy6|699I`uJ}Xi|H-mv5(!iF>06^_+s8xIyJt!t7(SiGB2bW`De}IDu z-6#iejF^#yxj=TZNbki}v#m1oSmor1wK!$Zz?vPY&ks*I)nb15g{GCUx?DkD#~=r= zxy@)V>6-eKT^K_s!2-5A<3m(T4j^(f^Yua`vEfJ-awIIu><5?=lyUYlYr8{yl&8$5 zh7pE88XNJvo4K6gHM_XD#CX!F8!M_$C?Vafb}^i^9N5#Yb)I@LF$S zH*P%Aou@f0XRZxD^`_v~uN(7&OGeqpeB%7n z#1_>UU}2P-U0Xt%af|akTzIrZS8PhDU~%~SG2_LWu%cvKZY?xQt?Yx)Pgv1}p(kb> z2As0dUA&J9LB0*FVpyjtVP<+TxZ^sIb4fI*$XpLLl}uRrdMj1F8if~({JvnMNr%`{ zI%H)X`|0KRC72(8DYbn&=nYSnT$9r$k8Y^yR*TkS<#4bhbndCbacLmvZXZEMtv~AE z%%6X7jvATPHTp;`toapi{guuLf0}5V@YTBC06p~bjd;YfJ@AYRD*R)jGItXYMDYNi zLe7tYtqA&n2Z+5;&R_#rY@8xz<_RQ3S}x8WVcpok#$mnezeGrS1o=;m?AXM}ni2SS z8qN)5Mj*RXTf;3kw20*q(m#SsijeFGa*0NQEkH_5-yH2@Wu&|nLoN2MZFrMAaWLwE=h9VX{d^>?vHaaBg9_fM?IZb4Z4Css!0i+ri`*gvr< zJD>-~M(&0Of?Hs!I5n@}cF11jew016gF`47%MDvoJGKwQ1ydA5mRy6I|Fi~er~$u_ zHBT@ytvqq47Htr8EiPn6*8;D!MXBk-(pgKX+>T~rDbH;^Kdmrmx&`89w_9t;=FK%%y$f#&qd*lvafbymeQFfeM3>h<;&*I!Ppm&Kg8wN zFnePLrAASY?)VU|kIk}NYO{7Lj|`QO9^GSSq)(@v zi$LpROn(jP(oX2O^c$Dy$C`eik?FDBO3@2$EwZ^?@@TnwG3HZ^dTP10iV51MZ zv#ccjEi5GI970rN2%ftHLHM-HW@NpbWhoj1T%p3VERS9`G7^6XFSJ-#jz3~O>VbQY z0-b#qDDFm7MbRCISJA)8SCHTTX!@FbSREt$)uKOm>%xbZ?p9GkzqL0gOG^UMHSPx0 zhuLF@rA{rmR6$GgSDS8*mgLXG5NX~vneNcE2~^O3*bSzjTkIy#7c?@_N`Ys(xQ-p( zN6*{)g`gp6b&RD|g|T-WmMXasp_z~@eNvE~RV@9X9?ghmqpM>XL(taok<_oHdkfNc zwDgOD^s4TKk}Tj_J^He5lc<7;RS>Lw3?XIhV+}G$z(1 zm(a(?Tp$h3VmV1`uAn!q<>23mT`T)&F?xe_p3TXA`XdV7PaDm{vW;GLUzgkI3F|nh zE#HEPb50lVW5DmC*Jyp-Qb_4gYpgf3B3ybUGwLl z$3fd@jeQ*aG4~y_pBBc>8t>B{`VE5PE!QUM#h0MRTxGS15LM|E?-(bIDoWeqttxsl zXEa%J#Tja`V#EV;#kW+OwL~lRiHpnyR-f4CE(Tq$7FhkF(OnMuo>&cJ8LhK=#4Owe zJz|cg*IVm>bmHXi5sNf(i^Kfwp#7rHNn><@z14by%(zQ$&`K-!4Y+?!xHMNhE!TtJ zW30#U-Ol~sO{Wd?89n;A9^H*mUZ4ZkU7}aLX$*pPn-75gEB3cZ#pK}+%uS$0^mm{o zRDx5Wj4ly%_?hMjF@+5CX=@6_%@;sR&41r$bztD6SPQyN=0Sfg_kkvjvGRaiWNbCI z8+RJd8?PB>jL(d?In|tNK4rdWeqf$4KQl|LX;z1ov+l9XJdTC)J{xdCV2clb1f}pB z^L01kAo%L%?4Q9F{~2tC#w===<@nan%h)$-j2e7*(lqlfT5Im4PtEYH+DRonl-_cE zCcClkI!fc;^`SX#vq(RZ9cRe&4PpQIK%~PTjBk?Zo5CaG|I1GIQF=Y4!zUWLFmR^f zf@C^Pvoo2Ey*-;~(dOPwG%wS)2?~`Hy28JiaFvtJPH^3+-6_abA9j9 zbsNINjei+>O;zE_rmGMAtf^1NyE2=%Q&+aPXKQbG$K?LdN>zvTsTx6tE=?_!lKR3^ zoioB;w6qEezifF*QcHMnHhzH3Kf=$@nR+t@a#QaBwOgN-)Dz}9*FqTE)&mh0@fEJ>G*W^_%U}p>w!>CUib)KW5b#Ht13{Q|LU`ewU73X?wq4^F`w73?FP5^#ud+*osHr7sy239u>&P$13x+7rD!lJV z&-3tNBcO}lLWE!CSxBgsItB7M(p4QM=QK=nY|C$x_?RT5hYOfzc?z~`$z#)PHh!7& ztNbbhR|h;KI=yh_oNc+7Z6cV2^b=MITV>q@jCdZD{I7dxG{`nU$2My`j}=LPQMTbP zkn&kxYNOVF^COY94iAB?qvct}yVcF7OCe2zXt~N2pVIpCHtvGtp z5i)DLHzcWNGH;ImTh`)flNHVD%{&q zo!gBdF*C+RUdAe>Ej`I`mT;UUTrEW9u)7Bm`5$V<`~xi5F+YKpa3ohLu^LN=CP-Ky z`Nxp#YN@oHZT#x%NiS|&h~`P@=bv$~mfRYN{K_Y>T$IQkfrQZ`5HK#41K9y*s2V78 zYMzZq@{dXU`i@Yebz#}z_2yw{F&rZUiws*w!{uGUc*PaYpKt`(`lvXLoiOzInEATF j`lLFg(a^uFS#%sqEcir(t@46H-W8u4k}lN1V5|MVxD!ng delta 7377 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 QcGz0-mBJU!0rMsMfA)96MgRZ+ diff --git a/Runtime/Aisu.SIM1.Face.Runtime.dll b/Runtime/Aisu.SIM1.Face.Runtime.dll index 6374e8cfa83ff87310bb2970ecd2280cffc2bb40..ff7671ca8bc0283f44bcda8bf2cd2dee4097b682 100644 GIT binary patch literal 100864 zcmb@v349bq`aWLMGt)Df91t>@2?>x15NI+YnLI0R4Rae>7F~zE$sAZ@u-_ zTUU3_Zu_3Ef=a0n{(k;hsrwQ0-&6^=9dshQtoFe&b$8K=b@vB$eX(w@BbK(Oj>~2a z&mMeCYVpCx9-BEKb;zNq?1{&wmL8j$vB$jBF_|TYHkX#hhPtfh%v5UEKu|5+bJdYv zZ67M5t~d}?>a>7Trp7j3jdaQ@F;%AxEjO{0U;hIV|MOo^EjmM~zVd%Qc0pZ4eRx$s z&1U*>@Xs@Ga}j+QP$hZj*QZiSp#`~rQNXiukW$Sj9J=fTz++ar?P6P9xxHc_S=5|u z&n_l{vUxJDLRsIxspzie?4d_zP*7xr%);x;Ugf6w$Ryd9dc{A=W~i__^I@eHe5_O< zr4;#9L4#qV6`@3Tpg~o%gw<)F0*m{RSC%zB-XSnGgI$c2(?9g0zJIw%q< zO{=1Y-3%uT6>MVd5i&C~V-PtQ8DOQ;z~|C1yIi`+mxjV}_+nogCX>ULB3+zT zk%qyZFpz`t?1vb#LmpQYGcy`O6q~gvGt+{U1#x1T@ko_uM549W%!~qz4on9UrR|W# ztdBTltS;*GVN~Q`bcQNIX;mJgy@X^eqQT`V5i@Li7LY$D2e{&dg*xKdnV+Egn9YfAqQ1S*%K|nMB3ESI%KycJh^WP z&&tr!o_tCo(d0pBy2D09qE(V+3nC)aa>K3zkZ7$i?7>KAu$u!1%4!&8*h7HLpkHIK z+;;S7%pu0>7SIp#=!XkEK|j3(xR9P0kKP*%jXvBU!$vDY==-1}iCv741xtb97(uIw z3T!}`4PF^Z0PzP8AqgOE^bnE&;wBFv2_XLHAtdpQD;2AO`b~v;p;pA<`X+Ojj9Ux3 z1EMTsL2pciE$9Oh(LN0Y!&Oig`Zs7n6J{)}Ok^Q1tX3nAGB23p);ADbvoysCuiJo0 zm8!1WeWbrRXz^?7Bh_XK ztkglTtq&$5q|y#55?Qk}xzI3!7P`n>uX|pPr)emT0YQ1e;ozW4fADLuP`o=pqsKr> z*Ck5RrOFHytwn|^N-iiZ3awe%jS*8GYWh10sA$7PxQLsf&J0u_E=}|Scfo!`n;RoR z_)u6?GG;awDcXIkIE`^bqF@H&Fs2L(x-wrJe5`E-U=&NUSR?@n zqUF)XQea>}rfO?KHqb^zQF&2gUss|;B-2-B)+45hX1xFU`@{l!p^VnK*g49Lqz=g;I5e87(RgO9xg&%FXgfcc7xIysUAUl8kaQ z**+91$W)S8%bX|=xeZVE@laYorIHnW+V1ZD`De4DFPvWA2Kv^85Di90pO^M})0E1^ z;zq-@v9HYJ0*$2kiJS1uWS~M`%+$rC<;jKJq0*wJJ1fORP@eU`#5qo2bJ}32qC{(* zhI}};Ng3Q+utB&HemEkLYU zYFN$C-NJ?|@(v(3L>(3}5+PX(SR-j>FjCGD7)%OQjCLfgHsUoq%`9d>7rMB)R$DY_ zwg(MN9W+(FY1Y!(q&kr&xnS+0S7V0eSLHGDcm>4Qz_7u~;v9HH-q(cG64V2|BCmQ2 z_0(4Ntf;o{A&dNVS1o`r1(^Pj#uKKxKp6VAiKq{Q2lWMYeL=l$^7AwkLG6#+CIt() zXxo5yRTx9$V_0zhdOo+tAr&*NNr=4m8w&H4!dQWCNsKDirGv6uf`h@5?jbr+%oefb z(qCaU1?4e3z&kN2X1HEg`y;LZ11R2~#jCt2ojw&4y602{t<>#7MiM-Tv1VyZrA-XAg)uA{S}S2_3)eOlOH`W@4~wZ=T=Tog@3Z1IF<>);sVtTb zyNuznIbUHlp`atwFY-5)>e5^x$G}BQievV7C!mmJ*~ z!+xv)qIW_cF+_G+m*+d!#(l z^r%}U6baeb7I4yYub#z3{}_gAmcFK4gJJ4frXj0mI~VKCc^YhZ4Vkr7OFWujZQp!) zP(JAzg-ay$?}*6rZGG2$!nw*i0XV%2shf@~j{aY@@FOjb%#utOxtlG%}xT+ieb zNv>sbCrNUJlHHTZ^os0$5}%YkO5$U)*w+AmSoSQ556oUH@%$`yZou!J{iDP?X77`D zyX;dEkITL+adY;s5)aFMC-I?&< zW)w_WVHv65ArxG%nu@9R8N!uM>Y~;t#8_6w{MVN6;qC9Z50T zL|+uin0-;=`Pug*-aY$?#5-oclz6-BeKqI*cg0_ ztTkgN1fi=Eql4IJgq{X&BQpAfZP7uAzlshDM}2n`))&(C5sUf&^{%fcoz%BAIxHLK zV-ltO^-aNH=}0hxwz^o>;$hJuU@@O#Z0Px15K;R5O;tbZ2 zbaUME8Dd0Gtuop%Y-0`vPRM9)Wb!U1vj?M(99Cqc)RO__unHvmD&>&5VJ(2eS4#Zq z95TYc|Bt*do9;`d*of@USmq2m0h#xV%x*wpwhOBCGEAxq0U6eQ2-}+=c75%r4AwO< zRiFA6t|>E;X@~81Ti-&2k?gK;?j_RbHV-3hE70wu5Y#8RxdwgqC^Vfre9+$`^b9j& ziD*zY(B0#Z33CR8hR3m!S9-fsxNK$)tkSN*Urg4){DbX%tlb&0CJQ7>8l%50M=<>#o08O+bE1ztkoVtoRYq>4nSGGevyrd zr(0RFWTv7rZn8MfLx`a2Ix-@KOUy(xAr6LHjjiiAn%RMkRy~xgy6T1jIiLb|UG6u8 z+ELatO#nf z8o)k;7kC_;=r5jN%yR`v0P&=Uki>F~28U%0D@!dJ$)q&cvI)^SC3Lp^FbZX+Q&{?r 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 NnS-_6`TYO2z)wMsbqfFh literal 101888 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 diff --git a/Samples~/Face Detection Demo/Aisu.SIM1.Face.Samples.FaceDetectionDemo.asmdef b/Samples~/Face Detection Demo/Aisu.SIM1.Face.Samples.FaceDetectionDemo.asmdef new file mode 100644 index 0000000..7786c90 --- /dev/null +++ b/Samples~/Face Detection Demo/Aisu.SIM1.Face.Samples.FaceDetectionDemo.asmdef @@ -0,0 +1,16 @@ +{ + "name": "Aisu.SIM1.Face.Samples.FaceDetectionDemo", + "rootNamespace": "Aisu.SIM1.Face.Samples.FaceDetectionDemo", + "references": [ + "Aisu.SIM1.Face.Runtime" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Samples~/Face Detection Demo/Scripts/FaceDetectionDemoBootstrap.cs b/Samples~/Face Detection Demo/Scripts/FaceDetectionDemoBootstrap.cs new file mode 100644 index 0000000..af1ee47 --- /dev/null +++ b/Samples~/Face Detection Demo/Scripts/FaceDetectionDemoBootstrap.cs @@ -0,0 +1,382 @@ +using Aisu.SIM1.Face.Core; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace Aisu.SIM1.Face.Samples.FaceDetectionDemo +{ + /// + /// 人脸检测 Demo 场景 UI 动态构建器。 + /// + public sealed class FaceDetectionDemoBootstrap : MonoBehaviour + { + private Font m_font; // UI 字体。 + + private void Awake() + { + Build(); + } + + /// + /// 构建 MVP 测试页面。 + /// + public void Build() + { + m_font = Resources.GetBuiltinResource("Arial.ttf"); + EnsureEventSystem(); + + var manager = FindObjectOfType() ?? new GameObject("FaceModuleManager").AddComponent(); + var camera = gameObject.AddComponent(); + var logger = gameObject.AddComponent(); + var userList = gameObject.AddComponent(); + var controller = gameObject.AddComponent(); + + var canvasGo = Create("FaceDetectionDemoCanvas", transform); + var canvas = canvasGo.AddComponent(); + canvas.renderMode = RenderMode.ScreenSpaceOverlay; + canvasGo.AddComponent(); + var scaler = canvasGo.AddComponent(); + scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; + scaler.referenceResolution = new Vector2(1280, 720); + + var root = Create("Root", canvasGo.transform); + Stretch(root.GetComponent()); + var rootLayout = root.AddComponent(); + rootLayout.padding = new RectOffset(16, 16, 16, 16); + rootLayout.spacing = 10; + rootLayout.childControlWidth = true; + rootLayout.childForceExpandWidth = true; + + var title = Text(root.transform, "SI-M1 Face Detection Demo", 28, TextAnchor.MiddleLeft); + title.color = new Color(0.05f, 0.07f, 0.1f); + + var statusText = Text(root.transform, "摄像头未打开 | 模组未连接", 20, TextAnchor.MiddleLeft); + statusText.color = new Color(0.12f, 0.18f, 0.24f); + + var body = Create("Body", root.transform); + body.AddComponent().flexibleHeight = 1f; + var bodyLayout = body.AddComponent(); + bodyLayout.spacing = 12; + bodyLayout.childControlHeight = true; + bodyLayout.childForceExpandHeight = true; + + var left = Panel(body.transform, "LeftPanel", new Color(0.95f, 0.97f, 1f)); + left.AddComponent().flexibleWidth = 1f; + var leftLayout = left.AddComponent(); + leftLayout.padding = new RectOffset(10, 10, 10, 10); + leftLayout.spacing = 8; + leftLayout.childControlWidth = true; + leftLayout.childForceExpandWidth = true; + + var right = Panel(body.transform, "RightPanel", new Color(0.98f, 0.98f, 0.96f)); + right.AddComponent().preferredWidth = 430; + var rightLayout = right.AddComponent(); + rightLayout.padding = new RectOffset(10, 10, 10, 10); + rightLayout.spacing = 8; + rightLayout.childControlWidth = true; + rightLayout.childForceExpandWidth = true; + + var cameraDropdown = Dropdown(left.transform, "未发现摄像头"); + var cameraRow = Row(left.transform); + var refreshCameraButton = Button(cameraRow.transform, "刷新摄像头"); + var openCameraButton = Button(cameraRow.transform, "打开摄像头"); + var closeCameraButton = Button(cameraRow.transform, "关闭摄像头"); + + var previewFrame = Panel(left.transform, "CameraPreview", Color.black); + previewFrame.AddComponent().flexibleHeight = 1f; + var preview = Create("Preview", previewFrame.transform).AddComponent(); + preview.color = Color.white; + var previewRect = preview.GetComponent(); + previewRect.anchorMin = Vector2.zero; + previewRect.anchorMax = Vector2.one; + previewRect.offsetMin = Vector2.zero; + previewRect.offsetMax = Vector2.zero; + var aspect = preview.gameObject.AddComponent(); + aspect.aspectMode = AspectRatioFitter.AspectMode.FitInParent; + + Text(right.transform, "串口 / 模组", 22, TextAnchor.MiddleLeft); + var serialDropdown = Dropdown(right.transform, "手动输入串口"); + var serialInput = Input(right.transform, "串口名,例如 COM3 或 /dev/ttyUSB0"); + var baudInput = Input(right.transform, "115200"); + var serialRow = Row(right.transform); + var refreshSerialButton = Button(serialRow.transform, "刷新串口"); + var connectButton = Button(serialRow.transform, "连接模组"); + var disconnectButton = Button(serialRow.transform, "断开模组"); + + Text(right.transform, "人脸操作", 22, TextAnchor.MiddleLeft); + var userNameInput = Input(right.transform, "User"); + var adminToggle = Toggle(right.transform, "管理员", false); + var faceRow = Row(right.transform); + var enrollButton = Button(faceRow.transform, "录入人脸"); + var verifyButton = Button(faceRow.transform, "检测人脸"); + + var resultText = Text(right.transform, "结果: -", 20, TextAnchor.UpperLeft); + resultText.gameObject.AddComponent().preferredHeight = 58; + + Text(right.transform, "人脸数据", 22, TextAnchor.MiddleLeft); + var userButtonRow = Row(right.transform); + var refreshUsersButton = Button(userButtonRow.transform, "刷新用户列表"); + var userScroll = ScrollView(right.transform, out var userContent); + userScroll.GetComponent().preferredHeight = 170; + + Text(root.transform, "操作日志", 22, TextAnchor.MiddleLeft); + var logRow = Row(root.transform); + var clearLogButton = Button(logRow.transform, "清空日志"); + var logScroll = ScrollView(root.transform, out var logContent); + logScroll.GetComponent().preferredHeight = 150; + var logText = Text(logContent, string.Empty, 18, TextAnchor.UpperLeft); + logText.font = m_font; + logText.color = Color.white; + logText.horizontalOverflow = HorizontalWrapMode.Wrap; + logText.verticalOverflow = VerticalWrapMode.Overflow; + logText.gameObject.AddComponent().flexibleWidth = 1f; + logContent.gameObject.GetComponent().color = new Color(0.07f, 0.08f, 0.09f); + + camera.Bind(preview, aspect, logger); + logger.Bind(logText, logScroll); + userList.Bind(userContent, m_font, controller.DeleteUser); + controller.Bind(manager, camera, logger, userList, cameraDropdown, serialDropdown, serialInput, baudInput, userNameInput, adminToggle, statusText, resultText); + + refreshCameraButton.onClick.AddListener(controller.RefreshCameras); + openCameraButton.onClick.AddListener(controller.OpenCamera); + closeCameraButton.onClick.AddListener(controller.CloseCamera); + refreshSerialButton.onClick.AddListener(controller.RefreshSerialPorts); + connectButton.onClick.AddListener(controller.ConnectModule); + disconnectButton.onClick.AddListener(controller.DisconnectModule); + enrollButton.onClick.AddListener(controller.EnrollFace); + verifyButton.onClick.AddListener(controller.VerifyFace); + refreshUsersButton.onClick.AddListener(controller.RefreshUsers); + clearLogButton.onClick.AddListener(logger.Clear); + } + + private static void EnsureEventSystem() + { + if (FindObjectOfType() != null) + { + return; + } + + var eventSystem = new GameObject("EventSystem"); + eventSystem.AddComponent(); + eventSystem.AddComponent(); + } + + private GameObject Panel(Transform parent, string name, Color color) + { + var go = Create(name, parent); + go.AddComponent().color = color; + return go; + } + + private GameObject Row(Transform parent) + { + var row = Create("Row", parent); + var layout = row.AddComponent(); + layout.spacing = 8; + layout.childControlWidth = true; + layout.childForceExpandWidth = true; + row.AddComponent().preferredHeight = 44; + return row; + } + + private Button Button(Transform parent, string text) + { + var go = Create(text, parent); + go.AddComponent().color = new Color(0.78f, 0.86f, 0.95f); + var button = go.AddComponent