ふぃるゲ〜

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

【ピヨピヨ仕分け】操作方法

             f:id:filltomkun:20210707210911j:plain

1・・・オスひよこ

上のオス専用の柵の中にドラッグしましょう。

下のメス専用の柵の中に入れてしまったり10秒間放置すると怒られてゲームオーバーです。

 

2・・・メスひよこ

下のメス専用の柵の中にドラッグしましょう。

上のオス専用の柵の中に入れてしまったり10秒間放置すると怒られてゲームオーバーです。

 

時間制限などはありません。

時間経過で出てくるひよこがどんどん増えるので、どれだけ多く仕訳けれるか挑戦してみてください。

 

「ピヨピヨ仕分け」をApp Storeで

 

ひよこをドラッグ&ドロップできるようにする

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

public class ObjectController : MonoBehaviour
{
    // 追加
    private Vector3 screenPoint;
    private Vector3 offset;
    private Vector2 prevPosition;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }

    void OnMouseDown()
    {
        this.screenPoint = Camera.main.WorldToScreenPoint(transform.position);
        this.offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
        GetComponent<BoxCollider2D>().enabled = false;
    }

    void OnMouseDrag()
    {
        Vector3 currentScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
        Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenPoint) + this.offset;
        transform.position = currentPosition;
    }

    void OnMouseUp()
    {
        GetComponent<BoxCollider2D>().enabled = true;
    }
}


}

 

時間経過でひよこが出てくる量を変える

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

public class GameManager : MonoBehaviour
{
    GameObject sw;
    float delta;
    float gamedelta;
    public GameObject pg;
    public GameObject pg1;
    public GameObject pg2;
    public GameObject pg3;
    public GameObject pg4;
    public GameObject pg5;

    void Start()
    {
        sw = GameObject.Find("Switch");
    }

    void Update()
    {
        gamedelta += Time.deltaTime;

        if (gamedelta >= 20)
        {
            pg1.SetActive(true);
        }

        if (gamedelta >= 40)
        {
            pg.SetActive(false);
            pg2.SetActive(true);
        }

        if (gamedelta >= 60)
        {
            pg1.SetActive(false);
            pg3.SetActive(true);
        }

        if (gamedelta >= 80)
        {
            pg2.SetActive(false);
            pg4.SetActive(true);
        }

        if (gamedelta >= 100)
        {
            pg3.SetActive(false);
            pg5.SetActive(true);
        }

        if (sw.GetComponent<MissSwitch>().Switch == true)
        {
            delta += Time.deltaTime;
            pg.SetActive(false);
            pg1.SetActive(false);
            pg2.SetActive(false);
            pg3.SetActive(false);
            pg4.SetActive(false);
            pg5.SetActive(false);
        }

        if (delta >= 2.5f)
        {
            SceneManager.LoadScene("Result");
        }
    }
}

}

 

ひよこの動きの処理

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

public class MaleMove : MonoBehaviour
{
    float x;
    float y;
    public float YSwitch = 0;
    public float XSwitch = 0;
    public bool MissSwitch;
    bool deltaSwitch = true;
    GameObject gd;
    GameObject sw;
    float delta = 0;
    float span = 7;
    float end = 10;
    Animator animator;

    void Start()
    {
        animator = GetComponent<Animator>();
        gd = GameObject.Find("GameDirector");
        sw = GameObject.Find("Switch");
    }

    void Update()
    {
        transform.Translate(x, y, 0);

        if (deltaSwitch == true)
        {
            delta += Time.deltaTime;
        }

        if (delta >= span)
        {
            animator.SetTrigger("MaleChangeTrigger");
        }

        if (delta >= end)
        {
            animator.SetTrigger("MaleAngryTrigger");
            sw.GetComponent<MissSwitch>().Switch = true;
        }

        x = 0.015f;
        y = 0.015f;

        if (YSwitch == 1)
        {
            y *= -1;
        }

        if (YSwitch == 2)
        {
            y *= -1;
            YSwitch = 0;
        }

        if (XSwitch == 1)
        {
            x *= -1;
        }

        if (XSwitch == 2)
        {
            x *= -1;
            XSwitch = 0;
        }

        if (sw.GetComponent<MissSwitch>().Switch == true)
        {
            x = 0;
            y = 0;
            Destroy(GetComponent<ObjectController>());
            deltaSwitch = false;
            GetComponent<AudioSource>().Stop();
        }
    }

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag == "Side")
        {
            XSwitch += 1;
        }

        if (other.gameObject.tag == "Wide")
        {
            YSwitch += 1;
        }

        if (other.gameObject.tag == "Male")
        {
            gd.GetComponent<GameDirector>().AddPoint();
            transform.position = new Vector3(0, 2.55f, 0);
            Destroy(GetComponent<ObjectController>());
            animator.SetTrigger("MaleNomalTrigger");
            delta = 0;
            deltaSwitch = false;
            GetComponent<AudioSource>().Stop();
        }

        if (other.gameObject.tag == "Female")
        {
            gd.GetComponent<GameDirector>().AddPoint();
            transform.position = new Vector3(0, -3.3f, 0);
            Destroy(GetComponent<ObjectController>());
            sw.GetComponent<MissSwitch>().Switch = true;
            animator.SetTrigger("MaleAngryTrigger");
        }
    }
}