Unity 忍者跑酷

2021-08-17 19:10:54 字數 2557 閱讀 5694

1。把player幀動畫直接拖入到scene中,unity會自動生成改物體的預設idel動畫。

2。選定遊戲物體,ctrl+6 開啟animation,可以手動新增幀動畫。

3。在animator中,控制動畫切換。在parameters中新增條件,右鍵動畫,make transition 建立轉換,記得has exit time取消勾選,

4。指令碼中。在該遊戲物體指令碼中 實現條件控制。

先宣告animator    private animator animator;

在awake中初始化,animator=getcomponent();

在if條件裡完成控制。animator.setfloat("  ",    ); or animator.setbool(" ",true);

1。首先給人物新增rigidbody2d。 在指令碼中得到該遊戲物體。

宣告  private rigidbody2d rigidbody;

awake()中初始化,rigidbody2d=getcompont();

2。人物移動。

水平移動。

定義乙個速度常量 public float player_velocity=50;

水平方向的力。float h=input.getaxis("horizontal");  h<0,向左。h>0,向右。

if(h>0.05f)   rigidbody2d.addforce(vector2.right*player_velocity);   轉向 transform.localscale=new vector(1,1,1);

if(h<-0.05f)  rigidbody2d.addforce(-vector2.right*player_velocity);  轉向 transform.localscale=new vector(-1,1,1);

跳躍。垂直速度,public float jump_velocity=50;

得到人物的速度。 vector2 velocity=rigidbody2d.velocity;

按下空格跳躍 if(input.getkeydown(keycode.space))  velocity.y=jump_velocity; rigidybody2d.velocity=velocity;

3。地面,牆壁區分。

首先為各個物體新增boxcollider2d.和標籤tag  (player,ground,wall)

新增條件  bool isground = false; bool iswall = false;

碰撞檢測。void oncollisionenter2d(collision collision)}

void oncollisionexit2d(collision collision) }

4。人物在牆上的操作

首先判斷是否在牆上滑行。bool isslider;

if(isground==true || iswall=false)  isslider=false;

人物控制都是在 isslider==false;

碰到牆轉向 void changedir()  }

5。相機跟隨

獲得人物位置 public transform target;

獲得相機位置vector3 pos=transform.position;

位置差:pos.x=target.position-transform.position;

相機位置:transform.position=pos;

6。敵人控制**向,跟隨)

當角色與敵人距離小於某個數值,敵人開始朝著角色移動。

設定乙個臨界距離 public float attackdistance=15;

得到角色位置。playertransform=gameobject.findgameobjectwithtag("player").transform;

距離差:float distance=vector3.distance(playertransform,position-transform.position);

判斷if(distance   

移動:vector3 dir=playertransform.position-transform.positon;

transform.position=dir.normalize*enemyspeed*time.deltatime+transform.position;}

在相機中新增乙個元件audiosource。

為相機新增乙個指令碼 aduiomanager

用單利模式

public static audiomanager _instance;

private audiosource audio;

public audioclip jumpaudio;

初始化 void awake()=> _instance=this;

audio=getcomponent();

呼叫方法:public void playjumpaudio()

使用方法 :audiomanager._instance.playjumpaudio();

ps.trail render 新增頭巾

UNITY 跑酷學習2

今天又看了知乎,又看到了學習方法,裡面提到意志力的重要性,以及有效學習的概念,我看到了裡面說,寫部落格能增強我的意志力,所以我今天來將昨天的工作新增到部落格,算一次積累,訓練意志力的機會,以及熟悉unity 3d的機會。昨天主要實現了road的自動產生,以及人物運動的碰撞機制,以及簡單的ui的處理。...

unity 跑酷遊戲開發筆記(二)

2014.9.7 今天要做道路無限迴圈,這樣就可以實現基本的跑酷了。我這裡建立了乙個cube 把這個cube拉長。這樣就可以成為乙個臨時跑道的。在cube裡面有兩個子物體。location這個是乙個空物體。這個物體是要放到cube的一邊的最前面。目的是可以在這個物體的座標上生成下一段跑道,後面的ju...

海賊跑酷 跑酷類遊戲 原始碼解析

原始碼目錄,如下 引擎 cocos2.2.6 語言 c 這幾個檔案,根據名字 就可以看出來 各個scene就是場景,都是ui堆疊,不細說 主要邏輯,位於 gamescene裡面 地圖使用 titlemap,裡面編輯了 地板,金幣等位置屬性 裡 解析 tmx地 件 然後得出 碰撞區域rect,以及en...