Unity3D常用API和功能

前言

喜歡請點贊

目標(biāo)閱讀者:Unity新手 項目程序員

簡單的前置:編程習(xí)慣

Unity常用API

  1. 按鍵Input

    void Update()
        {
            if (Input.GetKey("up"))
            {
                print("up arrow key is held");
            }
            if (Input.GetKeyDown("down"))
            {
                print("down arrow key is held down");
            }       
            if (Input.GetMouseButton(0))
            {
                print("鼠標(biāo)左鍵點擊");
            } 
        }
    
    image.gif
  2. OnGUI

    void OnGUI()
        {
            if (GUI.Button(new Rect(10, 10, 150, 100), "I am a button"))
            {
    
            }
        }
    
    image.gif
  3. Log

    /*正常Log*/
    Debug.Log("<color=#9400D3> You clicked the button! </color>");
    /*跳轉(zhuǎn)到GameObject*/
    Debug.Log(Obj,"跳轉(zhuǎn)");
    
    /*顏色*/
    //green 綠色  #008000ff    red 紅色 #ff0000ff
    //white 白色  #ffffffff    yellow 黃色  #ffff00ff
    
    /*轉(zhuǎn)義符*/
    \’   單引號符 
    \”  單引號符 
    \\  反斜線符"\" 
    \n  換行
    \r  回車 
    text在運行后\會自動變成了\\,所以無效解決方法:
    msgText.text = msg.Replace("\\n", "\n");
    
    
    image.gif

    日志路徑 C:\Users\Administrator\AppData\LocalLow\DefaultCompany

    封裝Unity的Debug苫纤,在打包的時候方便改為全不輸出(以免影響性能),
    在輸出的時候括勺,根據(jù)位運算選擇輸出信息(例如戰(zhàn)斗信息兜辞、場景信息捆昏、幀同步信息等)
    取消發(fā)布log消耗

  4. 移動與旋轉(zhuǎn)

    //-------------旋轉(zhuǎn)------------ //
    //設(shè)置角度
    //EulerAngles
    transform.localEulerAngles = new Vector3(0,0,0);
    //Quaternion
    transform.rotation = Quaternion.AngleAxis(30, Vector3.up);//繞軸旋轉(zhuǎn)正方向30
    //轉(zhuǎn)換
    Quaternoin quaternoin= Quaternion.Euler(vector3);
    Vector3 rotation = Quaternion.EulerAngles(quaternoin);
    
    //旋轉(zhuǎn)角度
    transform.Rotate (new Vector3(20 * Time.dealtime, 0, 0));
    //繞點旋轉(zhuǎn)
    transform.RotateAround(Vector3.zero, Vector3.up, 50 * Time.dealtime);
    
    //-----------3D位移---------- //
    //方向
    transform.Translate(Vector3.back * FallingSpeed);
    transform.position = Vector3.MoveTowards(transform.position,tempUpdatePos, 
                          Time.deltaTime * DisShakeThreshold);
    //固定時間
    transform.Translate(Vector3.normalize(tarPos-selfPos) *
             (Vector3.Distance(selfPos,tarPos)/(setTime * Time.deltime)));
    
    //-----------2D方向移動---------- //
    moveDirection = mTarget.transform.position - mSelf.transform.position;
    moveDirection.Normalize();
    float target = Mathf.Atan2(moveDirection.y, moveDirection.x) * Mathf.Rad2Deg - 90f;
    mSelf.transform.rotation = 
    Quaternion.Slerp(mSelf.transform.rotation,  
    Quaternion.Euler(0, 0, target), turnSpeed * Time.deltaTime);
    _controller.SetForce(speedX,speedY));
    
    image.gif

    DOTween

  5. 資源加載和創(chuàng)建刪除
    資源加載API分為Editor下的和非Editor下的 其他平臺路徑各有區(qū)別
    //作為重要功能 深入研究會發(fā)現(xiàn)坑很多

    /************創(chuàng)建****************/
    /*********Resource文件夾*********/
    /*同步加載*/
    GameObject prefab = Resources.Load("資源路徑/名字") as GameObject;
    /*異步加載*/
    GameObject prefab2 = Resources.LoadAsync<Object>(path);
    /*實例化*/
    GameObject go = Instantiate(prefab) as GameObject;
    
    /*************非Resourece**************/
    //路徑為 Assets/XX/XX.prefab 這樣的格式
    UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path);
    
    /**************AssetBundle**************/
    AssetBundle bundle = AssetBundle.LoadFromFile(path);
    Object obj = bundle.LoadAsset<GameObject>("XXXX");
    
    /******************刪除****************/
    //非AB
    GameObject.Destroy(go);//下一幀刪除
    GameObject.DestroyImmediate(go);//馬上刪除
    
    //AB
    Destroy UnloadAB(true) 
    如果沒清除依賴UnloadUnUseAsset然后GC
    
    image.gif
    image
    image.gif

    ?

  6. U3D射線射碰撞體與層

    //(檢測是否碰撞)
    if (Physics.Raycast(origin, Vector3.down, 1f,1 << LayerMask.NameToLayer("Ground")))
    {
        //層的說明
        //int 1-31是未轉(zhuǎn)化的層index 而用于射線LayerMask 是1<<int 運算后的 是一個很大的數(shù)
        // 1 << 10 打開第10的層乃秀。 等價于 1 << LayerMask.NameToLayer("Ground");
        //~(1 << 10) 打開除了第10之外的層。
        //~(1 << 0) 打開所有的層游两。
        //(1 << 10) | (1 << 8) 打開第10和第8的層。等價于 LayerMask.GetMask(("Ground", "Wall");
    }
    //(輸出信息的)
    Ray ray = new Ray(transform.position, Vector3.down);
    RaycastHit hitInfo = new RaycastHit();
    if (Physics.Raycast(ray, out hitInfo, 30f, layerMask))
    {
        Debug.Log(hitInfo.point);
    }
    //物體
    gameObject.layer = (1-31層 或 LayerMask.NameToLayer("Ground"));
    //發(fā)射碰撞體
    Physics.OverXXX
    
    image.gif

    在Unity中每個GameObject都有Layer屬性漩绵,默認(rèn)的Layer都是Default贱案。在Unity中可編輯的Layer共有24個(8—31層),官方已使用的是0—7層止吐,默認(rèn)不可編輯宝踪!

    LayerMask實際上是一個位碼操作,在Unity3D中一共有32個Layer層碍扔,并且不可增加瘩燥。

    位運算符
    按位運算符:~、|不同、&厉膀、^溶耘。位運算符主要用來對二進(jìn)制位進(jìn)行操作。

    邏輯運算符:&&服鹅、||凳兵、!菱魔。邏輯運算符把語句連接成更復(fù)雜的復(fù)雜語句留荔。

    按位運算符:左移運算符<<吟孙,左移表示乘以2澜倦,左移多少位表示乘以2的幾次冪。

  7. GameObject

    //獲取自己index
    int id = self.GetSiblingIndex();
    
    image.gif
  8. 協(xié)程IEnumerator

    void Start(){
        StartCoroutine(Test());
    }
    IEnumerator Test()
    {
        yield return null; // 下一幀再執(zhí)行后續(xù)代碼
        yield return 0; //下一幀再執(zhí)行后續(xù)代碼
        yield return 6;//(任意數(shù)字) 下一幀再執(zhí)行后續(xù)代碼
        yield break; //直接結(jié)束該協(xié)程的后續(xù)操作
        yield return asyncOperation;//等異步操作結(jié)束后再執(zhí)行后續(xù)代碼
        yield return StartCoroution(/*某個協(xié)程*/);//等待某個協(xié)程執(zhí)行完畢后再執(zhí)行后續(xù)代碼
        yield return WWW();//等待WWW操作完成后再執(zhí)行后續(xù)代碼
        yield return new WaitForEndOfFrame();//等待幀結(jié)束,等待直到所有的攝像機和GUI被渲染完成后杰妓,在該幀顯示在屏幕之前執(zhí)行
        yield return new WaitForSeconds(0.3f);//等待0.3秒藻治,一段指定的時間延遲之后繼續(xù)執(zhí)行,在所有的Update函數(shù)完成調(diào)用的那一幀之后(這里的時間會受到Time.timeScale的影響);
        yield return new WaitForSecondsRealtime(0.3f);//等待0.3秒巷挥,一段指定的時間延遲之后繼續(xù)執(zhí)行桩卵,在所有的Update函數(shù)完成調(diào)用的那一幀之后(這里的時間不受到Time.timeScale的影響);
        yield return WaitForFixedUpdate();//等待下一次FixedUpdate開始時再執(zhí)行后續(xù)代碼
        yield return new WaitUntil()//將協(xié)同執(zhí)行直到 當(dāng)輸入的參數(shù)(或者委托)為true的時候....如:yield return new WaitUntil(() => frame >= 10);
        yield return new WaitWhile()//將協(xié)同執(zhí)行直到 當(dāng)輸入的參數(shù)(或者委托)為false的時候.... 如:yield return new WaitWhile(() => frame < 10);
    }
    
    image.gif
  9. Animator
    Animator可以被繼承!
    Animator可以添加腳本處理狀態(tài)!

    重置動畫(播放動畫第一幀)

    firstAnimName = GetComponent<Animator>().GetCurrentAnimatorClipInfo(0)[0].clip.name;
    GetComponent<Animator>().Play (firstAnimName,-1,0); 
    
    image.gif

    獲取某個動畫名字的時間長度

    private Animator animator;
    public void GetLengthByName(string name){
        float length = 0;
        AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;
        foreach(AnimationClip clip in clips)    {
            if(clip.name.Equals(name))        {
                length = clip.length;            break;
            }
        }    Debug.Log(length);
    }
    
    image.gif
  10. 剛體

Mass:質(zhì)量(kg)
Drag:空氣阻力 越大越難推動
Angular Drag:旋轉(zhuǎn)阻力  越大越不會旋轉(zhuǎn) 0無阻力 10以后基本無慣性
Use Gravity:是否使用重力

Constraints
Freeze Position:鎖定位置
Freeze Rotation:鎖定旋轉(zhuǎn)
  1. 物體碰撞
Edit-Project Settings-Physics 打開物理管理器(Physics Manager)里面可以設(shè)置層級相互間的碰撞
碰撞條件是都帶Collider 其中一個帶rigidbody

```
//觸發(fā)器
MonoBehaviour.OnTriggerEnter(Collider collider)當(dāng)進(jìn)入觸發(fā)器
MonoBehaviour.OnTriggerExit(Collider collider)當(dāng)退出觸發(fā)器
MonoBehaviour.OnTriggerStay(Collider collider)當(dāng)逗留觸發(fā)器

//碰撞信息檢測:
MonoBehaviour.OnCollisionEnter(Collision collision) 當(dāng)進(jìn)入碰撞器
MonoBehaviour.OnCollisionExit(Collision collision) 當(dāng)退出碰撞器
MonoBehaviour.OnCollisionStay(Collision collision)  當(dāng)逗留碰撞器
```

![image.gif](https://upload-images.jianshu.io/upload_images/906135-c29664fffc0de86e.gif?imageMogr2/auto-orient/strip) 
  1. 平臺預(yù)處理
```
#if UNITY_EDITOR  
    platform = "hi,大家好,我是在unity編輯模式下";  
#elif UNITY_SERVER
#elif UNITY_IPHONE  
    platform="hi,大家好,我是IPHONE平臺";  
#elif UNITY_ANDROID  
    platform="hi倍宾,大家好,我是ANDROID平臺";  
#elif UNITY_STANDALONE_OSX  
#elif UNITY_STANDALONE_WIN  
    platform="hi雏节,大家好,我是Windows平臺";  
#endif  
    Debug.Log("Current Platform:" + platform);  
```

![image.gif](https://upload-images.jianshu.io/upload_images/906135-8e282911c2a8be71.gif?imageMogr2/auto-orient/strip) 
  1. DoFile 讀取一個Txt
```
string localConfig = Application.dataPath + "/Config/123.txt";
if (File.Exists(localConfig))
{
    string[] strs = File.ReadAllLines(localConfig);
}
```

![image.gif](https://upload-images.jianshu.io/upload_images/906135-184397d7aa52adfc.gif?imageMogr2/auto-orient/strip) 
  1. Editor常用
    https://blog.csdn.net/u014528558/article/details/104991179

  2. 畫線畫圓畫弧
    ①Debug.DrawLine

```
public float radius;
public float angle;
public int smooth = 20;
public Vector3 dir = Vector3.right;
public bool drawSide = true;

void Update()
{
    Vector3 start = Quaternion.Euler(0, 0, -angle) * dir * radius;
    Vector3 firstPos = Vector3.zero;
    Vector3 lastPos = Vector3.zero;
    for (int i = 0; i <= smooth; i++)
    {
        firstPos = transform.position + Quaternion.Euler(0,0,(angle*2/smooth)*i)*start;
        lastPos = transform.position + Quaternion.Euler(0,0,(angle*2/smooth)*(i+1))*start;
        Debug.DrawLine(firstPos, lastPos, Color.red);
    }
    if (drawSide)
    {
        Debug.DrawLine(transform.position, transform.position + start, Color.red);
        Debug.DrawLine(transform.position, lastPos, Color.red);
    }
}
```

![image.gif](https://upload-images.jianshu.io/upload_images/906135-82b7f8c4d5d4f359.gif?imageMogr2/auto-orient/strip) 

②LineRender

```
private LineRenderer line;//畫線
line = this.gameObject.AddComponent<LineRenderer>();
//只有設(shè)置了材質(zhì) setColor才有作用
line.material = new Material(Shader.Find("Particles/Additive"));
line.SetVertexCount(2);//設(shè)置兩點
line.SetColors(Color.yellow, Color.red); //設(shè)置直線顏色
line.SetWidth(0.1f, 0.1f);//設(shè)置直線寬度

//設(shè)置指示線的起點和終點
line.SetPosition(0, start.position);
line.SetPosition(1, end.position);

public float R;//半徑
public int N;//不要超過45

line.SetVertexCount(N+1);//這里要加1,達(dá)成閉合曲線
for (int i = 0; i < N + 1; i++)
{
  float x = R * Mathf.Cos((360 / N * i) * Mathf.Deg2Rad) + transform.position.x; //確定x坐標(biāo)
  float z = R * Mathf.Sin((360 / N * i) * Mathf.Deg2Rad) + transform.position.z; //確定z坐標(biāo)
  line.SetPosition(i, new Vector3(x, transform.position.y, z));         
}
```

![image.gif](https://upload-images.jianshu.io/upload_images/906135-59d7c708da703e4f.gif?imageMogr2/auto-orient/strip) 
  1. 控制全局音量
    通過 AudioListener.volume來控制場景場景音量

  2. UGUI

進(jìn)度條 -- 通過改變UI的FillAmount值 UnityEngine.UI.Image healthBar.fillAmount = 0.0f;

藝術(shù)字體 -- 對于Text 使用材質(zhì)和Outline可以制作 但會引起drawcall增加
Mask -- 可以遮擋 對于制作一些動畫比較好 但會引起drawcall增加

自動排列用 Layout Group 如果要適配改變大小 都要加Content Size Fitter 要改變的設(shè)置為preferred size;
  1. 渲染
設(shè)置窗口(Window->Lighting->Settings)是主要控制unity全局光照(GlobalIllumination GI)的地方。盡管GI的默認(rèn)設(shè)置已經(jīng)有了很好的效果高职,lighting設(shè)置面板的一些屬性可以調(diào)節(jié)GI處理的很多方面钩乍,從而可以定制場景或者優(yōu)化場景的質(zhì)量、速度和存儲空間怔锌。窗口還包括環(huán)境光寥粹、光暈、霧效埃元、烘焙的設(shè)置涝涤。

可使用Class.UnityEngine.RenderSettings代碼改變這些
  1. 路徑
各路徑的定義:

  a、Resources路徑

   Resources文件夾是Unity里自動識別的一種文件夾岛杀,可在Unity編輯器的Project窗口里創(chuàng)建阔拳,并將資源放置在里面。Resources文件夾下的資源不管是否有用类嗤,全部會打包進(jìn).apk或者.ipa糊肠,并且打包時會將里面的資源壓縮處理。加載方法是Resources.Load<T>(文件名)土浸,需要注意:文件名不包括擴展名罪针,打包后不能更改Resources下的資源內(nèi)容,但是從Resources文件夾中加載出來的資源可以更改黄伊。

  b泪酱、Application.dataPath路徑

    這個屬性返回的是程序的數(shù)據(jù)文件所在文件夾的路徑,例如在Editor中就是項目的Assets文件夾的路徑,通過這個路徑可以訪問項目中任何文件夾中的資源墓阀,但是在移動端它是完全沒用毡惜。

  c、Application.streamingAssetsPath路徑

    這個屬性用于返回流數(shù)據(jù)的緩存目錄斯撮,返回路徑為相對路徑经伙,適合設(shè)置一些外部數(shù)據(jù)文件的路徑。在Unity工程的Assets目錄下起一個名為“StreamingAssets”的文件夾即可勿锅,然后用Application.streamingAssetsPath訪問帕膜,這個文件夾中的資源在打包時會原封不動的打包進(jìn)去,不會壓縮溢十,一般放置一些資源數(shù)據(jù)垮刹。在PC/MAC中可實現(xiàn)對文件的“增刪改查”等操作,但在移動端是一個只讀路徑张弛。

  d荒典、Application.persistentDataPath路徑

    此屬性返回一個持久化數(shù)據(jù)存儲目錄的路徑,可以在此路徑下存儲一些持久化的數(shù)據(jù)文件吞鸭。這個路徑可讀寺董、可寫,但是只能在程序運行時才能讀寫操作刻剥,不能提前將數(shù)據(jù)放入這個路徑遮咖。在IOS上是應(yīng)用程序的沙盒,可以被iCloud自動備份透敌,可以通過同步推送一類的助手直接取出文件盯滚;在Android上的位置是根據(jù)Project Setting里設(shè)置的Write Access路徑,可以設(shè)置是程序沙盒還是sdcard酗电,注意:如果在Android設(shè)置保存在沙盒中魄藕,那么就必須root以后才能用電腦取出文件,因此建議寫入sdcard里撵术。一般情況下背率,建議將獲得的文件保存在這個路徑下,例如可以從StreamingAsset中讀取的二進(jìn)制文件或者從AssetBundle讀取的文件寫入PersistentDatapath嫩与。

  e寝姿、Application.temporaryCachePath路徑

    此屬性返回一個臨時數(shù)據(jù)的緩存目錄,跟Application.persistentDataPath類似划滋,但是在IOS上不能被自動備份饵筑。

  以上各路徑中的資源加載方式都可以用WWW類加載,但要注意各個平臺路徑需要加的訪問名稱处坪,例如Android平臺的路徑前要加"jar:file://"根资,其他平臺使用"file://"架专。以下是各路徑在各平臺中的具體位置信息:

路徑對應(yīng)目錄:

     安卓

Application.dataPath :                                   /data/app/xxx.xxx.xxx.apk

Application.streamingAssetsPath :                jar:file:///data/app/xxx.xxx.xxx.apk/!/assets(只讀不可寫)

Application.persistentDataPath :                   /data/data/xxx.xxx.xxx/files(可讀寫)

Application.temporaryCachePath :                /data/data/xxx.xxx.xxx/cache

IOS平臺

Application.dataPath :                    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data

Application.streamingAssetsPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw

Application.persistentDataPath :    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents

Application.temporaryCachePath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Library/Caches

PC
 Application.dataPath :                     項目路徑/Assets
 Application.streamingAssetsPath:  項目路徑/Assets/StreamingAssets
Application.temporaryCachePath: C:\Users\username\AppData\Local\Temp\company name\product name
Application.persistentDataPath:?? C:\Users\username\AppData\LocalLow\company name\product name
  1. 每秒/改變時繪制
    在Scene預(yù)覽模型 例子:
```
GameObject preview;
void OnDrawGizmos()
{
    if(!Application.isPlaying)
    {
        if(preview == null)
            Resources.Load<GameObject>("path");
        else
        {
            MeshFilter[] meshFilters = mPreview.GetComponentsInChildren<MeshFilter>();
            for(int i = 0; i < meshFilters.Length; i++)
            {
                Gizmos.DrawMesh(meshFilter[i].sharedMesh,
                transform.position + mPreview.transform.GetChild(i).position * scale,
                mPreview.transform.GetChild(i).rotation,
                transform.localScale)
            }
        }
    }
}
```

![image.gif](https://upload-images.jianshu.io/upload_images/906135-23a582e3eccc8ab2.gif?imageMogr2/auto-orient/strip) 

Unity特性

1.unity具有特殊意義的文件夾

link

2.unity時間函數(shù)執(zhí)行順序

image
image.gif

?

C#相關(guān)API

  1. Only one exe只允許打開一個程序

    int count=Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length ;
    if (count> 1)
    {
        // MessageBox.Show(count.ToString());調(diào)試使用    
        Process.GetCurrentProcess().Kill();//殺掉當(dāng)前
    }
    
    image.gif
  2. 啟動一個進(jìn)程

    一個C#的API 可以用于打開一個網(wǎng)頁..應(yīng)用..或者進(jìn)程..或者控制面板內(nèi)的功能..例如打印..

    public void PrintFile()
    {
        System.Diagnostics.Process process = new System.Diagnostics.Process(); //系統(tǒng)進(jìn)程
        process.StartInfo.CreateNoWindow = false; //不顯示調(diào)用程序窗口
        process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//
        process.StartInfo.UseShellExecute = true; //采用操作系統(tǒng)自動識別模式
        process.StartInfo.FileName=path; //要打印的文件路徑
        process.StartInfo.Verb="print"; //指定執(zhí)行的動作,打有痢:print打開:open…………
        process.Start(); //開始打印
    }
    
    image.gif
  3. 改變鼠標(biāo)位置和隱藏鼠標(biāo)

    using System.Runtime.InteropServices;
    [DllImport("user32.dll")]
    public static extern int SetCursorPos(int x, int y);
    Void XX(){ SetCursorPos(0, 0);  }
    [DllImport("user32.dll")] 
    public static extern int SetCursorPos(int x, int y); 
    void Start () 
    {
        //隱藏
        Cursor.visible = false;
    }
    
    image.gif
  4. 輸出棧堆

    string trackStr = new System.Diagnostics.StackTrace().ToString();
    Debug.Log ("Stack Info:" + trackStr);
    
    image.gif

數(shù)學(xué)相關(guān)

向量與夾角與三角函數(shù)

//U3D  Vector3.forward 實際是(0,0,1) 向前的意思 也就是右上角Z軸方向
//forward是藍(lán)色箭頭方向 back是反方向  right是紅色箭頭方向 left反之 up是綠色箭頭方向 down反之

Vector3 vector = targetPos - originPos;//任意兩點向量 = V3目標(biāo)位置 - V3起點位置
float angle = Vector3.Angle(from, to); //向量夾角 v3.angle(向量A,向量B)
Vector3.Normalize;//單位向量

//Deg2Rad 度轉(zhuǎn)弧度 ; Rad2Deg 弧度轉(zhuǎn)度
//求角度的三角函數(shù)值
Mathf.Sin(Mathf.Deg2Rad * angle);
//求變長求角度
Mathf.Atan2(y,x) * Mathf.Rad2Deg;
image.gif

其他

  1. Windows工具:
    svn項目同步
    AutoHotKey作為快捷鍵操作打開
    Clover作為打開文件夾的工具
    SETUNA作為截圖工具

  2. Mac雞工具

    連接:可以使用vnc viewer
    項目管理:Cornerstone

  3. 調(diào)試
    調(diào)試安卓:直接在調(diào)試面板Console/Profiler輸入ip鏈接(unity在2020的新版中甚至支持無需編譯改代碼)
    蘋果:鏈接XCode調(diào)試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末部脚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子裤纹,更是在濱河造成了極大的恐慌委刘,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹰椒,死亡現(xiàn)場離奇詭異锡移,居然都是意外死亡,警方通過查閱死者的電腦和手機吹零,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門罩抗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灿椅,你說我怎么就攤上這事〕В” “怎么了茫蛹?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烁挟。 經(jīng)常有香客問我婴洼,道長,這世上最難降的妖魔是什么撼嗓? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任柬采,我火速辦了婚禮,結(jié)果婚禮上且警,老公的妹妹穿的比我還像新娘粉捻。我一直安慰自己,他們只是感情好斑芜,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布肩刃。 她就那樣靜靜地躺著,像睡著了一般杏头。 火紅的嫁衣襯著肌膚如雪盈包。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天醇王,我揣著相機與錄音呢燥,去河邊找鬼。 笑死寓娩,一個胖子當(dāng)著我的面吹牛叛氨,可吹牛的內(nèi)容都是我干的滥朱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼力试,長吁一口氣:“原來是場噩夢啊……” “哼徙邻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起畸裳,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤缰犁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怖糊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帅容,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年伍伤,在試婚紗的時候發(fā)現(xiàn)自己被綠了并徘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扰魂,死狀恐怖麦乞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情劝评,我是刑警寧澤姐直,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站蒋畜,受9級特大地震影響声畏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜姻成,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一插龄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧科展,春花似錦均牢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至砂竖,卻和暖如春真椿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乎澄。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工突硝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人置济。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓解恰,卻偏偏與公主長得像锋八,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子护盈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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

  • 物體移動:http://www.manew.com/thread-114623-1-1.html 一挟纱、Transf...
    蘇黎九歌閱讀 5,658評論 0 6
  • 在寫學(xué)習(xí)筆記之前,我先說說為什么會做這么一個游戲DEMO吧腐宋,目前是在一家互聯(lián)網(wǎng)廣告公司任職3D設(shè)計組長一職紊服,...
    小海龜我們走閱讀 1,689評論 0 5
  • Unity腳本基礎(chǔ) 1.Unity3D中的協(xié)程(coroutine)和C#線程之間的區(qū)別是什么? 多線程程序同時運...
    豆錚閱讀 3,602評論 0 3
  • Unity中的歐拉角和四元數(shù) 筆記主要參考以下的博文 Unity中的歐拉旋轉(zhuǎn) - Andrew的游戲世界 - CS...
    一只浩閱讀 1,565評論 0 0
  • 或許這是一類最不愿輕易被人提及的文學(xué)書籍胸竞。它充滿著流血欺嗤、絕望、眼淚與死亡卫枝;它將社會最黑暗煎饼、最落后、最腐朽的一面展示...
    令暉閱讀 152評論 3 1