-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.html
1266 lines (930 loc) · 58.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>那咋爆裂啊</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta property="og:type" content="website">
<meta property="og:title" content="那咋爆裂啊">
<meta property="og:url" content="https://kumokyaku.github.io/index.html">
<meta property="og:site_name" content="那咋爆裂啊">
<meta property="og:locale" content="zh_CN">
<meta property="article:author" content="云却">
<meta name="twitter:card" content="summary">
<link rel="alternate" href="/atom.xml" title="那咋爆裂啊" type="application/atom+xml">
<link rel="icon" href="/favicon.png">
<link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/plugin/bganimation/bg.css">
<meta name="generator" content="Hexo 5.4.2"></head>
<body>
<div id="container">
<div id="wrap">
<div class="outer">
<div class="widget-wrap mobile-header">
<h3 class="widget-title"></h3>
<div class="widget">
<img class="avatar" src="https://avatars0.githubusercontent.com/u/15962980?s=400&u=9f44d64956034405c51c0871949db00551133265&v=4">
<h2 class="author">云却</h2>
<h3 class="description"></h3>
<div class="count-box">
<a href="/archives"><div><strong>44</strong><br>文章</div></a>
<a href="/categories"><div><strong>22</strong><br>分类</div></a>
<a href="/tags"><div><strong>63</strong><br>标签</div></a>
</div>
<ul class="blog-link">
<a href="/" title="Home">
<li>主页</li>
</a>
<a href="/archives" title="Archives">
<li>归档</li>
</a>
<a href="/categories" title="Categories">
<li>分类</li>
</a>
<a href="/tags" title="Tags">
<li>标签</li>
</a>
</ul>
</div>
</div>
<section id="main">
<article id="post-AI能产生自我意识吗" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2023/03/17/AI%E8%83%BD%E4%BA%A7%E7%94%9F%E8%87%AA%E6%88%91%E6%84%8F%E8%AF%86%E5%90%97/" class="article-date">
<time class="post-time" datetime="2023-03-17T09:14:58.000Z" itemprop="datePublished">
<span class="post-month">3月</span><br/>
<span class="post-day">17</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2023/03/17/AI%E8%83%BD%E4%BA%A7%E7%94%9F%E8%87%AA%E6%88%91%E6%84%8F%E8%AF%86%E5%90%97/">AI能产生自我意识吗</a>
</h1>
<div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h2 id="纪录"><a href="#纪录" class="headerlink" title="纪录"></a>纪录</h2><p>云却 15:17:40<br>理工科问题还好,正确率相当高。人文问题,和一些网上讨论的问题,会捏合成一个混杂的答案。要不就是强行结束。看来还有待提高。</p>
<p>云却 15:18:13<br>写代码简单的行,复杂的不行。理解不了那些微妙细致的需求。</p>
<p>云却 15:18:56<br>不玩了,该写会代码去了</p>
<p>云却 15:20:53<br>整个训练集就是分歧复杂矛盾的,这样的训练集很难形成自我意识。出来也是人格分裂</p>
<p>云却 15:21:55<br>也许人类意识上传数字化,会比AI形成自我意识更容易实现。</p>
<p>JTAOO吉田 15:29:20</p>
<p>JS小仔 15:35:28<br>云却<br>整个训练集就是分歧复杂矛盾的,这样的训练集很难形成自我意识。出来也是人格分裂<br>@云却 建议你还是看下gpt缩写是个啥</p>
<p>JS小仔 15:35:43<br>关键词预训练就不可能产生自我意识</p>
<p>JS小仔 15:36:48<br>new bing能回答新问题也是搜索以后把文字喂给gpt再出答案</p>
<p>JS小仔 15:42:42<br>@云却</p>
<p>JS小仔 15:42:43</p>
<p>JS小仔 15:43:05<br>new bing本质赶的是这件事</p>
<p>JS小仔 15:43:07<br>干</p>
<p>JS小仔 15:47:12</p>
<p>JTAOO吉田 15:51:31<br>lerp(a, F, t) + lerp(b, F, t) 貌似不等于lerp(a+b, F, t)</p>
<p>JTAOO吉田 15:51:41<br>算了下会多一个F.t出来</p>
<p>JS小仔 15:53:19<br>你不会在想单shader里面算半透明排序问题吧</p>
<p>JS小仔 15:53:27</p>
<p>JTAOO吉田 15:54:36<br>没</p>
<p>JTAOO吉田 15:54:43<br>我们把雾效前移了</p>
<p>JS小仔 15:54:45</p>
<p>JTAOO吉田 15:54:49<br>在解决一些混合模式问题</p>
<p>JS小仔 15:54:51<br>哈哈哈哈</p>
<p>JS小仔 15:55:59<br>不是github上有一份ps图层混合模式和shader算法对应的库吗</p>
<p>JTAOO吉田 15:59:00<br>那也不一样啊</p>
<p>JTAOO吉田 15:59:15<br>计算顺序不一样是不能换算的</p>
<p>JS小仔 16:06:11</p>
<p>云却 16:15:23<br>JS小仔<br>关键词预训练就不可能产生自我意识<br>@JS小仔 我原来也是这么认为的,但是我又觉得只要网络模型够大,容易大力出奇迹。 在两种看法间摇摆。</p>
<p>云却 16:16:59<br>高维信息空间对事物的关联性,如果拟合到一个局部最优解,很可能就会固定下来,到时候是不是自我意识,谁也说不准。知识水平不足以我分析出答案</p>
<p>JS小仔 16:18:39<br>核心问题是进化</p>
<p>JS小仔 16:18:53<br>你一定要说chatgpt有没有自我意识</p>
<p>JS小仔 16:19:00<br>粗看其实是有的</p>
<p>JS小仔 16:19:28<br>他知道自己在干什么,知道自己是谁,职责是什么</p>
<p>JS小仔 16:19:33<br>也会有自己底线</p>
<p>JS小仔 16:19:54<br>但因为预训练的问题</p>
<p>JS小仔 16:20:03<br>没法自我进化</p>
<p>JS小仔 16:21:22<br>但你细想,如果一个意识体不能自我进化,也就是无法自主行动,所以这个就矛盾了</p>
<p>JS小仔 16:21:39<br>不能自主行动就很难说有自我意识</p>
<p>云却 16:24:08<br>能不能自我进化作为判断依据有点偏颇。有的人也是万年不遇的倔强种,撞了南墙也不回头。</p>
<p>JS小仔 16:25:12<br>屎是不是不能吃</p>
<p>JS小仔 16:25:20<br>假如ai第一次不知道,吃了</p>
<p>JS小仔 16:25:27<br>预训练模型第二次还吃</p>
<p>云却 16:25:32<br>JS小仔 </p>
<p>@JS小仔 这个记住是永久记住还是只是这次会话上下文记住</p>
<p>JS小仔 16:25:31</p>
<p>叶月葵 16:25:49<br>是这次上下文</p>
<p>JS小仔 16:25:53<br>本次对话</p>
<p>JS小仔 16:26:13<br>云却<br>能不能自我进化作为判断依据有点偏颇。有的人也是万年不遇的倔强种,撞了南墙也不回头。<br>@云却 我相信正常人类第一次吃了屎,第二次绝对不会吃</p>
<p>叶月葵 16:26:22<br>本身不存在上下文的,毕竟依旧只是个函数<br>所以所谓的上下文实际上是吧你这次回话的内容全部一起放进去再输出新的结果给你</p>
<p>云却 16:26:33<br>应该是模型运行期间不能修改自身,或者压根没开放这个功能。</p>
<p>JS小仔 16:26:48<br>对</p>
<p>叶月葵 16:26:58<br>从你这次会话开始的第一句,包括他的回答,一路到你最新输入的内容,打包一起送回去</p>
<p>叶月葵 16:27:15<br>你部署个chatGLM跑一次就知道这个原理了</p>
<p>云却 16:27:20<br>所谓自我进化,开发运行时自我修正就行。所以不是能否产生意识的关键问题点</p>
<p>JS小仔 16:27:41<br>云却<br>所谓自我进化,开发运行时自我修正就行。所以不是能否产生意识的关键问题点<br>@云却 能自我修正就不好说了</p>
<p>叶月葵 16:27:52<br>模型至少是固定不变的,除非模型在对话中同时修改了自己的圈子</p>
<p>叶月葵 16:27:53<br>权重</p>
<p>蓝色幻想 16:28:07<br>在这之前也许你需要回答一下,意识到底是什么</p>
<p>云却 16:28:08<br>运行时自我修正 然后能不停的保存存档点。就像人类睡觉睡醒一样了</p>
<p>JS小仔 16:28:08<br>如果模型有权限自己修改自己</p>
<p>叶月葵 16:28:10<br>至少现阶段的硬件做这个事情成本太多。得用存算一体设备</p>
<p>叶月葵 16:28:20<br>然后现阶段的存算一体设备成本也太高</p>
<p>叶月葵 16:28:24</p>
<p>JS小仔 16:28:33<br>说不定自己就会访问硬件</p>
<p>JS小仔 16:28:46<br>然后哪天就访问网络了</p>
<p>JS小仔 16:29:02</p>
<p>云却 16:30:08<br>蓝色幻想<br>在这之前也许你需要回答一下,意识到底是什么<br>@蓝色幻想 我的理解是能,区分我与外在世界。 对话时当用你指代AI时,在任何时刻,AI都能知道指代的AI模型本身</p>
<p>JS小仔 16:30:31</p>
<p>我觉得真的可以试试,如果给ai模型开放这台设备硬件所有权限,并且给他能够实时迭代自己模型的权限</p>
<p>JS小仔 16:30:38<br>说不定会产生很有趣的事情</p>
<p>云却 16:31:46<br>本来我不相信机器能产生意识。但是当模型容量到与大脑容量相当的时候,我产生了动摇。因为发现并没有本质区别。</p>
<p>JS小仔 16:31:48<br>云却<br>运行时自我修正 然后能不停的保存存档点。就像人类睡觉睡醒一样了<br>@云却 不行的,一定是ai自己迭代,而不是人类给他定时喂数据</p>
<p>JS小仔 16:32:05<br>主动决定学习啥和何时学习</p>
<p>JS小仔 16:32:11<br>而不是人类决定</p>
<p>云却 16:33:15<br>我是认为意识灵魂不具有唯一性的那一派。 如果能完美克隆一个人,我会认为两个个体都具有自我意识和灵魂。即使他们完全一致。</p>
<p>JS小仔 16:34:13<br>云却<br>我是认为意识灵魂不具有唯一性的那一派。 如果能完美克隆一个人,我会认为两个个体都具有自我意识和灵魂。即使他们完全一致。<br>@云却 应该是克隆成功的那一刻就会产生两个分支</p>
<p>关东煮 16:34:55<br>JS小仔<br>@云却 应该是克隆成功的那一刻就会产生两个分支<br>@JS小仔 +1</p>
<p>云却 16:34:59<br>JS小仔<br>主动决定学习啥和何时学习<br>@JS小仔 所谓自我学习,就是模型能不能从一个局部最优切换到另一个局部最优。和主部主动 没关系</p>
<p>JS小仔 16:35:01<br>哪怕接受同样的外界信息,也会随着时间表现出各种差异</p>
<p>关东煮 16:35:11<br>无法保证两个人的下一个想法是一模一样的</p>
<p>云却 16:36:19<br>对于一个灵魂而言,相同的输入会有相同输出吗,灵魂是确定性的吗。掷骰子吗</p>
<p>关东煮 16:38:12<br>可以影响输出的东西太多了</p>
<p>关东煮 16:38:22<br>任何一个小因素都可能影响输出</p>
<p>JS小仔 16:38:39<br>云却<br>对于一个灵魂而言,相同的输入会有相同输出吗,灵魂是确定性的吗。掷骰子吗<br>@云却 问就是量子力学,可以理解成真随机</p>
<p>云却 16:43:19<br>每一幅艺术绘画都是唯一,但是现在小画家被AI薄纱。坚信灵魂意识是特殊的高贵的。也会被AI虚拟人格薄纱</p>
<p>叶月葵 16:44:24<br>工业化的最大作用就是去魅</p>
<p>JS小仔 16:44:58</p>
<p>JS小仔 16:45:46<br>@云却 如果去掉思想钢印+自我进化,我反正觉得事情会变得很有趣</p>
<p>JS小仔 16:47:09<br>是不是粗看确实像个有自我意识得人</p>
<p>云却 16:48:19</p>
<p>这是典型的还不具备意识。 自我与外在世界的总和就是1,是整体。在讨论自我时,所有其他东西都是外在世界。什么发展啊,人类啊,都是不存在的。</p>
<h2 id="看法"><a href="#看法" class="headerlink" title="看法"></a>看法</h2><p>换一个角度去看待自我意识。根据是否具有推理能力区分。<br>人类在完全空闲时可以思考,根据已有记忆,推理出一个问题的答案。下次遇到这个问题时,直接使用这个缓存的答案,而不用再次求解。<br>这个答案不一定正确,下一次求解这个问题时可能因为记忆的改变,得到完全不同的答案。求解公式和缓存的所有答案集合,我们称之为一个自我意识。<br>问题随之出现:当一个意识复制成2个,在没有外在干扰下,2个记忆各自开始推理一段时间,得到答案并缓存。<br>那么一段时间结束后,2个意识会是完全一致的吗,如果因为量子力学,掷骰子。那么随时推理时间无限边长,2个意识必然不会产生分歧。<br>那么我们认为2个个体是同一个意识还是2个不同的意识? </p>
<p>那么我们究竟是将 求解公式和缓存的所有答案集合 称为意识呢,还是仅仅将求解公式,将缓存答案排除在外,称为意识呢?<br>2个个体求解公式一致,现有的缓存答案不一致,能否认为是同一个意识? </p>
<p>对应到AI,同一个模型的不同副本是同一个意识吗,还是每个运行的实例都是一个独立的意识? </p>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2023/03/17/AI%E8%83%BD%E4%BA%A7%E7%94%9F%E8%87%AA%E6%88%91%E6%84%8F%E8%AF%86%E5%90%97/" data-id="clfcbw3at0003pwvlhc9u7khf" class="article-share-link">分享</a>
</footer>
</div>
</article>
<article id="post-左右的一种区分方法" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2023/03/13/%E5%B7%A6%E5%8F%B3%E7%9A%84%E4%B8%80%E7%A7%8D%E5%8C%BA%E5%88%86%E6%96%B9%E6%B3%95/" class="article-date">
<time class="post-time" datetime="2023-03-13T04:13:02.000Z" itemprop="datePublished">
<span class="post-month">3月</span><br/>
<span class="post-day">13</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2023/03/13/%E5%B7%A6%E5%8F%B3%E7%9A%84%E4%B8%80%E7%A7%8D%E5%8C%BA%E5%88%86%E6%96%B9%E6%B3%95/">左右的一种区分方法</a>
</h1>
<div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<table>
<thead>
<tr>
<th align="left">判断依据</th>
<th align="right"></th>
<th align="right"></th>
<th align="right"></th>
<th align="center">⬅左派</th>
<th align="center">右派➡</th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody><tr>
<td align="left"></td>
<td align="right">极左</td>
<td align="right">激进</td>
<td align="right">普通</td>
<td align="center">右倾</td>
<td align="center">左倾</td>
<td>普通</td>
<td>激进</td>
<td>极右</td>
</tr>
<tr>
<td align="left">现有规则利益区分</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center">⬅受剥削压迫</td>
<td align="center">既得利益者➡</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left">有没有行动</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center">没有行动</td>
<td align="center">没有行动</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"></td>
<td align="right">做出行动</td>
<td align="right">做出行动</td>
<td align="right">做出行动</td>
<td align="center"></td>
<td align="center"></td>
<td>做出行动</td>
<td>做出行动</td>
<td>做出行动</td>
</tr>
<tr>
<td align="left">愿意付出自己生命</td>
<td align="right"></td>
<td align="right">献出自己生命</td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td>献出自己生命</td>
<td></td>
</tr>
<tr>
<td align="left">造成敌派死亡</td>
<td align="right"></td>
<td align="right">付出右派生命</td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td>付出左派生命</td>
<td></td>
</tr>
<tr>
<td align="left">造成本派死亡</td>
<td align="right">付出左派生命</td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td>付出右派生命</td>
</tr>
<tr>
<td align="left"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"><strong>代表人物</strong></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"></td>
<td align="right"></td>
<td align="right">谭嗣同</td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td align="left"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="center"></td>
<td align="center"></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<p>分类方法不考虑无产阶级革命战士:例如切格瓦拉。</p>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2023/03/13/%E5%B7%A6%E5%8F%B3%E7%9A%84%E4%B8%80%E7%A7%8D%E5%8C%BA%E5%88%86%E6%96%B9%E6%B3%95/" data-id="clfcbw3be001wpwvlelejcf8w" class="article-share-link">分享</a>
</footer>
</div>
</article>
<article id="post-UIElement使用笔记" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2023/02/14/UIElement%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0/" class="article-date">
<time class="post-time" datetime="2023-02-14T04:54:43.000Z" itemprop="datePublished">
<span class="post-month">2月</span><br/>
<span class="post-day">14</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2023/02/14/UIElement%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0/">UIElement使用笔记</a>
</h1>
<div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h1 id="GraphView"><a href="#GraphView" class="headerlink" title="GraphView"></a>GraphView</h1><p>GraphView中的所有元素,都从GraphElement继承。GraphElement实现了很多默认功能。如果要自定义在GraphView中使用的控件,建议直接从GraphElement继承。<br>GraphView自身从VisualElement继承。</p>
<p>建议:在你使用GraphView之前,一定要先学习DOM事件流。1个小时的扫盲学习会在后面为你节省至少10个小时的时间。</p>
<h2 id="GraphElement-选中"><a href="#GraphElement-选中" class="headerlink" title="GraphElement 选中"></a>GraphElement 选中</h2><p>通常OnSelected被执行2次。</p>
<p><img src="/2023/02/14/UIElement%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0/image-20230214130532222.png" alt="image-20230214130532222"></p>
<ul>
<li>第一次由GraphElement的ClickSelector m_ClickSelector 执行。在GraphElement的Capabilities capabilities含有Capabilities.Selectable枚举项时添加ClickSelector 。<ul>
<li>使用MouseDownEvent。注册在DOM事件流的冒泡阶段。</li>
<li>ClickSelector 额外检测了是否有子GraphElement元素也被被命中,参加ClickSelector.WasSelectableDescendantHitByMouse。如果含有可选择的子,那么当前元素不会执行被选择逻辑。也就是说,整个树中每次只能有一个GraphElement被选择。</li>
</ul>
</li>
<li>第二次由RectangleSelector 执行。通常添加在GraphView中。<ul>
<li>使用MouseUpEvent。注册在DOM事件流的冒泡阶段。</li>
<li>会收集矩形区域内所有可选择的GraphElement。然后依次执行AddToSelectionNoUndoRecord。顺序由GraphView中hierarchy控制,可以简单理解为从父到子。</li>
<li>RectangleSelector 表现为可以框选,也可以点选。点选时本质是矩形区域非常小。所以点选是会同时选中父元素可子元素。</li>
</ul>
</li>
</ul>
<h2 id="GraphElement-拖拽"><a href="#GraphElement-拖拽" class="headerlink" title="GraphElement 拖拽"></a>GraphElement 拖拽</h2><p>由SelectionDragger实现,通常注册到GraphView中。</p>
<ul>
<li>使用MouseDownEvent,MouseMoveEvent,MouseUpEvent,KeyDownEvent,MouseCaptureOutEvent。注册在DOM事件流的冒泡阶段。</li>
<li>GraphElement 能否被拖拽由Capabilities.Movable枚举项控制。也就是说,GraphElement 仅设置自己能否被拖拽,实际拖拽控制,事件触发在GraphView这一个层级中。</li>
<li>假如的GraphElement 内部也需要执行拖拽逻辑,如ListView重排序。那么需要在ListView层级,注册MouseDownEvent,MouseMoveEvent,MouseUpEvent冒泡阶段,并阻止事件冒泡,向父级传播。否则会和GraphView中的拖拽逻辑互相干扰,表现不正确。<br> <img src="/2023/02/14/UIElement%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0/image-20230214134032599.png" alt="image-20230214134032599"></li>
</ul>
<h2 id="Undo-x2F-Redo"><a href="#Undo-x2F-Redo" class="headerlink" title="Undo/Redo"></a>Undo/Redo</h2><p>使用内存ScriptObject实现,参考GraphViewUndoRedoSelection,注意hideFlags = HideFlags.HideAndDontSave。<br>否则内存中的ScriptObject对象改动,会让Scene变成dirty状态。</p>
<h2 id="ContextualMenu"><a href="#ContextualMenu" class="headerlink" title="ContextualMenu"></a>ContextualMenu</h2><ul>
<li>由合成的ContextualMenuPopulateEvent事件触发</li>
<li>触发在GraphView的上下文菜单<ul>
<li>注册ContextualMenuPopulateEvent回调 OnContextualMenu(ContextualMenuPopulateEvent evt)</li>
<li>MouseUpEvent/KeyUpEvent -> GraphView.ExecuteDefaultActionAtTarget -> EditorPanel.EditorContextualMenuManager.DisplayMenuIfEventMatches -> 合成事件ContextualMenuPopulateEvent -> 发送事件到GraphView。</li>
<li>触发ContextualMenuPopulateEvent回调OnContextualMenu(ContextualMenuPopulateEvent evt) -> BuildContextualMenu</li>
</ul>
</li>
<li>触发在Node的上下文菜单<ul>
<li>Node添加ContextualMenuManipulator,内部注册MouseUpEvent/KeyUpEvent/ContextualMenuPopulateEvent。</li>
<li>MouseUpEvent/KeyUpEvent 调用 EditorPanel.EditorContextualMenuManager.DisplayMenu, 并停止事件传播。<br>并且防止其默认行为PreventDefault,因此GraphView.ExecuteDefaultActionAtTarget不会再被调用。</li>
<li>ContextualMenuManager.DisplayMenu 合成 ContextualMenuPopulateEvent,发送事件到Node。</li>
<li>Node的ContextualMenuManipulator的ContextualMenuPopulateEvent回调m_MenuBuilder被触发,执行Node.BuildContextualMenu。</li>
<li>ContextualMenuPopulateEvent事件继续冒泡,触发GraphView的ContextualMenuPopulateEvent回调 OnContextualMenu(ContextualMenuPopulateEvent evt)。</li>
</ul>
</li>
</ul>
<p>总结:</p>
<ul>
<li>触发显示菜单时,由子到父,依次调用每个对象仅一次BuildContextualMenu。</li>
<li>自定义控件添加ContextualMenu,使用ContextualMenuManipulator即可。</li>
<li>GraphView的BuildContextualMenu默认实现,仅对GraphView,Node,Group这个三个类型添加了菜单项,所以自定义控件ContextualMenu触发GraphView的BuildContextualMenu时,会什么都不发生。</li>
<li>你可以重写GraphView的BuildContextualMenu函数并根据evt.targe添加自己的菜单项。</li>
<li>evt.targe是ContextualMenuManager.DisplayMenu发送事件的目标对象,也就是添加ContextualMenuManipulator的对象或者GraphView本身。</li>
</ul>
<h2 id="DOM事件流"><a href="#DOM事件流" class="headerlink" title="DOM事件流"></a>DOM事件流</h2><ul>
<li>架构中事件按照既定流程处理事件<a target="_blank" rel="noopener" href="https://docs.unity.cn/Documentation/Manual/UIE-Events-Handling.html">Unity - Manual: Handle events</a></li>
<li>在用户代码中,处理完自己的逻辑后,停止事件传播和防止其默认行为是常态,用于防止多个层级的回调函数同时被触发。</li>
</ul>
<h2 id="感想"><a href="#感想" class="headerlink" title="感想"></a>感想</h2><p>通过对GraphView的学习和使用,又一次深刻认识到。软件编程中没有魔术,任何行为后面都有它对应的代码。<br>阅读GraphView的源码对使用GraphView很有帮助。阅读源码是痛苦的,但仍比边猜边用要好得多。</p>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2023/02/14/UIElement%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0/" data-id="clfcbw3b2000mpwvlggsl9ghz" class="article-share-link">分享</a>
</footer>
</div>
</article>
<article id="post-关于CSharp的一些细节问题" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2023/02/12/%E5%85%B3%E4%BA%8ECSharp%E7%9A%84%E4%B8%80%E4%BA%9B%E7%BB%86%E8%8A%82%E9%97%AE%E9%A2%98/" class="article-date">
<time class="post-time" datetime="2023-02-12T05:33:09.000Z" itemprop="datePublished">
<span class="post-month">2月</span><br/>
<span class="post-day">12</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2023/02/12/%E5%85%B3%E4%BA%8ECSharp%E7%9A%84%E4%B8%80%E4%BA%9B%E7%BB%86%E8%8A%82%E9%97%AE%E9%A2%98/">关于C#的一些细节问题</a>
</h1>
<div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h2 id="C-闭包会被优化为struct吗?"><a href="#C-闭包会被优化为struct吗?" class="headerlink" title="C# 闭包会被优化为struct吗?"></a>C# 闭包会被优化为struct吗?</h2><h2 id="ValueTask为什么会比Task性能更高?"><a href="#ValueTask为什么会比Task性能更高?" class="headerlink" title="ValueTask为什么会比Task性能更高?"></a>ValueTask为什么会比Task性能更高?</h2><h2 id="网络模块的性能开销有哪些?"><a href="#网络模块的性能开销有哪些?" class="headerlink" title="网络模块的性能开销有哪些?"></a>网络模块的性能开销有哪些?</h2>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2023/02/12/%E5%85%B3%E4%BA%8ECSharp%E7%9A%84%E4%B8%80%E4%BA%9B%E7%BB%86%E8%8A%82%E9%97%AE%E9%A2%98/" data-id="clfcbw3b80018pwvlbsmjeg3u" class="article-share-link">分享</a>
</footer>
</div>
</article>
<article id="post-字典Key性能测试" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2021/02/02/%E5%AD%97%E5%85%B8Key%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/" class="article-date">
<time class="post-time" datetime="2021-02-02T15:46:25.000Z" itemprop="datePublished">
<span class="post-month">2月</span><br/>
<span class="post-day">02</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2021/02/02/%E5%AD%97%E5%85%B8Key%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/">字典Key性能测试</a>
</h1>
<div>
<div class="article-category">
<a class="article-category-link" href="/categories/%E6%B5%8B%E8%AF%95/">测试</a>
</div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<figure class="highlight csharp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> <span class="built_in">int</span> time = <span class="number">1000000</span>;</span><br><span class="line"><span class="keyword">using</span> (<span class="keyword">new</span> ProfilerScope(<span class="string">"int"</span>))</span><br><span class="line">{</span><br><span class="line"> stopwatch.Start();</span><br><span class="line"> <span class="keyword">for</span> (<span class="built_in">int</span> i = <span class="number">0</span>; i < time; i++)</span><br><span class="line"> {</span><br><span class="line"> <span class="number">1.</span>GetHashCode();</span><br><span class="line"> }</span><br><span class="line"> stopwatch.Stop();</span><br><span class="line"> inttime.text = stopwatch.ElapsedMilliseconds.ToString();</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="keyword">using</span> (<span class="keyword">new</span> ProfilerScope(<span class="string">"string"</span>))</span><br><span class="line">{</span><br><span class="line"> stopwatch.Restart();</span><br><span class="line"> <span class="keyword">for</span> (<span class="built_in">int</span> i = <span class="number">0</span>; i < time; i++)</span><br><span class="line"> {</span><br><span class="line"> <span class="string">"test"</span>.GetHashCode();</span><br><span class="line"> }</span><br><span class="line"> stopwatch.Stop();</span><br><span class="line"> stringtime.text = stopwatch.ElapsedMilliseconds.ToString();</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
<h1 id="GetHashCode"><a href="#GetHashCode" class="headerlink" title="GetHashCode"></a>GetHashCode</h1><table>
<thead>
<tr>
<th>次数1000000</th>
<th>IL2CPP/Windows/Realease</th>
<th></th>
</tr>
</thead>
<tbody><tr>
<td>int</td>
<td>1ms</td>
<td></td>
</tr>
<tr>
<td>string</td>
<td>3ms</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<h1 id="Dictionary-Get"><a href="#Dictionary-Get" class="headerlink" title="Dictionary.Get"></a>Dictionary.Get</h1><figure class="highlight csharp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line">Dictionary<<span class="built_in">int</span>, <span class="built_in">int</span>> intpairs = <span class="keyword">new</span> Dictionary<<span class="built_in">int</span>, <span class="built_in">int</span>>();</span><br><span class="line">intpairs.Add(<span class="number">1</span>, <span class="number">1</span>);</span><br><span class="line">Dictionary<<span class="built_in">string</span>, <span class="built_in">int</span>> strpairs = <span class="keyword">new</span> Dictionary<<span class="built_in">string</span>, <span class="built_in">int</span>>();</span><br><span class="line">strpairs.Add(<span class="string">"test"</span>, <span class="number">1</span>);</span><br><span class="line"><span class="keyword">const</span> <span class="built_in">int</span> time = <span class="number">1000000</span>;</span><br><span class="line"><span class="keyword">using</span> (<span class="keyword">new</span> ProfilerScope(<span class="string">"int"</span>))</span><br><span class="line">{</span><br><span class="line"> stopwatch.Start();</span><br><span class="line"> <span class="keyword">for</span> (<span class="built_in">int</span> i = <span class="number">0</span>; i < time; i++)</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">var</span> res = intpairs[<span class="number">1</span>];</span><br><span class="line"> }</span><br><span class="line"> stopwatch.Stop();</span><br><span class="line"> inttime.text = stopwatch.ElapsedMilliseconds.ToString();</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="keyword">using</span> (<span class="keyword">new</span> ProfilerScope(<span class="string">"string"</span>))</span><br><span class="line">{</span><br><span class="line"> stopwatch.Restart();</span><br><span class="line"> <span class="keyword">for</span> (<span class="built_in">int</span> i = <span class="number">0</span>; i < time; i++)</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">var</span> res = strpairs[<span class="string">"test"</span>];</span><br><span class="line"> }</span><br><span class="line"> stopwatch.Stop();</span><br><span class="line"> stringtime.text = stopwatch.ElapsedMilliseconds.ToString();</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
<table>
<thead>
<tr>
<th>次数1000000</th>
<th>IL2CPP/Windows/Realease</th>
<th></th>
</tr>
</thead>
<tbody><tr>
<td>int</td>
<td>18-19ms</td>
<td></td>
</tr>
<tr>
<td>string</td>
<td>21-22ms</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<h1 id="Dictionary-Add"><a href="#Dictionary-Add" class="headerlink" title="Dictionary.Add"></a>Dictionary.Add</h1><figure class="highlight csharp"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line">Dictionary<<span class="built_in">int</span>, <span class="built_in">int</span>> intpairs = <span class="keyword">new</span> Dictionary<<span class="built_in">int</span>, <span class="built_in">int</span>>();</span><br><span class="line">intpairs.Add(<span class="number">1</span>, <span class="number">1</span>);</span><br><span class="line">Dictionary<<span class="built_in">string</span>, <span class="built_in">int</span>> strpairs = <span class="keyword">new</span> Dictionary<<span class="built_in">string</span>, <span class="built_in">int</span>>();</span><br><span class="line">strpairs.Add(<span class="string">"test"</span>, <span class="number">1</span>);</span><br><span class="line"><span class="keyword">const</span> <span class="built_in">int</span> time = <span class="number">1000000</span>;</span><br><span class="line"><span class="keyword">using</span> (<span class="keyword">new</span> ProfilerScope(<span class="string">"int"</span>))</span><br><span class="line">{</span><br><span class="line"> stopwatch.Start();</span><br><span class="line"> <span class="keyword">for</span> (<span class="built_in">int</span> i = <span class="number">0</span>; i < time; i++)</span><br><span class="line"> {</span><br><span class="line"> intpairs[<span class="number">1</span>] = <span class="number">1</span>;</span><br><span class="line"> }</span><br><span class="line"> stopwatch.Stop();</span><br><span class="line"> inttime.text = stopwatch.ElapsedMilliseconds.ToString();</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="keyword">using</span> (<span class="keyword">new</span> ProfilerScope(<span class="string">"string"</span>))</span><br><span class="line">{</span><br><span class="line"> stopwatch.Restart();</span><br><span class="line"> <span class="keyword">for</span> (<span class="built_in">int</span> i = <span class="number">0</span>; i < time; i++)</span><br><span class="line"> {</span><br><span class="line"> strpairs[<span class="string">"test"</span>] = <span class="number">1</span>;</span><br><span class="line"> }</span><br><span class="line"> stopwatch.Stop();</span><br><span class="line"> stringtime.text = stopwatch.ElapsedMilliseconds.ToString();</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
<table>
<thead>
<tr>
<th>次数1000000</th>
<th>IL2CPP/Windows/Realease</th>
<th></th>
</tr>
</thead>
<tbody><tr>
<td>int</td>
<td>17-18ms</td>
<td></td>
</tr>
<tr>
<td>string</td>
<td>20-21ms</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<hr>
<p>key的类型对字典性能影响不大。</p>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2021/02/02/%E5%AD%97%E5%85%B8Key%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/" data-id="clfcbw3bd001spwvl965e10yk" class="article-share-link">分享</a>
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/C/" rel="tag">C#</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E6%80%A7%E8%83%BD/" rel="tag">性能</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91/" rel="tag">软件开发</a></li></ul>
</footer>
</div>
</article>
<article id="post-理解矩阵" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2021/01/24/%E7%90%86%E8%A7%A3%E7%9F%A9%E9%98%B5/" class="article-date">
<time class="post-time" datetime="2021-01-24T05:04:11.000Z" itemprop="datePublished">
<span class="post-month">1月</span><br/>
<span class="post-day">24</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2021/01/24/%E7%90%86%E8%A7%A3%E7%9F%A9%E9%98%B5/">理解矩阵</a>
</h1>
<div>
<div class="article-category">
<a class="article-category-link" href="/categories/%E6%95%B0%E5%AD%A6/">数学</a>
</div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h2 id="转载收藏-防止遗失"><a href="#转载收藏-防止遗失" class="headerlink" title="转载收藏,防止遗失"></a><a target="_blank" rel="noopener" href="https://blog.csdn.net/myan/article/details/647511">转载收藏,防止遗失</a></h2>
<p class="article-more-link">
<a href="/2021/01/24/%E7%90%86%E8%A7%A3%E7%9F%A9%E9%98%B5/#more">Read More</a>
</p>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2021/01/24/%E7%90%86%E8%A7%A3%E7%9F%A9%E9%98%B5/" data-id="clfcbw3bm002wpwvlg2h6hwhy" class="article-share-link">分享</a>
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%93%B2%E5%AD%A6/" rel="tag">哲学</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E6%80%9D%E8%80%83/" rel="tag">思考</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E6%95%B0%E5%AD%A6/" rel="tag">数学</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E7%BC%96%E7%A8%8B/" rel="tag">编程</a></li></ul>
</footer>
</div>
</article>
<article id="post-九识-终极境界" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2020/05/24/%E4%B9%9D%E8%AF%86-%E7%BB%88%E6%9E%81%E5%A2%83%E7%95%8C/" class="article-date">
<time class="post-time" datetime="2020-05-24T15:46:25.000Z" itemprop="datePublished">
<span class="post-month">5月</span><br/>
<span class="post-day">24</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2020/05/24/%E4%B9%9D%E8%AF%86-%E7%BB%88%E6%9E%81%E5%A2%83%E7%95%8C/">九识-终极境界</a>
</h1>
<div>
<div class="article-category">
<a class="article-category-link" href="/categories/%E5%B0%8F%E8%AF%B4%E8%AE%BE%E5%AE%9A/">小说设定</a>
</div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h1 id="九识-终极境界"><a href="#九识-终极境界" class="headerlink" title="九识-终极境界"></a>九识-终极境界</h1><h2 id="九识"><a href="#九识" class="headerlink" title="九识"></a>九识</h2><ul>
<li>耳识</li>
<li>眼识</li>
<li>鼻识</li>
<li>舌识</li>
<li>身识</li>
</ul>
<p>五感到五识,人类进化这么多年出生就有,所以是万物之灵。起点比其他生命不知高到哪里去。</p>
<ul>
<li>意识(直感?)</li>
<li>末那识 <ul>
<li>真我识</li>
<li>哲学:我是谁?</li>
</ul>
</li>
<li>阿赖耶识<ul>
<li>真我之外</li>
</ul>
</li>
<li>阿摩罗识<ul>
<li>根源之涡</li>
<li>哲学:我从哪里来?我要到哪里去?</li>
</ul>
</li>
</ul>
<p class="article-more-link">
<a href="/2020/05/24/%E4%B9%9D%E8%AF%86-%E7%BB%88%E6%9E%81%E5%A2%83%E7%95%8C/#more">Read More</a>
</p>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2020/05/24/%E4%B9%9D%E8%AF%86-%E7%BB%88%E6%9E%81%E5%A2%83%E7%95%8C/" data-id="clfcbw3b70016pwvla06g1pxk" class="article-share-link">分享</a>
<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%93%B2%E5%AD%A6/" rel="tag">哲学</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E5%B0%8F%E8%AF%B4/" rel="tag">小说</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/%E8%84%91%E6%B4%9E/" rel="tag">脑洞</a></li></ul>
</footer>
</div>
</article>
<article id="post-树莓派经验笔记" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2020/05/24/%E6%A0%91%E8%8E%93%E6%B4%BE%E7%BB%8F%E9%AA%8C%E7%AC%94%E8%AE%B0/" class="article-date">
<time class="post-time" datetime="2020-05-24T15:46:25.000Z" itemprop="datePublished">
<span class="post-month">5月</span><br/>
<span class="post-day">24</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2020/05/24/%E6%A0%91%E8%8E%93%E6%B4%BE%E7%BB%8F%E9%AA%8C%E7%AC%94%E8%AE%B0/">树莓派经验笔记</a>
</h1>
<div>
<div class="article-category">
<a class="article-category-link" href="/categories/%E6%B8%B8%E6%88%8F%E8%AE%BE%E8%AE%A1/">游戏设计</a>
</div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<p>country=CN<br>network={<br>ssid=”ziroom501”<br>psk=”ziroomer002”<br>key_mgmt=WPA-PSK<br>priority=1<br>}</p>
<p>============================上面的好使,下面的无效</p>
<p>auto lo<br>iface lo inet loopback</p>
<p>auto eth0<br>iface eth0 inet dhcp</p>
<p>allow-hotplug wlan0<br>auto wlan0<br>iface wlan0 inet dhcp<br> wpa-ssid ziroom501<br> wpa-psk ziroomer002</p>
<h1 id="树莓派docker装conflence"><a href="#树莓派docker装conflence" class="headerlink" title="树莓派docker装conflence"></a>树莓派docker装conflence</h1><p>教程 <a target="_blank" rel="noopener" href="https://www.cnblogs.com/rslai/p/8845777.html">https://www.cnblogs.com/rslai/p/8845777.html</a></p>
<p>arm 镜像 <a target="_blank" rel="noopener" href="https://hub.docker.com/search?q=confluence&type=image&architecture=arm">https://hub.docker.com/search?q=confluence&type=image&architecture=arm</a></p>
<p>docker run -d –name confluence -p 8090:8090 –user root:root ottar63/rpi-mysql-confluence:latest</p>
<p>docker cp confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar /home</p>
<p>docker cp /home/atlassian-extras-decoder-v2-3.4.1.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/</p>
</div>
<footer class="article-footer">
<a data-url="https://kumokyaku.github.io/2020/05/24/%E6%A0%91%E8%8E%93%E6%B4%BE%E7%BB%8F%E9%AA%8C%E7%AC%94%E8%AE%B0/" data-id="clfcbw3bk002ppwvl7o90e8z2" class="article-share-link">分享</a>
</footer>
</div>
</article>
<article id="post-论游戏设计" class="wow slideInRight article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2020/05/24/%E8%AE%BA%E6%B8%B8%E6%88%8F%E8%AE%BE%E8%AE%A1/" class="article-date">
<time class="post-time" datetime="2020-05-24T15:46:25.000Z" itemprop="datePublished">
<span class="post-month">5月</span><br/>
<span class="post-day">24</span>
</time>
</a>
</div>
<div class="article-inner">
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2020/05/24/%E8%AE%BA%E6%B8%B8%E6%88%8F%E8%AE%BE%E8%AE%A1/">论游戏设计</a>
</h1>
<div>
<div class="article-category">
<a class="article-category-link" href="/categories/%E6%B8%B8%E6%88%8F%E8%AE%BE%E8%AE%A1/">游戏设计</a>
</div>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<ul>
<li><p>一个idea撑起一个游戏的时代早就过去了,好的游戏设计必须要有方法论做支撑。</p>
</li>
<li><p>游戏玩法必须分层,当关卡或程序化游戏内容一旦被玩家理解摸透,无论这个内容量有多少,都会瞬间失去乐趣。所以一个玩法卖点横向必须够宽,来增加玩家摸清楚的时间。不然游戏内容就会迅速枯燥无趣。<br>例子:Dota与只狼</p>
<ul>
<li>Dota:不通元素的组合在不通时间段代表的意义不同,10分钟辉耀和15分钟辉耀截然不同。如你的冰元素和火元素可以交互,整个游戏区间都是如此,那就没意义。如果在游戏开始的第一小时和第100小时有不同,那就有意义。同一个游戏内容变化性足够多,这就是横向够宽。</li>
<li>让玩家随着时间的增长不停的有新的发现,才是游戏最终出路。不然强如只狼也是有游戏寿命的。</li>
</ul>
</li>
<li><p><code>在游戏中引入时间元素,一本万利,这增加玩家的试错成本,组合性在维度上得到提升,而且更加隐蔽,不容易被玩家猜透,最关键的是,时间参数对游戏影响可以是非线性,可操作区间极大。</code></p>
</li>
<li><p>合理分配各个设计原则对游戏整体的比重,玩家虽然看不到这些原则,但会本能觉得累,觉得烦。</p>
</li>
<li><p>像Roguelike,自动生成,确实是不同的新内容,但是当玩家摸清楚生成规律,那么游戏乐趣就会消失。所以我说游戏要分层,第一层生成第二层,第二层生成第三层,玩家玩第三层的内容时基本很难看到第一层的规律,当玩家通过第三层游戏内容,摸清楚第二层时,自然发现还有第一层规律存在,用第一层的知识反向应用到第三层中,玩家做出有损短时利益的决策,获得长时间更大利益的玩法,能极大延长游戏声明,玩家也能获得高玩的成就感。</p>
</li>
<li><p>好玩的游戏是什么,最终的答案就是:<code>新的东西</code></p>
<ul>
<li>有没有新元素,新元素值不值你游戏卖的钱。</li>
<li>galgame卖的是新立绘的钱。</li>
<li>OW为什么在FPS领域获得成功,自CS后有像OW这个量级的还有没有?<ul>
<li>就是OW引入了技能</li>
<li>OW的失败在于技能体系仍然是战法牧</li>
</ul>
</li>
</ul>
</li>
<li><p>现在游戏中混入一些卖人设的,导致很多人对游戏有误解。</p>
<ul>
<li>二者不冲突,但是你要决定做游戏还是做人设。</li>