簡體   English   中英

unity 3d 制作 object 關注玩家

[英]unity 3d make object follow player

我想在unity3D上做一個機器人。 我想在與 object 碰撞時制作機器人的抓手,附上抓手。 所以 object 將跟隨抓手。

為了制作這樣的東西,將在這個腳本中添加什么?

private Rigidbody gripper;

void Start() 
{
   gripper_part01 = GetComponent<Rigidbody>();
}

void Update() 
{
   if (Input.GetKey("a")) 
       gripper.AddForce(transform.forward * 100);
}

void OnCollisionEnter(Collider obj1) 
{
   // how to make obj1 follow the gripper
}

它可以通過各種方法來完成。 但最簡單的方法是在 obj1 碰撞后立即將其作為抓手的子對象。

代碼看起來像這樣

void OnCollisionEnter(Collider obj1) 
{
   // how to make obj1 follow the gripper
   obj1.transform.parent = gripper.transform;
}

查看state機器模式

http://gameprogrammingpatterns.com/state.html

您需要創建 2 個狀態:

  1. 不關注(默認)
  2. 下列的

當玩家進入對撞機時,將 state 切換到跟隨。 我不會給你寫一個完整的 state 機器/狀態切換架構供你復制和粘貼,但我可以告訴你,你會想讓狀態本身成為 MonoBehavior class,而實際的 StateMachine 不會有任何父類並將附加到對象的控制器。

然后,您需要像這樣跟蹤玩家的坐標

Vector3 playerPosition;

void OnCollisionEnter(Collider obj1)
{
    if(obj1.gameObject.tag == "Player"){
        playerPosition = obj1.transform.position;
        myStateMachine.switchState("Follow"); //obviously replace this with your own state machine code
    }
}

確保玩家的游戲對象在 Unity 編輯器中確實具有“玩家”標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM