<2024年1月6日>
(スクリプト1)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HeadController_Z : MonoBehaviour
{
public AimController_Z acz;
private Vector3 targetPosition;
public float speed;
private float step;
void Update()
{
// (テクニック)「ターゲットの高さ」と「戦車ヘッドの高さ」を揃える。
// これでヘッド部分が「真横に旋回」するようになる。
acz.targetPos.y = transform.position.y;
targetPosition = acz.targetPos;
step = speed * Time.deltaTime;
Vector3 targetDir = targetPosition - transform.position;
Vector3 moveDir = Vector3.RotateTowards(transform.forward, targetDir, step, 0f);
transform.rotation = Quaternion.LookRotation(moveDir);
}
}
(スクリプト2)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AimController_Z : MonoBehaviour
{
public Vector3 targetPos;
public Image aimImage;
void Update()
{
// 「マウスの位置」と「照準器の位置」を同期させる。
transform.position = Input.mousePosition;
RaycastHit hit;
// MainCameraからマウスの位置にRayを飛ばす
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
// RayがColliderと衝突した地点の座標を取得
targetPos = hit.point;
print(targetPos);
if(hit.transform.CompareTag("Enemy"))
{
// 照準器を赤色に変化させる。
aimImage.color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
}
else
{
// 照準器の色は白
aimImage.color = new Color(1.0f, 1.0f, 1.0f, 1.0f);
}
}
else
{
// 照準器の色は白
aimImage.color = new Color(1.0f, 1.0f, 1.0f, 1.0f);
}
}
}