PlayMaker簡單實(shí)例(1):PM_Cube

前置閱讀:PlayMaker:觸發(fā)事件

Demo演示:PM_Cube


準(zhǔn)備場景

  • 新建場景郊艘,保存為PM_Cube声旺。
  • 創(chuàng)建一個(gè)Plane當(dāng)?shù)孛嫘扯Γ麨?code>Ground舰蟆,重置位置(在Transform組件上點(diǎn)擊右上角的“小齒輪”,選擇Reset)狸棍。再創(chuàng)建一個(gè)Cube物體身害,重置位置,修改Y Position為 0.5草戈。
  • GroundCube分別創(chuàng)建材質(zhì)球塌鸯,修改顏色以示區(qū)別。
  • 在Scene View中調(diào)整好一個(gè)合適的攝影機(jī)角度唐片,選擇Main Camera丙猬,從菜單選擇GameObject > Align With View將其與Scene View對(duì)齊。

PM_Cube version 0.1

做一個(gè)有“顏值”的Cube费韭!

選擇Cube茧球,打開PlayMaker Editor為其添加一個(gè)Fsm(命名為FSM_Color)。選擇State 1星持,點(diǎn)擊Action Browser打開動(dòng)作瀏覽器抢埋,在搜索欄輸入“color”,然后選擇Material類別中的Set Material Color钉汗,雙擊將其添加到State 1中羹令。

PM_Cube_002.png

在我們添加好的Action中鲤屡,修改Material參數(shù)為我們?cè)O(shè)置給Cube的材質(zhì)(點(diǎn)擊Material參數(shù)后面的小圓點(diǎn)损痰,然后選擇material,或者直接將material從Project面板中拖到這里)酒来,修改Color參數(shù)為我們想要的顏色卢未。

PM_Cube_003.png

這個(gè)Action的作用是:將指定GameObject(Game Object)上Mesh Renderer組件中的特定材質(zhì)球(Material Index)或者任意指定的材質(zhì)球(Material)上特定名稱(Named Color)的顏色參數(shù),修改為指定顏色(Color)堰汉。

  • Use Owner代表“自己”辽社,表示使用該Fsm所在的GameObject
  • 參數(shù)后面的“=”按鈕代表這個(gè)參數(shù)可以使用一個(gè)FSM變量
  • Every Frame如果被勾選,代表每幀都會(huì)執(zhí)行一次該Action的操作

運(yùn)行場景(點(diǎn)擊Play按鈕)翘鸭,我們發(fā)現(xiàn)Cube變成了綠色滴铅。

PM_Cube_004.png

退出Play模式,我們發(fā)現(xiàn)Cube保持為綠色就乓,這是因?yàn)槲覀冎苯訉?duì)材質(zhì)球的顏色做了修改汉匙,而材質(zhì)球并不是場景物體拱烁,而是Asset資源,所以在Play模式被修改了以后噩翠,退出Play模式也不會(huì)恢復(fù)戏自。

在Play模式下我們對(duì)場景物體進(jìn)行的修改,退出Play模式以后都不會(huì)被保存伤锚,但初學(xué)者經(jīng)常忘記這一點(diǎn)擅笔。所以可以從菜單 Edit > Preferences 打開Unity Preferences面板,然后選擇 Colors 欄屯援,將第一行的 Playmode tint 顏色修改成一個(gè)比較顯眼的顏色猛们,這樣就不會(huì)忘記退出Play Mode了。


PM_Cube version 0.2

Cube也是會(huì)翻臉的哦玄呛!

下面我們改造一下:

首先我取消了Material參數(shù)上的設(shè)置(點(diǎn)擊小圓點(diǎn)阅懦,選擇None)。這是因?yàn)槲壹热灰呀?jīng)設(shè)置了使用模型本身Material Index為0的那個(gè)材質(zhì)進(jìn)行修改徘铝,就無需再指定特定材質(zhì)球了耳胎。

修改“GameObject上Material Index = 0的材質(zhì)”和“修改對(duì)應(yīng)的.mat文件”還是有所區(qū)別的,我們可以認(rèn)為游戲物體上實(shí)際附加的材質(zhì)是Assets目錄下.mat文件的一份拷貝惕它,修改Material Index = 0的材質(zhì)參數(shù)實(shí)際上不會(huì)改變.mat文件本身怕午。
所以做了這個(gè)修改以后,就不會(huì)出現(xiàn)退出Play模式顏色依然保持改變的情況了淹魄。

通常情況下郁惜,我們都盡量不要直接對(duì)Asset本體進(jìn)行修改,調(diào)用以后修改GameObject就可以了甲锡。

按下Color后面的“=”按鈕兆蕉,然后點(diǎn)擊紅色顯示的None,選擇New Variable...以創(chuàng)建一個(gè)新的變量缤沦,起名為“color”虎韵。

PM_Cube_006.png

然后到Variables欄中,就會(huì)看到有新的變量出現(xiàn)了缸废,這個(gè)變量名稱為color包蓝,類型是“Color”。

給PlayMaker的動(dòng)作參數(shù)指定變量企量,變量類型必須與參數(shù)的數(shù)據(jù)類型一致测萎,所以最好的辦法是在參數(shù)中創(chuàng)建新變量,這樣類型就一定是匹配的了届巩。

如果想直接在變量面板中新建變量硅瞧,首先在空白處點(diǎn)擊以取消當(dāng)前選擇的參數(shù),然后在下方New Variable欄中輸入名稱恕汇,Variable Type欄中選擇類型腕唧,點(diǎn)擊Add或者按回車都可以完成創(chuàng)建冒嫡。

我勾選了這個(gè)color變量的Inspector選項(xiàng)以使它能夠在Inspector面板中可見,然后修改了默認(rèn)顏色四苇。

PM_Cube_0010.png

接下來改造Graph:
我添加了3個(gè)新的state孝凌,用來將顏色分別修改成綠色、紅色和藍(lán)色月腋,在Events面板中創(chuàng)建了3個(gè)新的event:Set Green蟀架、Set RedSet Blue用來觸發(fā)狀態(tài)的轉(zhuǎn)換榆骚,在State 1中使用這3個(gè)event做transition片拍,分別指向紅綠藍(lán)三個(gè)state。最后給紅綠藍(lán)三個(gè)state添加FINISHED轉(zhuǎn)換讓他們完成操作后重新回到State 1妓肢。

PM_Cube_005.png

在紅綠藍(lán)三個(gè)state中我都使用了Set Color Value這個(gè)Action來修改顏色捌省,因?yàn)樵谶@3個(gè)狀態(tài)中我不是要去改變材質(zhì)顏色,而是要去改變顏色變量color的數(shù)值碉钠。

運(yùn)行測試:
一開始會(huì)呈現(xiàn)color值預(yù)設(shè)的顏色纲缓,手動(dòng)轉(zhuǎn)換狀態(tài)(Alt + 左鍵單擊),可以改變Cube的顏色喊废。

實(shí)際的邏輯是這樣的祝高,紅綠藍(lán)三個(gè)state修改了變量color的值,然后返回State 1的時(shí)候污筷,State 1讀取變量color最新的值并賦給材質(zhì)的_Color參數(shù)工闺,顏色改變。每一次進(jìn)入State 1瓣蛀,都會(huì)執(zhí)行一次“讀取color并賦值”的操作陆蟆,所以保證了每次修改完變量值,Cube的顏色都會(huì)發(fā)生改變惋增。

當(dāng)然叠殷,想要達(dá)到這樣的交互效果,這并不是唯一的設(shè)計(jì)方案器腋。大家可以在我們逐漸將這個(gè)實(shí)例改造得越來越復(fù)雜之后再回過頭來想一想溪猿,為什么這里會(huì)采用這樣的設(shè)計(jì)方案钩杰,為什么有時(shí)候即使只添加了一點(diǎn)新的需求纫塌,原來的設(shè)計(jì)方案會(huì)立刻顯得不合適而需要大幅度的修改。


PM_Cube version 0.3

Cube這次是來真的了讲弄!

下面添加一些觸發(fā)條件來讓這個(gè)交互邏輯變得Playable措左。

在State 1中添加3個(gè)Get Mouse Button Down行為,分別指定其ButtonLeft避除、Middle怎披、Right胸嘁,然后設(shè)置其Sent EventSet RedSet Blue凉逛、Set Green性宏。

PM_Cube_0011.png

運(yùn)行測試:
當(dāng)我們?cè)谌我馕恢冒聪率髽?biāo)左中右鍵時(shí),Cube的顏色會(huì)相應(yīng)變成紅状飞、藍(lán)毫胜、綠。

  1. Get Mouse Button Down和之前的系統(tǒng)事件MOUSE DOWN是不一樣的诬辈,前者只是檢查鼠標(biāo)按鍵是否被按下酵使,而后者是檢查是否在游戲物體上按下鼠標(biāo)左鍵;
  2. In Update Only選項(xiàng)非常重要焙糟。Get Mouse Button Down檢測的是按鍵是否處于被按下狀態(tài)口渔,如果是,立刻轉(zhuǎn)換狀態(tài)穿撮。但由于我們的目標(biāo)狀態(tài)也是可以立即完成并轉(zhuǎn)換回State 1的缺脉,而我們?nèi)祟悘陌聪率髽?biāo)到松開鼠標(biāo)還有一段時(shí)間,在這段時(shí)間兩個(gè)狀態(tài)是會(huì)不斷進(jìn)行循環(huán)的悦穿,這就產(chǎn)生了“無限循環(huán)”錯(cuò)誤枪向。而In Update Only選項(xiàng)則強(qiáng)制狀態(tài)轉(zhuǎn)換只在Update(也就是刷新至下一幀)時(shí)發(fā)生,從而避免了在一幀時(shí)間內(nèi)發(fā)生多次轉(zhuǎn)換的情況發(fā)生咧党。

PM_Cube version 0.4

Cube不會(huì)無緣無故翻臉的啦秘蛔!

現(xiàn)在在任何地方按下鼠標(biāo)鍵都可以會(huì)使Cube顏色發(fā)生改變,如果我希望只是在“點(diǎn)擊”Cube的時(shí)候才會(huì)發(fā)生顏色改變的傍衡,就要讓PlayMaker學(xué)會(huì)判斷點(diǎn)擊時(shí)鼠標(biāo)下方是什么物體深员。

如果看過 PlayMaker:觸發(fā)事件 一文就會(huì)知道,我們可以使用Mouse Pick行為來進(jìn)行這個(gè)判斷蛙埂,但問題是應(yīng)該把Mouse Pick放在哪個(gè)狀態(tài)中呢倦畅?

State 1是進(jìn)行輸入判斷的,把Mouse Pick放在這里肯定會(huì)有沖突绣的。因?yàn)殡m然一個(gè)state中的所有action其實(shí)都會(huì)在1幀時(shí)間內(nèi)全部執(zhí)行一遍叠赐,但還是有先后順序的。不論我把Mouse Pick放在Get Mouse Button Down的前面還是后面屡江,一旦有event被觸發(fā)芭概,狀態(tài)立刻發(fā)生轉(zhuǎn)換,后面的Action根本就不會(huì)被執(zhí)行惩嘉。

于是我決定把Mouse Pick放在3個(gè)顏色state里面罢洲。按下鼠標(biāo)鍵后轉(zhuǎn)換到顏色state,首先執(zhí)行判斷鼠標(biāo)是否處于物體之上文黎,如果不處于惹苗,直接轉(zhuǎn)換回State 1殿较,不執(zhí)行修改color數(shù)值的操作。

PM_Cube_012.png

Mouse Pick只是獲取Ray碰撞到的第一個(gè)GameObject桩蓉,我將這個(gè)GameObject儲(chǔ)存到一個(gè)新的變量picked object中淋纲。判斷還需要用Game Object Compare來完成,比較變量picked object是否等于“自身”(Owner)院究,如果不是帚戳,則說明鼠標(biāo)不在該物體上方,于是觸發(fā)一個(gè)新事件Cancel儡首,轉(zhuǎn)換回State 1片任。

Red上設(shè)置好Mouse PickGame Object Compare后,測試通過蔬胯,然后選擇這兩個(gè)Action对供,復(fù)制(Ctrl + c),進(jìn)入另外兩個(gè)state氛濒,粘貼(Ctrl + v)产场,就可以把Action序列放進(jìn)去了。這是PlayMaker的一種常用的操作方法舞竿。

可以看到京景,不論是Mouse Pick還是Game Object Compare,我都沒有勾選Every Frame選項(xiàng)骗奖,因?yàn)檫@個(gè)判斷做一次就可以了确徙,無需實(shí)時(shí)監(jiān)控。

此外执桌,Mouse PickGame Object Compare一定要在Set Color Value之前鄙皇,否則即便條件成立,系統(tǒng)也會(huì)先執(zhí)行完設(shè)置顏色的操作再轉(zhuǎn)換狀態(tài)仰挣。

接下來我們可以把Cube復(fù)制幾個(gè)伴逸,然后運(yùn)行測試,每個(gè)小方塊都可以被鼠標(biāo)單獨(dú)點(diǎn)擊改變顏色膘壶。

PM_Cube_013.png

刪除多余的方塊错蝴,把Cube拖到Project面板中以創(chuàng)建成一個(gè)prefab(會(huì)自動(dòng)命名為Cube.prefab)。

我們可以刪除場景中的Cube颓芭,然后把Cube.prefab拖入場景測試一下這個(gè)預(yù)設(shè)物體是否運(yùn)行正常顷锰。這個(gè)例子里面當(dāng)然是正常的,但也有可能生成的prefab再放入場景就完全不起作用了畜伐。原因就在于馍惹,如果一個(gè)組件中的某個(gè)變量被手動(dòng)指定為場景中的某個(gè)游戲物體躺率,而且這個(gè)游戲物體又沒有被包括在prefab中的話玛界,這個(gè)變量賦值信息是不會(huì)被保存在prefab中的万矾。

比如,我們?cè)?code>Game Object Compare行為中慎框,如果不是指定Use Owner去與picked object做比較良狈,而是手動(dòng)指定場景中的地面,那么在prefab中相應(yīng)Fsm里的這個(gè)Game Object參數(shù)其實(shí)是沒有被賦值的笨枯。


PM_Cube version 1.0

偷偷告訴你薪丁,Cube是女生哦!

換個(gè)玩法馅精,點(diǎn)擊屏幕從鼠標(biāo)發(fā)射一個(gè)隨機(jī)顏色的方塊到場景中严嗜。

首先我們要制作一個(gè)隨機(jī)選取顏色方塊。

在場景中重新創(chuàng)建一個(gè)Cube洲敢,附上之前的材質(zhì)漫玄。添加Fsm,在State 1上添加一個(gè)Select Random Color動(dòng)作和一個(gè)Set Material Color動(dòng)作压彭。

Select Random Color可以在給定的多個(gè)顏色值中隨機(jī)選取一個(gè)顏色睦优,我們?cè)O(shè)置Store Color為一個(gè)新變量color

Set Material Color中把Color參數(shù)設(shè)置為使用變量color壮不。

PM_Cube_014.png

這時(shí)我們運(yùn)行場景汗盘,Cube會(huì)隨機(jī)顯示成紅、綠询一、藍(lán)中任意一種顏色(大家可以自行設(shè)置七彩小Cube)隐孽。將這個(gè)新的Cube做成prefab(由于已經(jīng)有一個(gè)Cube.prefab了,所以應(yīng)該會(huì)被自動(dòng)命名為Cube 1.prefab)健蕊,刪除場景中的Cube缓醋。

在場景中Create一個(gè)Empty Group,命名為GameManager绊诲。Fsm必須作為組件被附加在一個(gè)GameObject上送粱,所以這個(gè)空物體就是我們Fsm的載體。

按下圖創(chuàng)建Graph:

PM_Cube_015.png
PM_Cube_016.png
PM_Cube_017.png

State 1中檢測鼠標(biāo)左鍵是否按下掂之,如果是抗俄,觸發(fā)LMB Down事件跳轉(zhuǎn)到State 2

State 2中添加一個(gè)Create Object行為世舰,設(shè)置Game Object為Cube 1.prefab(點(diǎn)擊后面的小圓點(diǎn)动雹,然后在Assets欄中選擇Cube 1)。

注意跟压,選擇GameObject的時(shí)候一定要分清楚選擇的是Assets中的prefab還是Scene中的GameObject胰蝠,兩者的圖標(biāo)是不一樣的。

運(yùn)行場景,每次點(diǎn)擊鼠標(biāo)都會(huì)創(chuàng)建一個(gè)新的Cube 1(Clone)(我們可以從Hierarchy面板中看到茸塞,(Clone)代表這是一個(gè)實(shí)時(shí)創(chuàng)建出來的克隆體)躲庄。但由于所有的Cube都擁擠在原點(diǎn)位置,所以看上去好像只有一個(gè)的樣子钾虐。拖出來一些Cube噪窘,顏色確實(shí)是隨機(jī)變化了。

PM_Cube_018.png

但是現(xiàn)在還有幾個(gè)問題沒有解決效扫,一是都擠在一堆了倔监,二是沒有“發(fā)射”的感覺。

Create Object動(dòng)作為我們生成了一個(gè)Cube菌仁,由于我們沒有設(shè)置PositionRotation浩习,所以這個(gè)Cube會(huì)自動(dòng)被放在坐標(biāo)原點(diǎn)。現(xiàn)在我們希望它出現(xiàn)在鼠標(biāo)點(diǎn)擊的位置济丘。

鼠標(biāo)點(diǎn)擊的位置其實(shí)是攝影機(jī)平面的位置瘦锹,于是我們需要把攝影機(jī)平面坐標(biāo)轉(zhuǎn)換成三維空間立體坐標(biāo),這件事情可以由Screen To World Point動(dòng)作來完成闪盔。為了方便調(diào)試弯院,我Fsm中新建了一個(gè)State 3并設(shè)成START

PM_Cube_019.png

Screen To World Point需要輸入屏幕坐標(biāo)泪掀,于是我還需要獲取屏幕坐標(biāo):

  • 我找了半天也找不到一次性獲取屏幕坐標(biāo)(Vector2)的動(dòng)作听绳,所以使用Get Mouse XGet Mouse Y來分別獲取,儲(chǔ)存到mouse xmouse y兩個(gè)變量中
  • 因?yàn)?code>Get Mouse X和Get Mouse Y中都勾選了Normalize异赫,于是我也把Screen To World Point中的Normalized給勾上椅挣,并設(shè)置Screen Z等于2
  • 然后在Screen To World Point中把Screen XScreen Y分別設(shè)置為mouse xmouse y
  • 再將獲得的世界坐標(biāo)(Store World Vector)儲(chǔ)存在一個(gè)叫world position的變量里
  • 最后勾選上Every Frame

為了驗(yàn)證這個(gè)世界坐標(biāo)是否正確,我又添加了一個(gè)Set Position的動(dòng)作塔拳,并在場景中放入了一個(gè)Cube 1.prefab

  • 指定Game Object為場景中的Cube 1
  • 指定Vector為變量world position
  • 勾選上Every FrameLate Update(設(shè)置每幀到最后再更新位置)

測試結(jié)果還不錯(cuò)鼠证,于是把這套Action搬去真正的Graph:

  • State 3中的Get Mouse XGet Mouse Y靠抑、Screen To World Point復(fù)制到State 2里面量九,使其處于Create Object上方
  • 取消Screen To World PointEvery Frame的勾選
  • 最后把State 1設(shè)置回開始狀態(tài)(點(diǎn)擊右鍵,選擇Set As Start State
PM_Cube_021.png

測試運(yùn)行颂碧,有問題荠列!創(chuàng)建完第一個(gè)Cube之后就回不去State 1了。這是因?yàn)?code>Get Mouse X和Get Mouse Y都是每幀執(zhí)行的動(dòng)作载城,根本不會(huì)自然結(jié)束肌似,所以需要手動(dòng)添加一個(gè)Next Frame Event行為,讓它來觸發(fā)FINISHED事件诉瓦。

PM_Cube_022.png

結(jié)果有效川队,但貌似詭異的力细。

PM_Cube_023.png

PM_Cube version 1.1

就問你怕不怕!

下面終于可以開始制作“發(fā)射”的效果了9潭睢C呗臁!

為了讓Cube能夠被射出去对雪,需要用到動(dòng)力學(xué)(Physics)河狐,所以首先就需要給Cube添加一個(gè)Rigidbody組件米绕。我們可以直接選取Cube 1.prefab瑟捣,然后在Inspector最下面點(diǎn)擊Add Component按鈕,輸入“rigidbody”栅干,按回車確認(rèn)選擇迈套,就將Cube變成了一個(gè)動(dòng)力學(xué)物體。

運(yùn)行場景碱鳞,動(dòng)力學(xué)物體的確好玩桑李,但還沒有添加初速度,就還不算“發(fā)射”窿给。

選擇GameManager贵白,打開PlayMaker編輯器。在State 2的最后崩泡,添加一個(gè)Add Force行為禁荒。

Add Force首先提示我們GameObject需要Rigidbody組件,別忙著加角撞,我們這是在GameManager呛伴,這個(gè)Force并不是加給GameManager的。將Game Object設(shè)置成cube變量谒所,這個(gè)警告提示自然就沒有了热康。

Add Force需要知道這個(gè)Force加在物體的什么位置(At Position),以及這個(gè)Force的方向及大辛恿臁(Vector)姐军。位置不需要設(shè)置,自動(dòng)就會(huì)處于物體中心尖淘,但Force的方向就有點(diǎn)復(fù)雜了庶弃。大家可以點(diǎn)開XY德澈、Z三個(gè)參數(shù)后面的“=”符號(hào)歇攻,手動(dòng)設(shè)置Force的向量分量(要注意是在什么坐標(biāo)空間(Space)中),也可以開動(dòng)腦筋做一點(diǎn)點(diǎn)數(shù)學(xué)計(jì)算梆造,讓Force符合我們的希望缴守。


最后面這一段有點(diǎn)超綱了葬毫,大家看不太懂的可以自己手動(dòng)用XY屡穗、Z值試出一個(gè)合適的數(shù)值出來贴捡。

我選擇讓Cube沿著攝影機(jī)的方向被發(fā)射出去,所以需要用Cube出生位置減去攝影機(jī)所在的位置來獲得這個(gè)方向矢量(Vector3)村砂,然后將這個(gè)方向矢量標(biāo)準(zhǔn)化(也就是讓它方向保持不變但長度變?yōu)?)烂斋,最后再倍乘上一個(gè)力度值,就可以得到所需要的方向和力度的一個(gè)Force了础废。

詳細(xì)的Action設(shè)置可以看下面這張圖:

PM_Cube_025.png
  • Add Force上方我先添加了一個(gè)Get Position汛骂,指定讓它獲取Main Camera的位置并儲(chǔ)存為camera position變量
  • 然后再接一個(gè)Vector3 Operator把之前獲得的world position減去camera position,結(jié)果儲(chǔ)存為force vector
  • 接著使用Vector3 Normalize把這個(gè)force vector標(biāo)準(zhǔn)化
  • 然后使用Vector3 Multiplyforce vector乘上(Multiply By)一個(gè)新建的叫做force的變量
  • 最后在Add Force中設(shè)置Vector參數(shù)為force vector评腺,并更改Force ModeImpulse以表示這是一個(gè)瞬發(fā)的力量

這個(gè)范例也顯示了PlayMaker比較蛋疼的一個(gè)問題帘瞭,就是特別不方便做比較復(fù)雜的數(shù)值計(jì)算。Add Force上方四五個(gè)Action蒿讥,用數(shù)學(xué)公式來寫其實(shí)一行就可以搞定:
force_vector = force * Normalize (cube_position - camera_position)
但在PlayMaker里面就搞得既復(fù)雜又拗口蝶念。


項(xiàng)目工程文件 (不包括PlayMaker插件及其uGUI擴(kuò)展Action包)


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芋绸,隨后出現(xiàn)的幾起案子媒殉,更是在濱河造成了極大的恐慌,老刑警劉巖摔敛,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廷蓉,死亡現(xiàn)場離奇詭異,居然都是意外死亡舷夺,警方通過查閱死者的電腦和手機(jī)苦酱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來给猾,“玉大人疫萤,你說我怎么就攤上這事「疑欤” “怎么了扯饶?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長池颈。 經(jīng)常有香客問我尾序,道長,這世上最難降的妖魔是什么躯砰? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任每币,我火速辦了婚禮,結(jié)果婚禮上琢歇,老公的妹妹穿的比我還像新娘兰怠。我一直安慰自己梦鉴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布揭保。 她就那樣靜靜地躺著肥橙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秸侣。 梳的紋絲不亂的頭發(fā)上存筏,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天郭毕,我揣著相機(jī)與錄音洋机,去河邊找鬼池充。 笑死惑灵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的莺奔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼继榆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起汁掠,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤略吨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后考阱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翠忠,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年乞榨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秽之。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吃既,死狀恐怖考榨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鹦倚,我是刑警寧澤河质,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站震叙,受9級(jí)特大地震影響掀鹅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜媒楼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一乐尊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧划址,春花似錦扔嵌、人聲如沸昏滴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谣殊。三九已至,卻和暖如春牺弄,著一層夾襖步出監(jiān)牢的瞬間姻几,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工势告, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛇捌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓咱台,卻偏偏與公主長得像络拌,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子回溺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容