ふぃるゲ〜

ゲームアプリの開発をしています。また、作曲もしています。

スクリプト一覧

画面の半分をクリック

        if(Input.GetMouseButtonDown(0))
        {
            if (Input.mousePosition.x >= Screen.width / 2)
            {
                Debug.Log("右側");
            }

            if (Input.mousePosition.x <= Screen.width / 2)
            {
                Debug.Log("左側");
            }
        }

プレイヤの縦移動にカメラが追従する設定(カメラにアタッチ)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour
{
    GameObject player;

    void Start()
    {
        player = GameObject.Find("Player");
    }

    void Update()
    {
        Vector3 playerPos = player.transform.position;
        transform.position = new Vector3(transform.position.x, playerPos.y, transform.position.z);
    }
}

地上にいる時のみ

if ( rigid2D.velocity.y == 0)

オブジェクト生成

GameObject go = Instantiate(hogeprefab) as GameObject;
 go.transform.position = new Vector2(transform.position.x, transform.position.y);

hogeを自分の子オブジェクトに移動する

hoge.transform.parent = gameObject.transform;

1~11の目があるダイスを振る

int dice = Random.Range(1, 12);

hogeタグと接触している時

void OnTriggerEnter2D(Collider2D other)
{
        if(other.gameObject.tag == "hoge")
        {
        }
}

すり抜ける物体(Is Trigger)との接触

void OnTriggerEnter2D(Collider2D other)
{
}

すり抜けない物体との接触

void OnCollisionEnter2D(Collision2D collision)
{
}

物体の破壊

Destroy(gameObject);
{gameObjectを任意の名前にすることで指定したオブジェクトを破壊できる}

Invoke(物体が接触した2秒後に"void Destroy()"の処理を行う)

    void OnCollisionEnter2D(Collision2D collision)
    {
        Invoke("Destroy", 2);
    }

    void Destroy()
    {
        Destroy(gameObject);
    }

オブジェクトのスクリプトの接続を切る/つける

       hoge.GetComponent<hoge>().enabled = false/true;

オブジェクトの接続を切る/つける

      GameObject.SetActive(false/true);

ぶつかったオブジェクトの座標を取得

    private void OnTriggerEnter2D(Collider2D other)
    {
            hogePos = other.gameObject.transform.position;
    }
**親のオブジェクトを参照**

    GameObject hoge;

    void Start()
    {
        hoge = transform.parent.gameObject;
    }
public class CoinCreater : MonoBehaviour
{
    //コピーする元となるコイン
    [SerializeField] private GameObject _originalCoin;

    //Update処理は毎回呼ばれる
    void Update()
    {
        //マウスクリックをした
        if (Input.GetMouseButtonDown(0))
        {
            //クリック地点からレイを作成する
            var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            //レイの先にオブジェクトがある
            if (Physics.Raycast(ray, out hit, 500))
            {
                //コインの生成位置の算出
                var distance = Vector3.Distance(Camera.main.transform.position, hit.point);
                //クリック地点
                var mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance);
                //クリック地点をワールド座標に変換
                var position = Camera.main.ScreenToWorldPoint(mousePosition);
                //少し高い位置に生成
                position.y += 5;
                //コインの生成
                var objectBase = (GameObject)Instantiate(_originalCoin);
                //算出した位置を設定
                objectBase.gameObject.transform.localPosition = position;
                //有効化する
                objectBase.gameObject.SetActive(true);
            }
        }
    }
}
**この処理はさせない**
return;
**constをつけた数字は変更することができなくなる**
const
**Rayは光線の意味で、始点と方向を与えることで作成可能**
Vector3 origin = new Vector3(0, 0, 0); // 原点
Vector3 direction = new Vector3(1, 0, 0); // X軸方向を表すベクトル
Ray ray = new Ray(origin, direction); // Rayを生成
RaycastHit hit;
const float maxDistance =  600;

if (Physics.Raycast(ray, out hit,maxDistance)) // もし600の長さのRayを投射して何らかのコライダーに衝突したら
{
    GameObject hitObject  = hit.collider.gameObject.name; // 衝突した相手オブジェクトを取得
    Debug.Log(name); // コンソールに表示
}
**Quaternionは回転を表す言葉で、Quaternion.identityは、回転していない時の回転値を得られる**
// xyz軸を軸にして1度、回転させているQuaternion
Quaternion hoge = Quaternion.Euler(0f, 0f, 1.0f);
**オブジェクトがアクティブだったら**
        if(Hoge.activeSelf)
        {
        }