锘??xml version="1.0" encoding="utf-8" standalone="yes"?> Unity鍦?018鐗堜腑鍔犲叆浜咵CS緋葷粺錛?浣嗗浜庡皬鐧介紶闃舵銆傞粯璁や笉鏄疷nity鐨勪竴閮ㄥ垎錛?闇瑕佹墜鍔ㄤ笅杞戒唬鐮佸茍瀵煎叆Packages錛堟柊鐗規(guī)э級銆傚畼鏂規(guī)彁渚涙搗璞氫緥瀛愶紝 浣嗛櫎姝や箣澶栦緥瀛愬拰璧勬枡闈炲父灝戙傛墍浠ュ畬鍏ㄦ棤娉曪紝涔熶笉鏁㈠湪demo涓錘鐒跺紩鍏ヨ繖縐嶇郴緇燂紝鎵浠ユ斁寮冨畼鏂笶CS緋葷粺銆?/p> 絎笁鏂圭殑Entitas錛?span style="border-bottom: 1px dashed gray;">https://github.com/sschmid/Entitas-CSharp錛塃CS妗嗘灦浠?015騫村氨寮濮嬪湪鍚勫湴婕旇涓粙緇嶃傛暣浣撴鏋跺熀浜庝唬鐮佺敓鎴愶紝 鑳借В鍐充竴閮ㄥ垎鐨勪唬鐮佺垎鐐擱棶棰橈紝 鑰屼笖鎬ц兘涔熻濂戒竴浜涖備緥瀛愶紝浠嬬粛闈炲父涓板瘜錛屼緥瀛愯櫧鐒跺熀浜庝笉鍚岀増鏈殑Entitas錛岀壒鎬ф敮鎸佸拰鏈鏂扮増宸笉澶錛?鍙槸鍐欐硶鏈夌粏寰樊寮傦紝 瀵逛簬鐞嗚В鏉ヨ鏃犵銆?/p> 緇忚繃1~2澶╃殑鏀歸狅紝 緇堜簬灝哾emo浠庝紶緇烾nity鍐欐硶鏀歸犱負ECS鏍囧噯鍐欐硶錛屾柊澧炰簡46涓枃浠訛紝 鑰屼紶緇熼昏緫涓鍏卞彧鏈?6涓枃浠訛紝澶ф瀵規(guī)瘮涓婨CS鐨勭壒鐐瑰拰宸紓銆?/p> Entitas鐨凟CS緋葷粺 1. 鏈潵鍦ㄤ竴涓璞′腑娣誨姞涓涓被瀛楁鐨勮繃紼嬶紝ECS闇瑕佹坊鍔犱竴涓被浠h〃Component錛屽茍涓斾唬鐮佺敓鎴愩?/p> 榪欎釜瀛楁涓鑸敤浜庢弿榪板璞$殑璧勬簮錛屽鐞嗘樉紺虹殑GameObject錛?琛ㄧず瀵硅薄鐨勭被鍨嬬瓑銆?/p> 2. 鏈潵涓涓璞$殑涓氬姟閫昏緫澶勭悊榪囩▼鐩存帴鐢ㄦ柟娉曡В鍐崇殑錛?ECS闇瑕佹柊鍔犱竴涓猄ystem錛岃屾搷浣滃璞¢渶瑕佷嬌鐢‵ilter鎴朑roup鏌ヨ鑾峰緱銆?/p> 3. 涓緋誨垪鐨勬搷浣滐紝 闇瑕佹媶鍒嗕負澶氫釜System鍜孋omponent鎷嗗垎澶勭悊銆傚鏋淪ystem欏哄簭涓嶅錛?浼氶犳垚涓浜涜寮傜殑bug銆?/p> 4. Component涓嶄粎浠呮槸Model鎵胯澆浣擄紝 涔熷彲浠ユ槸鍙傛暟鐨勬暟鎹粨鏋勩傚弬鏁癈omponent閫氳繃Entity浼犻掑埌System澶勭悊銆?渚嬪錛?閫氳繃ECS鍒涘緩涓涓柟鍧楃殑榪囩▼錛屼嬌鐢–reateTileComponent錛屽寘鍚垱寤篢ile鐨勪綅緗紝 鍒涘緩Entity騫舵坊鍔燙reateTileComponent錛?鍦–reateTileSystem涓鐞嗗氨鍒涘緩浜員ile錛屽鐞嗗畬鎴愭椂錛?闇瑕佸皢浼犲叆鐨凟ntity.Destroy鎺夈?/p> 6. Entity涓婁慨鏀笴omponent鐨勮繃紼嬶紝 浼氳Е鍙戜簨浠躲備慨鏀圭殑榪囩▼闇瑕佷嬌鐢≧elaceXXX錛孹XX琛ㄧず緇勪歡鍚嶃傜粍浠跺彲浠ラ綣佷慨鏀癸紝 涓嶇敤鎷呭績娣誨姞鍜屽垹闄ょ粍浠惰繃紼嬬殑鎬ц兘錛?Entitas搴曞眰澶勭悊鎬ц兘鍙浉褰撲簬鎸囬拡璧嬪肩殑鎬ц兘銆?/p> ECS鍍忎粈涔堬紵 1. ECS涓殑System綾諱技瑙﹀彂鍣ㄧ郴緇燂紙Event-Condition-Action錛夛紝鍏朵腑錛孍vent瀵瑰簲Entitas鐨凣etTrigger+Collector錛岃〃紺鴻Е鍙戜簨浠躲侰ondition瀵瑰簲Filter琛ㄧず鍦ㄤ簨浠舵潵婧愬璞′腑鎵懼埌闇瑕佺殑瀵硅薄銆?Action瀵瑰簲Execute錛岃〃紺哄疄闄呯殑鎿嶄綔銆?/p> 2. ECS涓殑Component綾諱技涓嶇敤lua鎵╁睍鐨凴edis鎴栬呬笉鐢ㄥ瓨鍌ㄨ繃紼嬬殑MySQL錛?綰補綰暟鎹紝 鑰屼笉鑳藉鏁版嵁鏈変換浣曞皝瑁呮搷浣溿傛病鏈塴ua鍜屽瓨鍌ㄨ繃紼嬫敮鎸佺殑db鍐欒搗鏉ヨ繕鏄瘮杈冭垂鍔茬殑錛屼絾ECS灝辨槸閭d箞鐨勭函銆?/p> 3. ECS涓殑Entity寰堝按灝紝鍥犱負Component鏄寜綾誨埆榪炵畫瀛樺偍鐨勪互淇濊瘉鎬ц兘銆?閫昏緫鍙堥渶瑕丒ntity緇勫悎鎴愰昏緫闇瑕佺殑澶嶅悎瀵硅薄銆?涓よ竟閮借鐓ч【錛屾墍浠ヨ繖縐嶈璁″氨璁╀唬鐮侀噺宸ㄥ錛屽彲璇繪т笅闄嶃?/p> ECS浼佸浘鐢ㄤ竴濂楁鏋剁伃鎺夎璁℃ā寮?/span> 1. 鍗曚歡錛圫ingleton錛夊湪Entitas鐢║nique鏍囩鏍囪Component錛?鍦–ontext涓氨鏄敮涓鐨勶紝 鍏跺疄涔熷氨鏄疭ingleton銆?/p> 2. ECS騫叉帀浜嗕紶緇熺殑宸ュ巶妯″紡錛屽簳灞傜粺涓瀵瑰璞★紙Entity錛夊拰灞炴э紙Component錛夌粺涓綆$悊銆傞渶瑕佹寜Component涓殑鍊兼壘鍥濫ntity鏃訛紝 鍙互浣跨敤EntityIndex銆?/p> 3. Entity鎼哄甫涓嶅悓鐨勭粍浠舵椂錛屾暣涓垱寤哄拰閿姣佽繃紼嬭璁板綍騫舵仮澶嶏紝鍏跺疄灝辨槸Command妯″紡 ECS閫傚悎鍋歎I妗嗘灦錛堢被浼糓VVM錛孧VC,MVP錛変箞錛?/span> ECS涓嶆槸涓撶敤鐨刄I妗嗘灦錛屼絾鏄彲浠ュ涓嶅悓緋葷粺鍜屾暟鎹棿瑙h︺備紶緇熶唬鐮佷腑鏁版嵁淇敼鍚庣殑Callback錛孍CS涔熷彲浠ョ敤Listener鍋氾紝 浣哃istener鍥犱負鑳戒繚瀛樻暟鎹紝 灝遍渶瑕佺敤Component淇濆瓨銆?鎵浠ヤ綘闇瑕侀潰瀵圭殑鏄紝涓涓狟utton錛屽搷搴斿垱寤轟竴涓弬鏁扮敤鐨凜omponent鍜孲ystem錛岃繕瑕佷負鏁版嵁鏀瑰彉鍐欎竴濂桳istenComponent鍜孡istener澶勭悊鐨凷ystem錛岄吀鐖藉惂錛?/p> Minecraft閫傚悎ECS鏉ュ仛涔堬紵 鍙互錛屾ц兘搴旇鑳芥彁鍗囦笉灝戯紝浣嗘槸浠g爜浼氭洿綣佺悙錛岀壒鍒儚Java榪欑鍟板棪璇█閰嶄笂ECS榪欑鍟板棪妗嗘灦錛屼及璁′唬鐮侀噺緲葷炕榪樻槸寰堣交鏉劇殑銆侻C灞炰簬鐗規(guī)畩綾誨瀷鐨勬父鎴忥紝閫傚悎鐗規(guī)畩棰嗗煙鐗瑰埆浼樺寲錛屼篃灝辨槸涓撻棬涓烘柟鍧楀仛鍑虹壒鍒殑璁捐鏉ュ仛浼樺寲銆侲CS灞炰簬閫氱敤妗嗘灦錛屽嵆渚挎ц兘OK錛屼絾鏄唬鐮佹湭蹇呰兘鏈夎壇濂界殑鍙鎬с?/p> 浣撻噺灝忕殑娓告垙閫傚悎鐢‥CS鏉ュ仛涔堬紵 鍙互錛屼絾涓嶅緩璁傜壒鍒槸鍙湁鍑犱釜浜虹淮鎶ょ殑宸ョ▼錛岃錘鐒朵笂ECS緋葷粺錛屼細璁╃郴緇熷彉鐨勬瀬涓哄鏉傘傚綋鐒朵綘浼氳錛屽鏋滃紑鍙戝埌鍚庢湡錛屼紶緇熷紑鍙戞ā寮忎細瀵艱嚧浠g爜浼氫貢錛孍CS浼氬ソ浜涘惂銆傛帉鎻CS涔熶笉鏄竴澶╀袱澶╃殑浜嬫儏錛屼笉鐔熸?zhèn)塃CS鐨勭▼搴忓憳璁捐鍑烘潵鐨勭郴緇熻幏寰楃殑浼樺娍鍙兘榪樹笉濡傜敤浼犵粺璁捐鏂規(guī)硶濂藉憿銆?/p> 鏋舵瀯瑙e喅鐨勬槸浜虹殑闂錛?浜洪兘鏈夐棶棰橈紝鐢ㄤ粈涔堟鏋墮兘娌″姙娉曘?/p> 鍒板簳浠涔堥」鐩傚悎鐢‥CS錛?/span> 1. 澶ч噺鐨勫皬涓綋涓嶆柇鐨勭敓鎴愬拰閿姣佷互鍙婃樉紺猴紝渚嬪錛?鏀誨煄鎴樹腑錛岃浣撶幇姣忎釜瑙掕壊鐨勭Щ鍔紝鎴樻枟銆?/p> 2. 澶氫簬5涓漢緙栧啓鏍稿績鎴樻枟閫昏緫銆備簰鐩稿崗浣滃拰妯″潡鍒囧垎錛岄渶瑕佷竴涓ぇ瀹墮兘鑳戒俊鏈嶇殑妗嗘灦錛孍CS鍙互閫夋嫨銆?/p> P.S. 涓嶈閫燛CS鐨勮疆瀛愶紒 寰堝鍚屽鐪嬩簡ECS鍩烘湰鍘熺悊錛屽湪娌℃湁娣卞叆浣跨敤榪囦換浣旹CS緋葷粺鏃墮┈涓婃搷鍒閫犺疆瀛愩侲CS緋葷粺紜疄鐪嬭搗鏉ョ畝鍗曘傚疄闄呴犱笅鏉ヤ綘浼氬彂鐜幫紝鎬ц兘闈炲父緋熺硶浠ュ強涓嶇煡閬撲竴浜涢昏緫濡備綍鐢‥CS鏉ヨВ鍐熾?/p> 鎬葷粨錛?/span> 1. ECS紜疄涓烘ц兘鑰岀敓錛屾病鏈夊茍鍙戝姞鎸佹ц兘鐨凟CS閮芥槸鑰嶆祦姘擄紝瑕佸揩灝辮蹇埌鏋佽嚧銆?/p> 2. Unity涓紝ECS騫跺彂鑳芥墿灞旵PU鐨勫埄鐢ㄧ巼錛屼絾鏄疓PU鐨勬ц兘渚濈劧榪樻槸DrawCall浼樺寲閭d竴濂楋紝鍒湡鏈汦CS浼氶瑕哢nity錛屾ц兘涔熶笉浼氬揩鍒伴璧鳳紝鍏抽敭榪樻槸瑕佺湅鍏蜂綋鐨勯」鐩拰浜恒?/p> 3. ECS鏄竾鑳芥鏋訛紝浣嗕笉鍏ㄨ兘銆備紶緇熸灦鏋勫拰璁捐鎬濇兂涔熶笉鏄竴鏃犳槸澶勶紝鐔熷暐鐢ㄥ暐錛屾庝箞蹇庝箞鏉ワ紒 鏃犺葷殑騫垮憡閾炬帴錛岃鍚勪綅鏀寔 銆奊o璇█浠庡叆闂ㄥ埌榪涢樁瀹炴垬錛堣棰戞暀瀛︾増錛夈?寰愭嘗)銆愭憳瑕?涔﹁瘎 璇曡銆? 浜笢鍥句功 瑙e喅鏂規(guī)硶: 鍦≒articleSystem緇勪歡涓婂嬀閫塖ubEmitter, 涓嶈闂負浠涔? 鍋氬氨濂?/p> 鐩稿叧瀹樻柟閾炬帴 http://answers.unity3d.com/questions/218369/shuriken-particle-system-not-rendering-particles-w.html 澶╃厼鐨? 4.X紼嬪簭鏃犳硶璁塊棶綺掑瓙緋葷粺鐨勫弬鏁? 鎵浠ュ彧鑳借緵鑻︾編鏈厔寮熶滑浜?/p> 杞澆璇鋒敞鏄?http://www.shnenglu.com/sunicdavy鎴橀瓊灝忕瓚 緗戜笂鏈夊緢澶氱炕璇戜簡鑻規(guī)灉瀹樻柟鐨勬惌寤篿pv6嫻嬭瘯緗戠粶鐜鐨勬枃绔? 渚嬪: 鏃犻渶璺敱鍣ㄦ敮鎸乮pv6, 浣嗙尗(modem)蹇呴』瑕佹敮鎸乮pv6. 鍥犱負鐜板湪澶у鏁伴兘鏄厜鐚?br>浠ヤ笅鎴浘鏄厜鐚鐞嗙 璇風‘璁ac os緋葷粺蹇呴』鏄痮sx 10.11浠ュ悗鐨勭増鏈墠鍙互鎵撳紑NAT64 杞澆璇鋒敞鏄?http://www.shnenglu.com/sunicdavy鎴橀瓊灝忕瓚 WWW綾繪湰韜凡緇忔敮鎸佷簡IPV6, 鏃犻渶澶勭悊, 榪欓噷璁茶В浣跨敤C#鍘熺敓Socket鐨勫鐞? 4.7.2鍜?.4.3鐨勫綋鍓嶇増鏈湪mono灞傚茍鏈敮鎸乮pv6浠g爜閫傞厤鐨勬牳蹇冨嚱鏁癵etaddrinfo, 鍥犳闇瑕侀氳繃oc灞傚仛杞崲, 浠ヤ笅鏄唬鐮?br>榪欐浠g爜灝唃etaddrinfo鐨勫湴鍧杞崲鎴愪竴涓畬鏁村瓧絎︿覆, 鏍煎紡鏄? P.S. copyStr榪欑鐢ㄦ硶鍙傝冧簡http://www.codeinsect.net/blog/2016/05/26/unity-ipv6-socket-%E6%94%AF%E6%8C%81%EF%BC%8C%E5%B7%B2%E6%B5%8B%E8%AF%95%E9%80%9A%E8%BF%87/ 杞澆璇鋒敞鏄?http://www.shnenglu.com/sunicdavy鎴橀瓊灝忕瓚 iosaddrinfo.mm iosaddrinfo.h 鏌愪漢鐨勮В鍐蟲柟妗?br>http://www.codeinsect.net/blog/2016/05/26/unity-ipv6-socket-%E6%94%AF%E6%8C%81%EF%BC%8C%E5%B7%B2%E6%B5%8B%E8%AF%95%E9%80%9A%E8%BF%87/ 鍦ㄦ瘡涓猵rotoc-gen-lua鐢熸垚鐨刲ua鏂囦歡閲? 閮芥湁涓琛?/p> 鏈韓鎸夌収瀹樻柟鍑虹殑娌¢棶棰? 浣嗘槸鍦╱lua鐨勭洰褰曢噷, 鎬繪槸鎶rotobuf鎵句笉鍒扮殑閿欒. 鍓嶅悗瀵規(guī)瘮浜嗕笅鎴戠敓鎴愮殑lua鍜寀lua瀹樻柟鐢熸垚鐨勪唬鐮侀噷 鍙戠幇灞呯劧浠栦慨鏀逛簡鍦板潃鏀逛負浜?/p> 濂藉惂, 鍙湁淇敼鐢熸垚鍣ㄤ唬鐮乸rotoc-gen-lua\plugin\protoc-gen-lua涓412琛屾敼涓?/p> 榪欎釜閿欒鐪熸槸璁╂垜鍝瑧涓嶅緱, protoc-gen-lua鐨勫彲鐢ㄦу啀涓嬈¤鎬鐤?/p>
鎴戜滑鐨勫崗璁ソ姝瑰垎鎴愪簡鎺ヨ繎100涓? 姣忎釜閲岄潰娑堟伅鍜屾暟鎹槸娣峰悎鐨? 鏇村埆璇存湁浜涚闉嬪枩嬈㈡妸涓涓」鐩殑鍗忚鍏ㄥ啓鍦ㄤ竴涓枃浠墮噷, 閭g敓鎴愮殑local鏁伴噺綆鐩存槸閰哥埥 鍚庤 鎼滅儲protoc-gen-lua鏃? 鏃犳剰闂村張鎼滃埌3騫村墠鑷繁鐨勫崥鏂?a title="http://www.shnenglu.com/sunicdavy/archive/2013/04/24/199693.html" href="http://www.shnenglu.com/sunicdavy/archive/2013/04/24/199693.html">http://www.shnenglu.com/sunicdavy/archive/2013/04/24/199693.html 璁板緱閭d釜鏃跺欏噯澶囧湪鏈嶅姟鍣ㄤ嬌鐢╨ua, 榪樺ソ娌¤繖涔堝共, 杞簡go, 鍚﹀垯鍚庢灉涓嶅牚璁炬兂 lua涓婁嬌鐢╬b鍏跺疄騫朵笉瀹規(guī)槗, 浜戦鐨刾bc鍐欑殑涓嶉敊, 浣嗘曟湁鍧? sproto鐩存帴涓嶅吋瀹圭幇鏈夐」鐩? 椋庨櫓澶т簬鏄撶敤鎬ф墍浠ユ灉鏂純鐢?/p>
鍥犳, 鐪嬫潵鏈夊繀瑕佽嚜宸卞啓涓涓敮鎸佽壇濂界殑lua pb搴?/p>
]]>
]]>鍩烘湰娉ㄦ剰鐐?/h3>
嫻嬭瘯緗戠粶鐜鎼緩
http://www.cocoachina.com/ios/20160525/16431.html
娉ㄦ剰浠ヤ笅鍑犵偣
鍏夌尗閲岀殑ipv6鏀寔榛樿鏄叧闂殑, 鎵浠ラ渶瑕佹墜鍔ㄦ墦寮, 鎸夐粯璁ゅ奸厤緗嵆鍙?/p> Unity3D鐨凷ocket閫傞厤
ipv4|ipv4鍦板潃|ipv6|ipv6鍦板潃|
浼氶犳垚鍐呭瓨娉勯湶, 濡傛灉鏈夋洿濂界殑鏂規(guī)硶嬈㈣繋鍙嶉 1: #include <sys/socket.h>
2: #include <netdb.h>
3: #include <arpa/inet.h>
4: #include <err.h>
5: #define OUTSTR_SIZE 4096
6: extern "C"
7: {
8: const char* copyStr( const char* str )
9: {
10: char* s = (char*)malloc(strlen(str) + 1);
11: strcpy(s, str);
12: return s;
13: }
14: const char* IOSGetAddressInfo(const char *host )
15: {
16: if( NULL == host )
17: return copyStr("ERROR_HOSTNULL");
18: char outstr[OUTSTR_SIZE];
19: struct addrinfo hints, *res, *res0;
20: memset(&hints, 0, sizeof(hints));
21: hints.ai_family = PF_UNSPEC;
22: hints.ai_socktype = SOCK_STREAM;
23: hints.ai_flags = AI_DEFAULT;
24: printf("getaddrinfo: %s\n", host);
25: int error = getaddrinfo(host, "http", &hints, &res0);
26: if (error != 0 )
27: {
28: printf("getaddrinfo: %s\n", gai_strerror(error));
29: return copyStr("ERROR_GETADDR");
30: }
31: memset( outstr, 0, sizeof(char)*OUTSTR_SIZE );
32: struct sockaddr_in6* addr6;
33: struct sockaddr_in* addr;
34: const char* solvedaddr;
35: char ipbuf[32];
36: for (res = res0; res; res = res->ai_next)
37: {
38: if (res->ai_family == AF_INET6)
39: {
40: addr6 =( struct sockaddr_in6*)res->ai_addr;
41: solvedaddr = inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, sizeof(ipbuf));
42: strcat ( outstr, "ipv6|");
43: strcat ( outstr, solvedaddr);
44: }
45: else
46: {
47: addr =( struct sockaddr_in*)res->ai_addr;
48: solvedaddr = inet_ntop(AF_INET, &addr->sin_addr, ipbuf, sizeof(ipbuf));
49: strcat ( outstr, "ipv4|");
50: strcat ( outstr, solvedaddr);
51: }
52: strcat ( outstr, "|");
53: }
54: return copyStr(outstr);
55: }
56: }
杞澆璇鋒敞鏄?http://www.shnenglu.com/sunicdavy鎴橀瓊灝忕瓚
1: #pragma once
2: extern "C"{
3: const char* IOSGetAddressInfo(const char *host );
4: }
榪斿洖緇欏畾鐨刪ost鍐呭涓狪P鍦板潃, 鍙互渚涘鐞嗗鏉傜殑鍖楃綉閫?鍗楃數(shù)淇¢棶棰?/li> 1: using System;
2: using System.Net;
3: using System.Net.Sockets;
4: using System.Runtime.InteropServices;
5: using UnityEngine;
6: using System.Collections;
7: using System.Collections.Generic;
8: public class IOSIPV6
9: {
10: [DllImport("__Internal")]
11: private static extern string IOSGetAddressInfo(string host );
12: public static IPAddress[] ResolveIOSAddress(string host, out AddressFamily af)
13: {
14: af = AddressFamily.InterNetwork;
15: var outstr = IOSGetAddressInfo(host);
16: Debug.Log("IOSGetAddressInfo: " + outstr);
17: if (outstr.StartsWith ("ERROR"))
18: {
19: return null;
20: }
21: var addressliststr = outstr.Split('|');
22: var addrlist = new List<IPAddress>();
23: foreach (string s in addressliststr)
24: {
25: if (String.IsNullOrEmpty(s.Trim()))
26: continue;
27: switch( s )
28: {
29: case "ipv6":
30: {
31: af = AddressFamily.InterNetworkV6;
32: }
33: break;
34: case "ipv4":
35: {
36: af = AddressFamily.InterNetwork;
37: }
38: break;
39: default:
40: {
41: addrlist.Add(IPAddress.Parse(s));
42: }
43: break;
44: }
45: }
46: return addrlist.ToArray();
47: }
48: }
杞澆璇鋒敞鏄?http://www.shnenglu.com/sunicdavy鎴橀瓊灝忕瓚
鍙傝冮摼鎺?/h3>
娉ㄦ剰, 姝ゆ柟妗堜腑鐨勬柟娉曞彲鐢? 浣嗘槸鍦板潃騫朵笉鑳借В鍐沖崡鍖椾簰閫氱殑闂
鐢熸垚濂界殑鍗忚鎶ラ敊鎵句笉鍒皃rotobuf
local protobuf = require "protobuf"
local protobuf = require "protobuf/protobuf"
lua('local protobuf = require "protobuf/protobuf"\n')
鐢熸垚娑堟伅鏃犳硶鎵懼埌Descriptor鍙嶅皠鏌ヤ俊鎭?/h2>
鍦↙uaFramework\ToLua\Lua\protobuf\protobuf.lua鐨?39琛屾坊鍔?/pre>
message_meta._member.Descriptor = descriptor
鍦ㄦ秷鎭噷灝卞彲浠ラ氳繃msg.Descriptor鑾峰緱姝ゆ秷鎭殑鍙嶅皠淇℃伅
鐢變簬proto鏂囦歡瀹氫箟鐨勫唴瀹硅繃澶氬鑷寸殑lua local瓚呰繃闄愬埗鐨勮鍛?/h2>
1. 鎶鑳介儴鍒嗙殑鐗規(guī)晥鍙互閬嶅巻鍔ㄤ綔琛ㄦ挱鏀劇殑鎵鏈夌壒鏁坕d, 鎻愬墠棰勮澆
2. buff綾葷壒鏁堟槸鍔ㄦ佺‘瀹氱殑,鏃犳硶鍒嗘瀽. 闇瑕侀氳繃瑙掕壊琛ㄦ坊鍔犺祫婧恑d鍦ㄥ姞杞借鑹叉椂鍔犺澆鐗規(guī)晥
榪欑鍋氭硶鐨勭己鐐?
褰撹鑹茬壒鏁堟晥鏋滆皟鏁存椂, 緹庢湳鍜岀瓥鍒掗渶瑕佽皟鏁寸壒鏁坕d琛? 澶氬嚭鏉ヤ笉鐢ㄧ殑鐗規(guī)晥涔熷姞杞芥槸鎰熻涓嶅嚭鏉ョ殑, 鍒嗘瀽涔熸槸寰堝洶闅劇殑
鎵浠ヨ繖縐嶄互浼犵粺鐨勭數(shù)瀛愯〃鏍奸厤緗負涓績鐨勬柟寮忓湪Unity3D閲? 鍐呭瓨, 鍖呬紭鍖栦細鏄釜澶ч棶棰?
閭d箞, 浠涔堟槸Unity3D鐨勫紑鍙戞牳蹇冩濇兂?
闄や簡緇勪歡鎬濇兂澶? 灝辨槸Prefab, 璐交鏁翠釜緙栬緫鍣ㄥ強寮曟搸鑷鑷崇粓
澶勭悊瑙掕壊鎼哄甫鐗規(guī)晥鍔犺澆鍚庢挱鏀劇殑榪欎釜case, 鐢≒refab涓轟腑蹇冪殑璧勬簮綆$悊鏉ュ仛鐨勮瘽, 澶ф灝辨槸榪欐牱:
1. 紼嬪簭緙栧啓涓涓鑹茬壒鏁堝垪琛ㄨ剼鏈? 鎶奓ist鏆撮湶鍑烘潵鍙互鍦ㄧ紪杈戝櫒閲屼嬌鐢?/p>
2. 緹庢湳鍦ㄥ仛鎶鑳芥椂, 鎶婅鐢ㄥ埌鐨勭壒鏁堟嫋鎷藉埌List涓?/p>
3. 鐗規(guī)晥鏃犻渶鍐嶇紪鍒跺叏灞ID緙栫爜
4. 絳栧垝鏍規(guī)嵁榪欎釜瑙掕壊鎸傛帴鐨勭壒鏁堢儲寮? 鍦ㄩ厤緗〃閲屾坊鍔犳挱鏀炬寚浠?/p>
榪欐牱鍋氱殑浼樼偣:
瑙掕壊寮曠敤鍒扮殑璧勬簮鎵嶄細琚墦鍒版渶緇堟父鎴忓寘鍐? 涓嶄嬌鐢ㄧ殑璧勬簮鏄笉浼氳鍔犺澆鐨?/p>
綾諱技鐨? 鍦║I鐗規(guī)晥閲? 涔熷簲璇ユ槸灝嗚鎾斁鐨勭壒鏁堟寕鎺ュ埌瀵硅薄涓? 鑰屼笉鏄姩鎬侀氳繃浠g爜鍘誨姞杞?/p>
鍦║nity3D涓? Prefab灝嗗浘鐗?Shader, 鐗規(guī)晥, 鑴氭湰絳変竴鍒囧鉤絳夌湅寰? 鍙鏈夊紩鐢? 涓嬈℃у姞杞?
鍚屾椂, 涔熷彲浠ラ氳繃闈欐佸伐鍏峰垎鏋怭refab.
濡傛灉鏄氳繃浠g爜鍔犺澆鐨勬晥鏋? 鍒欏彧鑳借紼嬪簭鍛樺仛浼樺寲, 榪欑榪囩▼鏃犳硶璁︰nity3D瀹樻柟鍚庢湡鎻愪緵鐨勫伐鍏瘋繘琛屼紭鍖?/p>
鎵浠? 鎺ㄨ崘浣跨敤Prefab涓轟腑蹇冪殑璧勬簮綆$悊妯″紡
闅忓嵆錛屾垜浠繘琛屼簡鍒嗘瀽銆傛湡鍒濇帹鏂槸arm64寮曡搗鐨勯棶棰橈紝灝濊瘯璋冩暣涓篿l2cpp鍚屾椂鍚敤armv7鍜宎rm64鐨勯氱敤鍖咃紝闂娌℃湁瑙e喅銆?/p>
緇х畫鍒嗘瀽錛氬洜涓烘父鎴忔甯稿惎鍔紝 鍙槸鍒濇鍔犺澆鍗¤繘搴︽潯錛?閭d箞鍙互鎺掗櫎鏄痑rm64浣嶉棶棰樺鑷寸殑錛屽洜涓哄鏋滄槸涓嶅吋瀹瑰寘錛?鍦ㄥ畨瑁呮椂鐩存帴浼氭姤鍑烘灦鏋勯敊璇紝鏃犳硶姝e父瀹夎銆?/p>
緇欐父鎴忓唴閮ㄥ姞鍏ヤ簡涓涓狧TTP鏃ュ織緋葷粺錛?緇欐湇鍔″櫒鎶ラ敊銆傝窡韙簡涓嬈★紝 緇撴灉鍙戠幇浜嗕竴浜涘鎬棩蹇?/p>
鍦ㄦ嫻嬩笅杞戒箣鍓嶇殑鍔犺澆娌℃湁鍑虹幇浠諱綍闂
浣嗘槸涓嬭澆閿欒鎶ヤ簡涓ゆ錛?絎竴涓敊璇湪鎴戜滑鏈満涔熶細鎶ワ紝浣嗗彲浠ュ拷鐣ャ?浣嗙浜屼釜閿欒鍙湁iTouch5錛宨Phone6s浼氬嚭鐜?/p>
鎶ラ敊鍚庯紝 鎵鏈夋棩蹇楅兘鍑虹幇浜嗕袱嬈°?/p>
瀵規(guī)瘮浜嗕笅浠g爜錛屽彂鐜頒簡涓浜涢昏緫婕忔礊銆備絾鍚屾椂闇瑕佹敞鎰忕殑鏄紝 榪欎釜bug鐨勯棶棰樼殑鏍稿績?yōu)鏄湪杩欎竴涓敊璇弿榪頒笂
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
鏌ヨ繃鏂囩珷鍙戠幇錛宨os9寮濮嬮粯璁よ姹傛墍鏈夌殑app鐨凥TTP璁塊棶蹇呴』浣跨敤HTTPS鍔犲瘑鍗忚淇濊瘉瀹夊叏
鎵浠ョ粨鍚堝墠闈㈢殑嫻嬭瘯鐜錛?璇佹槑榪欎釜闂紜畾琚慨澶?/p>
Unity3D鐜板湪瀹樻柟涓嶆敮鎸佺儹鏇存柊, 铏界劧鏈変竴浜沴ua鐨勭儹鏇存柟妗? 浣嗛壌浜庨」鐩紑濮嬫椂lua鐑洿榪樹笉鎴愮啛, 鎵鏈夋病鏈夐噰鐢?
緇忚繃闀挎椂闂翠笟鐣屽拰鎶鏈殑鎽╂摝, 娓犻亾鍩烘湰璁ゅ悓浜哢nity3D涓嶈兘鐑洿鐨勭幇瀹?
鏍規(guī)嵁鎴戜滑榪欒竟榪愯惀鍒嗘瀽鐨勭儹鏇存柊鐨勯渶姹? 涓存椂鍏抽棴鍔熻兘閬垮厤bug鍒烽挶
鍦ㄥ己鍔涚殑QA鏀寔(鎴戜滑鏈?涓? 鍙互淇濊瘉鐗堟湰鐨勫姛鑳戒笉浼氭湁鏄庢樉闂, 鍗充究鏈夐棶棰? 鍙互閫氳繃鏈嶅姟鍣ㄥ叧闂姛鑳借揪鍒版晥鏋?
榪欐牱鏉ヨ, 浠g爜涓婄殑鐑洿鏂板熀鏈槸涓嶅彲鑳戒簡, 鍙兘閫氳繃鏈嶅姟鍣ㄦ潵閰嶅悎, 鎵浠ユ垜浠彧鑰冭檻璧勬簮鐑洿鏂伴渶姹?
鍦烘櫙: 榪欓儴鍒嗗睘浜嶱VE鍔熻兘, 铏界劧鍖呭惈鏈夋墿鎽嗘斁鐨勯昏緫, 浣嗕竴鑸竴鏃﹀仛濂藉熀鏈病鏈夋洿鏂伴渶瑕?
瑙掕壊: 鍚庢湡榪欏潡鍙兘浼氳冭檻鏇存柊, 浣嗘槑鏄劇郴緇熶笂鍙互鍚屾椂鏀寔鎵撳寘鍜岄潪鎵撳寘闇姹? 鍥犳榛樿鍖呭唴鐨勮鑹插彲浠ョ洿鎺ユ墦鍖? 鏈潵鐨勪粯璐圭浉鍏崇殑瑙掕壊鐑洿鏂伴渶姹傛棦鍙互閫氳繃
涓闃舵鎵撳寘鏇存柊, 涔熷彲浠ユ牴鎹閲忔洿鏂拌繘琛?
鐣岄潰: 鐭ヨ瘑鏇存柊鐣岄潰鍖呭彧鑳戒慨鏀圭晫闈㈠竷灞鍜屽潗鏍? 閫昏緫渚濈劧闇瑕佹墦鍖呮洿鏂? 鎵浠ヨ繖鍧楀畬鍏ㄦ湁蹇呰涓嶅仛鎵撳寘
鐗規(guī)晥: 鐗規(guī)晥涓庤鑹插拰鐣岄潰鍏寵仈绱у瘑, 鑰屼笖娣風敤, 浜ゅ弶鐨勬儏鍐靛緢澶? 鎵撳寘鏄庢樉浼氶犳垚涓閮ㄥ垎璧勬簮閲嶅榪涘叆鍖呬綋, 鍥犳鏋滄柇涓嶆墦鍖?
鎬葷粨涓嬫潵, 璧勬簮鐨勬洿鏂頒竴瀹氭槸浼撮殢鐫浠g爜鐨勬洿鏂版潵鍋氱殑, 閭d箞鍙互瑙勫垝涓涓ぇ鐗堟湰, 鎶婇渶瑕佹洿鏂扮殑璧勬簮鍜屽姛鑳介昏緫涓鍧楁洿鏂?
铏界劧澶у寘鏇存柊浼氭崯澶變竴瀹氱殑鐢ㄦ埛, 浣嗘湭鏉ュ湪鏍稿績紼沖畾鐨勬儏鍐典笅, 鍙互鑰冭檻鎶婃柊鍔熻兘鐢ㄨ剼鏈潵鏇存柊
璧勬簮涓嶆墦鍖呭甫鏉ユ槑鏄劇殑浼樺娍: 璧勬簮鍔犺澆鍙樼殑鏇村揩浜? 鍒朵綔嫻佺▼鍙樼殑鏇寸畝鍗? 鏃犻渶鍏煎鎵撳寘鍜岄潪鎵撳寘鎯呭喌. 鍖呬綋澶у皬鏈夊皬騫呭害涓嬮檷( 閲嶅鎵撳寘閮ㄥ垎)
姣忔Unity3D緙栬緫鍣ㄦ墦寮鏃? 榪炴帴鏈嶅姟鍣ㄩ兘浼氭湁涓瀹氬嚑鐜囧け璐? 闇瑕佸弽澶嶅叧闂啀鎵撳紑緙栬緫鍣?~4嬈″悗, 鎵嶈兘姝e父鎺ユ敹鍒板皝鍖?/strong>
杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy
鎴戜滑鐨勭綉緇滃簱鍩轟簬C#鐨凚egin/End緋葷殑寮傛Socket, 榪欑socket鏇存帴榪慍++鐨刟sio妯″瀷, 鎾歌搗鏉ョ壒鐖?
1. 鏍規(guī)嵁緇忛獙, 榪欎釜璇″紓闂澶氬崐璺熷綰跨▼鏈夊叧緋? 澶嶆煡浠g爜, 鏃犳晥.
2. 鎵懼弸浜烘洿鎹㈢綉緇滃簱, 鎹㈤樆濉濻ocket瀹炵幇鍜孲ocketAsyncEventArgs榪欑瀹炵幇閮借瘯榪? 浠嶇劧鏃犳硶瑙e喅闂.
3. 鎺ヤ笅鏉ヨ繕鏄Begin/End緋葷殑緗戠粶搴撹繘琛屾棩蹇楄拷韙? 鍙戠幇, 鍙戦佷細鎬繪槸鎴愬姛, 榪炴帴鎴愬姛鍜屾帴鏀跺皝鍖呮湁涓瀹氬嚑鐜囦細鏂帀
鎴戜滑騫舵病鏈夊崟鐙紑綰跨▼鏉ュ鐞? 鑰屾槸鍒╃敤搴曞眰寮傛閫氱煡, 鐒跺悗鏈夌嚎紼嬪畨鍏ㄩ槦鍒楀垏鎹㈠埌涓葷嚎紼嬭繘琛屾姇閫? 鍥犳搴曞眰鐨勭嚎紼嬫甯告ф槸鏁翠釜闂鐨勭劍鐐?/p>
鐢變簬涓鐩存棤娉曟壘鍒板師鍥? 榪欎釜闂鎼佺疆浜?/p>
杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy
鐩村埌鏈変竴涓伓鐒剁殑鏈轟細, 鍙栬繃鍚屼簨浠g爜鍚? 紿佺劧鍙戠幇絎竴嬈℃墦寮Unity3D緙栬緫鍣ㄥ彲浠ョ洿鎺ョ櫥褰? 浣嗕箣鍚庡張涓嶈. 鍚屼簨鎻愰啋, 浼氫笉浼氭槸浼樺厛搴﹂棶棰?
椹笂鎵撳紑Edit->Project Settings->Script Execution Orders. 鎻愰珮浜嗙綉緇滅粍寤轟紭鍏堝害
嫻嬭瘯, 閫氳繃, 闂瑙e喅
杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy
杞澆璇鋒敞鏄? 鎴橀瓊灝忕瓚http://www.shnenglu.com/sunicdavy
涓鐩存鐤戣繖涓棶棰樿窡Mono鐗堟湰榪囪佹湁鍏崇郴, 浣嗙敱浜?.2鐗堟湰鍒板勾搴曟墠鏇存柊, 涔嬪墠鍙兘鑷繁鍟僢ug.
鍦ㄨ繖涓棶棰樺彂鐢熷悗瑙e喅鍓? 鎴戜滑榪樻湁涓涓浉鍏寵闂? 鎴戜滑灝嗙綉緇滈儴鍒嗘瘮杈冪ǔ瀹氱殑浠g爜鎷嗗垎鏀懼埌dll涓? 閫氳繃Unity3D鐨勬満鍒惰繘琛屽姞杞?/p>
緇撴灉, 緗戠粶鏃犳硶鍒濆鍖? 浼拌涔熸槸璺熻繖涓棶棰樻湁鍏崇郴
鎬諱箣, 鏈夌被浼奸棶棰樻椂, 鍙互璇曠敤鑴氭湰鎵ц欏哄簭澶ф硶榪涜灝濊瘯
涓轟簡璁╀唬鐮佺鐞嗗伐鍏瘋兘璇嗗埆Unity3D鐨刟sset鏍煎紡, 鍋氬嚭涓浜涘皯閲忕殑鍚堝茍鍙婅瘑鍒慨鏀? 鎴戜滑闇瑕佸Unity3D榪涜涓浜涢厤緗互閫傚簲浠g爜綆$悊宸ュ叿.浠ヤ笅鏄楠?
Edit->Project Settings->Editor閲屾寜濡備笅閰嶇疆
鍦ㄥ仛鍑轟慨鏀瑰墠, 璇峰皢涔嬪墠鐨勪慨鏀規(guī)彁浜や唬鐮佺鐞?/p>
灝嗛夐」璁句負綰㈡鍐呯殑鏂瑰紡, 浣跨敤鏄懼紡Meta Files, 浠ラ伩鍏嶅湪璧勬簮綆$悊鍣ㄩ噷琚蹇界暐鐨刴eta鏂囦歡浠ュ強Asset鏂囦歡浣跨敤鏂囨湰鏍煎紡
璁懼畾濂藉悗, 鎵鏈夌殑璧勬簮灝嗛噸鏂板簭鍒楀寲, 灝嗕慨鏀規(guī)彁浜や唬鐮佺鐞嗗伐鍏?/p>
浠g爜綆$悊宸ュ叿涓嶆槸鐜╄兘鐨? 涔熶竴瀹氳兘寰堝ソ鐨勫悎騫惰繖浜涘鏉傛枃鏈牸寮? 鍥犳鎴戜滑鍦ㄥ浜哄崗浣滃紑鍙戜腑闇瑕侀伒瀹堜竴浜涘師鍒?/p>
1. 鍏堣幏鍙栧埆浜虹殑鏇存柊, 榪愯鏃犺鍚庡啀鎻愪氦( 鏈鍩烘湰鐨?)
2. 瀵規(guī)湁鍚堝茍鐨刟sset鏍煎紡, 灝介噺鏌ョ湅鍏朵慨鏀硅繃紼? 璇㈤棶浠栦漢鐨勪慨鏀逛笌鑷繁鐨勪慨鏀瑰樊寮?鎴栬呮槸git鐨?鏂瑰悎騫?
3. 瀵瑰悎騫墮敊璇殑asset鏍煎紡, 搴斿強鏃朵慨姝? 鎵嬪姩鍚堝茍, 鍒囧嬁寤惰騫舵彁浜? 褰卞搷浠栦漢
鍙傝冮摼鎺? http://stackoverflow.com/questions/21573405/how-to-prepare-a-unity-project-for-git
宸ョ▼鍙傛暟璁劇疆
鍦ㄥ垱寤烘椂, 璁板緱灝嗘渶涓嬭竟鐨勬ā寮忚涓?D妯″紡
鎽勫儚鏈哄弬鏁拌緗?/strong>
榪欓噷闇瑕佽瀹氱殑欏?
Z璁句負-10, 濡傛灉璁句負0, 灝嗕笉鍙鐗╀綋
ClearFlags璁句負綰壊, 鍥犱負鏄?D娓告垙, 鎵浠ユ棤闇榛樿鍙傛暟鐨勫ぉ絀虹洅
Projection璁句負姝d氦鎶曞獎(Orthographic), 榪欐槸鐩稿浜?D鐨勯忚鎶曞獎鐨?/p>
Size鏍規(guī)嵁浣犵殑璁捐鏈熷垎杈ㄧ巼鐨勫崐楂樺害鏉ヨ瀹?姣斿璁捐鏈? 鎴戜滑浠Phone4鐨勫垎杈ㄧ巼(960*640)涓鴻璁″垎杈ㄧ巼, 閭d箞Size灝辮涓?40/2=320
綺劇伒甯х殑瀵煎嚭
U3D鍘熺敓鏀寔瀵圭汗鐞咥tlas鐨勫垏鐗囦互鍒朵綔綺劇伒甯? 鏄氳繃SpritePacker鏉ュ仛鐨? 涓嶈繃浠嬩簬TexturePacker鐨勫己澶у悎騫跺強綰圭悊鍒嗗竷浼樺寲, 榪欓噷鎴戜滑榪樻槸浠exturePacker鏉ュ仛渚嬪瓙.
TexturePacker 瀹樻柟緗戠珯: https://www.codeandweb.com/texturepacker
灝嗛渶瑕佸悎騫禔tlas鐨勫浘鐗囨媺鍏exturePacker, 鐒跺悗鍙傝冧笂鍥? 璁懼畾鎻忚堪鏂囦歡鏍煎紡涓篣nity3D. TexturePacker灝嗕負鎴戜滑瀵煎嚭涓涓猵ng鐨勭汗鐞嗗強涓涓猼xt鏍煎紡鐨勬枃鏈? 榪欎釜鏂囨湰鍐呴儴鏍煎紡鏄痡son, 鎻忚堪姣忎釜綺劇伒甯у湪鍘熷浘Atlas鐨勪俊鎭?/p>
璁懼畾綰圭悊瀵瑰簲鍍忕礌灝哄
鐐瑰嚮瀵煎叆鍒癠3D鐨刾ng綰圭悊, 鍦↖nspector涓Pixels To Units 璁懼畾涓?
榛樿榪欎釜鍊兼槸100, 浠h〃涓寮?00瀹?00楂樼殑綰圭悊鍦║3D涓彧鏈?涓崟浣嶅ぇ灝? 璁句負1鍚? 灝辨槸浼犵粺2D寮曟搸鐨? 綰圭悊涓庡睆騫曞垎杈ㄧ巼瀵瑰簲妯″紡
杞澆, 璇鋒敞鏄?/em>http://www.shnenglu.com/sunicdavy 鎴橀瓊灝忕瓚
杞崲TexturePacker瀵煎嚭鏍煎紡鍒癠nity3D綺劇伒甯ф牸寮?/strong>
鍦?a title="https://github.com/autolame/TexturePackerExtended" >https://github.com/autolame/TexturePackerExtended涓嬭澆涓涓猆nity鐨勬墿灞? 騫剁敥鍒板伐紼婣ssets涓鍏?/p>
鍦ㄥ垰鎵嶄嬌鐢═exturePacker瀵煎嚭鐨則xt鏍煎紡鏂囦歡涓婄偣鍑誨彸閿? 閫夋嫨Process to animated Sprites
榪欑瀵煎嚭娉? 閫傜敤浜庝互鍘熷鍗曞浘鐗囦腑, 浠ュ浘鐗囨涓績涓哄師鐐圭殑搴忓垪甯?/strong>
涔嬪悗, 灝咥tlas灝忕澶村睍寮鐨勫簭鍒楀撫鎷夊埌鍦烘櫙涓? 灝卞彲浠ラ瑙堝姩鐢諱簡