★Koichiro Kurose

(2024年5月15日)

<ジョイスティック操作の修正>

(1)設定の修正

(2)スクリプトの修正

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

public class CoinMove : MonoBehaviour
{
    public float moveSpeed = 0.2f;
    private Vector3 pos;
    public float minPos;
    public float maxPos;
    public VariableJoystick variableJoystick;

    //private float moveH;・・・>削除

    void Update()
    {
        // (方針)
        // 操作を完全に2つに分ける。
        // キーボード操作
        float moveH_1 = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime;
        transform.Translate(moveH_1, 0, 0);

        // ジョイスティック操作
        float moveH_2 = variableJoystick.Horizontal * moveSpeed * Time.deltaTime;
        transform.Translate(moveH_2, 0, 0);

        // (原因)5月13日
        // 下記の切り替えがうまく動作していない。
        //if (Application.isEditor)
        //{ 
        //    moveH = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime;
        //}
        //else
        //{
        //    moveH = variableJoystick.Horizontal * moveSpeed * Time.deltaTime;
        //    print("moveH dekiteru OMAKE UNKO KAIBEN TOTEMO KENKOU TAITYOU BANZEN");
        //}

        MoveClamp();
    }

    void MoveClamp()
    {
        pos = transform.position;
        pos.x = Mathf.Clamp(pos.x, minPos, maxPos);
        transform.position = pos;
    }
}

(2023年1月15日)

<メダル落としゲーム;ボードとコインの動きを連動させる>

*動的に親子関係&関係解除でいく。

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

// このスクリプトはIs Triggerにチェックを入れたボードに追加する(ポイント)
public class BoardZ : MonoBehaviour
{
    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Coin"))
        {
            other.transform.parent = transform.root;
        }
    }

    private void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Coin"))
        {
            other.transform.parent = null;
        }
    }
}

<2023_4_12>

(原因)

・プレハブデータが入っていない。

(レーダー機能の実装)

  • AddForceの「Time.deltaTime」は削除する(ポイント)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Hassha : MonoBehaviour
{
    public float shotSpeed;
    [SerializeField]
    private GameObject shellPrefab;
    [SerializeField]
    private AudioClip shotSound;
    private int interval;

    void Start()
    {
        StartCoroutine(Shellhassha());
    }

    // ★追加
    private void OnTriggerStay(Collider other)
    {
        if(other.TryGetComponent(out EnemyMove em))
        {
            transform.LookAt(other.transform.position);
        }
    }

    private IEnumerator Shellhassha()
    {
        yield return new WaitForSeconds(2f);
        while (true)
        {
            GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.identity);
            Rigidbody shellRb = shell.GetComponent();

            // ★修正
            // AddForceにTime.deltaTimeは使用しない。(フレームレートと関係はないので)
            shellRb.AddForce(transform.forward * shotSpeed);

            Destroy(shell, 35.0f);
            AudioSource.PlayClipAtPoint(shotSound, transform.position);

            yield return new WaitForSeconds(2f);
        }
    }
}