Unity_beginner #12


210712
unity_beginner #12
  • 競合の作成時に呼び出されるメソッド
  • Collision type->競合する相手に関する情報が含まれています.
    OnCollisionEnter->Unityで定義したメソッドを使用します.
    衝突時に呼び出す->衝突はゲームオブジェクトの衝突機が衝突することです.
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Obstacle : MonoBehaviour
    {
        void OnCollisionEnter(Collision collision)
        {
            Vector3 direction = collision.gameObject.transform.position - transform.position;
            direction = direction.normalized * 100;
            collision.gameObject.GetComponent<Rigidbody>().AddForce(direction);
    
        }
    
        float delta = 0f;
        // Start is called before the first frame update
        void Start()
        {
        
        }
    
        // Update is called once per frame
        void Update()
        {
            float newXPosition = transform.localPosition.x + delta;
            transform.localPosition = new Vector3(newXPosition, transform.localPosition.y, transform.localPosition.z);
            if(transform.localPosition.x < -3.5)
            {
                delta = 0.03f;
            }
            else if(transform.localPosition.x > 3.5)
            {
                delta = -0.03f;
            }
        }
    }
  • コードのOnCollisionEnterセクション
    CollisionタイプのcollsionでObstruct競合オブジェクトを受信します.
    transform.位置//現在位置
    collision.gameObject.transform.位置//競合するターゲット位置
    したがって、方向=球位置-障害物位置->出現方向.
    direction = direction.normalized*100//方向には、衝突の方向によって変化する力があるため、normalizeを行う必要があります.力を入れるために、100を乗じます.
    相手に力をぶつけるためにgameObject.GetComponent()衝突オブジェクトのリジッドボディを取得する->すなわち,物体球に衝突する剛体をもたらす.
    ここでAddForceを使用してポップアップします.

  • リファレンス
    https://programmers.co.kr/learn/courses/1/lessons/666#note