(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を外しても反応した!!!