- Home /
How can I make this platform only move when the player is standing on it.
I will start by saying I am a complete beginner. I followed a tutorial and got far enough to make my platform work technically, but it just keeps going up and down. I need it to not move until the player is on it. I'm hitting a lot of dead ends though so I thought I would ask for help in the mean time. This is what I have so far,
using UnityEngine;
using System.Collections;
public class MovingPlatform : MonoBehaviour {
[SerializeField]
Transform platform;
[SerializeField]
Transform startTransform;
[SerializeField]
Transform endTransform;
Vector3 direction;
Transform destination;
void Start (){
SetDestination (startTransform);
}
void FixedUpdate(){
platform.rigidbody.MovePosition (platform.position + direction * platformSpeed * Time.fixedDeltaTime);
if (Vector3.Distance (platform.position, destination.position) < platformSpeed * Time.fixedDeltaTime) {
SetDestination (destination == startTransform ? endTransform : startTransform);
}
}
void OnDrawGizmos(){
Gizmos.color = Color.green;
Gizmos.DrawWireCube (startTransform.position, platform.localScale);
Gizmos.color = Color.red;
Gizmos.DrawWireCube (endTransform.position, platform.localScale);
}
void SetDestination(Transform dest){
destination = dest;
direction = (destination.position -platform.position).normalized;
}
}
really any help is appreciated
Answer by sevensixtytwo · Oct 23, 2014 at 09:39 AM
You can give it a condition to check before it moves like:
public var isPlayerOn : boolean;
if (isPlayerOn) {
//Move
}
And then you just check is the Player is on the platform. There's a crapton of ways to do it but the simplest would be to check Collisions.
//Make sure your player is tagged Player
function OnCollisionEnter (col:Collision) {
if (col.gameObject.tag == "Player") {
isPlayerOn = true;
}
}
function OnCollisionExit (col:Collision) {
if (col.gameObject.tag == "Player") {
isPlayerOn = false;
}
}
Pretty simple but it should get you started.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Complete beginner. Where to start? 0 Answers
How would I get camera bobbing? 0 Answers
How to retrieve GameObject's Vector2 coordinate and move another object to it's place 1 Answer
Help on a basic script 2 Answers