マイロボットの作成2
自動プロパティの設定
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyMove : MonoBehaviour
{
// ★改良
// 「自動プロパティ」をネットで調べてみよう!
public float MoveSpeed { get; set; } // 自動プロパティの設定(ポイント)
private float maxDis = 0.75f;
private string tagName;
// ★改良
private void Start()
{
MoveSpeed = 5;
}
void Update()
{
// ★改良
transform.Translate(Vector3.forward * MoveSpeed * Time.deltaTime);
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))
{
GameObject target = hit.collider.gameObject;
tagName = target.tag;
switch (tagName)
{
case "Right":
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 90, 0);
break;
case "Left":
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 270, 0);
break;
}
}
}
}
敵の移動速度を低下させる
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveSlow : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
if(other.TryGetComponent(out EnemyMove eMove))
{
eMove.MoveSpeed /= 3; // 敵の移動速度を「3分の1」にする。
}
}
private void OnTriggerExit(Collider other)
{
if (other.TryGetComponent(out EnemyMove eMove))
{
eMove.MoveSpeed *= 3; // 敵の移動速度を「3倍」にする。(元に戻す)
}
}
}
自動プロパティの設定
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyMove : MonoBehaviour
{
// ★改良
// 「自動プロパティ」をネットで調べてみよう!
public float MoveSpeed { get; set; } // 自動プロパティの設定(ポイント)
private float maxDis = 0.75f;
private string tagName;
// ★改良
private void Start()
{
MoveSpeed = 5;
}
void Update()
{
// ★改良
transform.Translate(Vector3.forward * MoveSpeed * Time.deltaTime);
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))
{
GameObject target = hit.collider.gameObject;
tagName = target.tag;
switch (tagName)
{
case "Right":
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 90, 0);
break;
case "Left":
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 270, 0);
break;
}
}
}
}
敵の移動速度を低下させる
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveSlow : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
if(other.TryGetComponent(out EnemyMove eMove))
{
eMove.MoveSpeed /= 3; // 敵の移動速度を「3分の1」にする。
}
}
private void OnTriggerExit(Collider other)
{
if (other.TryGetComponent(out EnemyMove eMove))
{
eMove.MoveSpeed *= 3; // 敵の移動速度を「3倍」にする。(元に戻す)
}
}
}
マイロボットの作成2