Question by
atalayguvenc12 · Feb 05 at 01:32 PM ·
unity 5
Unity Path Creator Suggestions,Unity Path Animation
Hello guys, I have some questions about Unity Path Creator. I am using Path Creator but it is not working as I want. If the situation I want is OnTriggerEnter, I want the invisible collider to leave my character's normal walking state and go to the end of the path I have drawn. What are your suggestions?
PathFollower.cs
using UnityEngine;
using PathCreation;
// Moves along a path at constant speed.
// Depending on the end of path instruction, will either loop, reverse, or stop at the end of the path.
public class PathFollower : MonoBehaviour
{
public PathCreator pathCreator;
public EndOfPathInstruction endOfPathInstruction;
public float speed = 5;
float distanceTravelled;
void Start()
{
if (pathCreator != null)
{
// Subscribed to the pathUpdated event so that we're notified if the path changes during the game
pathCreator.pathUpdated += OnPathChanged;
}
}
public void path()
{
if (pathCreator != null)
{
distanceTravelled += speed * Time.deltaTime;
transform.position = pathCreator.path.GetPointAtDistance(distanceTravelled, endOfPathInstruction);
transform.rotation = pathCreator.path.GetRotationAtDistance(distanceTravelled, endOfPathInstruction);
}
}
// If the path changes during the game, update the distance travelled so that the follower's position on the new path
// is as close as possible to its position on the old path
void OnPathChanged()
{
distanceTravelled = pathCreator.path.GetClosestDistanceAlongPath(transform.position);
}
}
basicMov.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class basicMov : MonoBehaviour
{
public float speed = 10;
private void Update()
{
float horizontalMove = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
float verticalMove = Input.GetAxis("Vertical") * speed * Time.deltaTime;
this.transform.Translate(horizontalMove, 0, verticalMove);
}
private void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "speedUp")
{
speed += 30f;
}
if (other.gameObject.tag == "Wall")
{
Debug.Log("çarptım");
}
if (other.gameObject.tag == "buildWay")
{
other.gameObject.GetComponent<PathFollower>().path();
}
}
}
Comment
Your answer
Follow this Question
Related Questions
Facebook SDK 7.10- Unity 2017 - Display Profile Picture 3 Answers
error CS1041: Identifier expected 1 Answer
Billboard Trees White Dots Everywhere... 0 Answers
Problem when acessing a list from another script? (ArgumentOutOfRangeException) 0 Answers
Unity's / C# limitations with high number of object instances? 1 Answer