More help!
I've been getting an error on my Start cast and End cast, I have tried everything but i cant find the problem plz help I provided the problems and I also gave photos, I'm new to scripting, and im trying to add things to basic scripts that I have learned though other tutorials, but its not working like I want it too... I am sorry for the brod question but i hope the pictures and script help!.![alt text][1] ![alt text][2]
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(SphereCollider))] public class EnemyAI : MonoBehaviour {
public float preceptionRadius = 10;
public Transform target;
public float movementSpeed = 5;
public float rotationSpeed = 420;
public bool dontMoveTorwardsPlayer;
public LayerMask MoveBlockers;
public Transform startCast, endCast;
private Transform myTransform;
// Use this for initialization
void Start ()
{
SphereCollider sc = GetComponent<SphereCollider>();
CharacterController cc = GetComponent<CharacterController>();
if (sc == null)
Debug.LogError("No Collider on enemy");
else
{
sc.isTrigger = true;
}
if(cc == null)
{
Debug.LogError("There's no Character Controller");
}
else
{
sc.center = cc.center;
sc.radius = preceptionRadius;
}
myTransform = transform;
}
// Update is called once per frame
void Update()
{
if (!dontMoveTorwardsPlayer == false)
{
Debug.DrawLine(startCast.position, endCast.position, Color.yellow);
RaycastHit.dontMoveTorwardsPlayer = Physics.Linecast(startCast.position, endCast.position, MoveBlockers);
if (dontMoveTorwardsPlayer.collider != null)
{
if (target)
{
Vector3 dir = (target.position - myTransform.position).normalized;
float direction = Vector3.Dot(dir, transform.forward);
float dist = Vector3.Distance(target.position, myTransform.position);
//Find or Look at Target
myTransform.rotation = Quaternion.Lerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
//Movement
myTransform.position += myTransform.forward * movementSpeed * Time.deltaTime;
}
}
}
}
public void OnTriggerEnter(Collider other)
{
Debug.Log("Entered");
if (other.CompareTag("Player"))
{
target = other.transform;
}
}
public void OnTriggerExit(Collider other)
{
Debug.Log("Exit");
if(other.CompareTag("Player"))
{
target = null;
}
}
}
Answer by lloladin · Oct 01, 2015 at 06:49 PM
i alrdy told you in last post XD its bc you have Write transform.postion So startCast.position and endcast.position since you are drawing a line between two positions .-.
it says raycasthit dosent contain a deffinition for dontmovetowardsplyer
bool does not contain definitoion for collider
if (!dont$$anonymous$$oveTorwardsPlayer == false)
{
Debug.DrawLine(startCast.position, endCast.position, Color.yellow);
RaycastHit.dont$$anonymous$$oveTorwardsPlayer = Physics.Linecast(startCast.position, endCast.position, $$anonymous$$oveBlockers);
if (dont$$anonymous$$oveTorwardsPlayer.collider != null)
{
i think the problem is RaycastHit.dont$$anonymous$$oveTorwardsPlayer try removing RayCast Does the if (dont$$anonymous$$oveTorwardsPlayer.colliders != null give error?)
collider is till not registering in the bool definitions
it still causes my enemy to move through walls and push the player and float
Answer by Tyson1211 · Oct 01, 2015 at 07:03 PM
/I did it but it still pulls an error on the whole line when i do that..
Your answer
Follow this Question
Related Questions
I want my script to wait 2 seconds before continue in a condition, in update, using C# 2 Answers
Problems with scripting and invokeRepeating 1 Answer
OnCollisonEnter2D Not Firing after checking collider 1 Answer
error CS0120: An object reference is required to access non-static member 1 Answer
Touch Force on 3D Object 2 Answers