★Kou Edamatu

(2024年8月26日)

<砲弾を上方向に加速させる>

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

public class Shell : MonoBehaviour
{
    private Rigidbody rb;

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

    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.name == "Test")
        {
            // 重力ON
            rb.useGravity = true;

            // 速度0
            rb.velocity = Vector3.zero;

            // 上に加速
            rb.AddForce(Vector3.up * 1000);
        }
    }
}

(2024年6月26日)

<ボタンを押している間だけサウンドが鳴る>

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

public class DoorOpen : MonoBehaviour
{
    private float rot;
    private bool openOK = false;

    // ★サウンド(6月26日)
    private AudioSource audioX;

    private void Start()
    {
        // ★サウンド(6月26日)
        audioX = GetComponent<AudioSource>();
    }

    public void OnPushButtonClickDown()
    {
        openOK = true;

        // ★サウンド(6月26日)
        audioX.Play();
    }

    public void OnPushButtonClickUp()
    {
        openOK = false;

        // ★サウンド(6月26日)
        audioX.Stop();
    }

    void Update()
    {
        if (openOK == true)
        {
            rot = transform.eulerAngles.y;
            Mathf.Repeat(rot, 360);

            if (rot > 270 || rot == 0)
            {
                transform.Rotate(Vector3.up * Time.deltaTime * -7);
            }
        }
    }
}

 


(2024年6月19日)

<壁に隠れた際のカメラ位置を調整する>


(2024年6月12日)

<タンクヘッド回転>

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

public class TankHeadController : MonoBehaviour
{
    void Update()
    {
        var rotationHorizontal = Quaternion.AngleAxis(Camera.main.transform.eulerAngles.y, Vector3.up);
        transform.rotation = rotationHorizontal;
    }
}

<タンクのヘッドとカメラの回転を合致させる>

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

public class TankHeadController : MonoBehaviour
{
    void Update()
    {
        var rotationHorizontal = Quaternion.AngleAxis(Camera.main.transform.eulerAngles.y, Vector3.up);
        transform.rotation = rotationHorizontal;
    }
}

(設定)


(2024年4月17日)

<ボスミサイルの向きの調整>

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

public class EnemyShotShell : MonoBehaviour
{
    public float shotSpeed;
    public GameObject enemyShellPrefab;
    public AudioClip shotSound;
    private int count;
    public float stopTimer;

    // ★追加(4月17日)
    public GameObject fort;

    private void Update()
    {
        count += 1;

        stopTimer -= Time.deltaTime;

        if (stopTimer < 0)
        {
            stopTimer = 0;
        }

        if (count % 100 == 0 && stopTimer <= 0)
        {
            // ★修正(4月17日)
            // 親ではなく、fortの向きに合致させる(ポイント)
            GameObject enemyShell = Instantiate(enemyShellPrefab, transform.position, fort.transform.rotation);

            Rigidbody enemyShellRb = enemyShell.GetComponent();
            enemyShellRb.AddForce(transform.forward * shotSpeed);
            AudioSource.PlayClipAtPoint(shotSound, transform.position);
            Destroy(enemyShell, 5.0f);
        }
    }
    public void AddStopTimer(float amount)
    {
        stopTimer += amount;
    }
}

<ミサイルの向きの確認>

 


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

public class EnemyController : MonoBehaviour
{
    private int checkCount = 0;
    public GameObject[] targets;
    private int targetNum = 0;
    private float maxDis = 5f;
    private Component Chase;

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("check"))
        {
            other.GetComponent().material.color = Color.red;
            other.gameObject.tag = "ok";
            checkCount += 1;

            // ★改良
            //targetNum += 1;
            targetNum = (targetNum + 1) % targets.Length;
        }
    }
    void Update()
    {
        transform.Translate(Vector3.forward * Time.deltaTime * 3);
        transform.LookAt(targets[targetNum].transform);


        RaycastHit hit;
        Ray ray = new Ray(transform.position, transform.forward);
        Debug.DrawRay(transform.position, transform.forward * maxDis, Color.red);

        if (Physics.Raycast(ray, out hit, maxDis))
        {
            print("a");
            GameObject target = hit.collider.gameObject;

            if(target.name == "Tank")
            {
                print("b");
                this.enabled = false;
                this.gameObject.GetComponent<ChaseEnemy>().enabled = true;
            }
        }
    }
}

 


(2024年2月5日)

<実験結果>

・TankにSpere Colliderを追加

・「Is Trigger」にチェック

・「Radius」を「8」に設定

・問題なく反応した!

・「5」でも「3」でも「2」でも反応

・Spere Colliderを外しても反応した!!!