setting stuff up for fsm
rename file name to fit convention pickandthrow got ref issue
This commit is contained in:
parent
80ab010b4b
commit
d4d9e0c3b3
|
@ -8,6 +8,7 @@ public class Item : Script
|
||||||
MEDIUM,
|
MEDIUM,
|
||||||
HEAVY
|
HEAVY
|
||||||
}
|
}
|
||||||
|
public int Score = 1;
|
||||||
|
|
||||||
public ItemCategory currCategory;
|
public ItemCategory currCategory;
|
||||||
public Item(GameObject gameObj) : base(gameObj) { }
|
public Item(GameObject gameObj) : base(gameObj) { }
|
|
@ -4,6 +4,7 @@ using static PlayerController;
|
||||||
|
|
||||||
public class PickAndThrow : Script
|
public class PickAndThrow : Script
|
||||||
{
|
{
|
||||||
|
public Vector3 holdPosition = new Vector3(0.0f, 1.0f, 0.0f);
|
||||||
public Vector3 throwForce = new Vector3(100.0f, 200.0f, 100.0f);
|
public Vector3 throwForce = new Vector3(100.0f, 200.0f, 100.0f);
|
||||||
public GameObject item;
|
public GameObject item;
|
||||||
private PlayerController pc;
|
private PlayerController pc;
|
||||||
|
@ -23,7 +24,7 @@ public class PickAndThrow : Script
|
||||||
if (raccoonHoldLocation == null)
|
if (raccoonHoldLocation == null)
|
||||||
Debug.Log("CHILD EMPTY");
|
Debug.Log("CHILD EMPTY");
|
||||||
else
|
else
|
||||||
raccoonHoldLocation.LocalPosition = new Vector3(0.0f, 1.0f, 0.0f);
|
raccoonHoldLocation.LocalPosition = holdPosition;
|
||||||
}
|
}
|
||||||
protected override void update()
|
protected override void update()
|
||||||
{
|
{
|
||||||
|
@ -38,21 +39,12 @@ public class PickAndThrow : Script
|
||||||
lastZDir = camerAixs.z;
|
lastZDir = camerAixs.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.GetScript<Item>() != null && itemTransform == null && itemRidibody == null)
|
RetrieveItemComponets();
|
||||||
{
|
|
||||||
itemTransform = item.GetComponent<Transform>();
|
|
||||||
if (itemTransform == null)
|
|
||||||
Debug.Log("Item transform EMPTY");
|
|
||||||
|
|
||||||
itemRidibody = item.GetComponent<RigidBody>();
|
if (pc != null && inRange && !pc.holdItem && Input.GetMouseButtonDown(Input.MouseCode.LeftButton))
|
||||||
if (itemRidibody == null)
|
|
||||||
Debug.Log("Item rb EMPTY");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pc != null && inRange && !pc.holdItem && Input.GetKey(Input.KeyCode.E))
|
|
||||||
pc.holdItem = true;
|
pc.holdItem = true;
|
||||||
|
|
||||||
if (pc != null && itemRidibody != null && itemTransform != null && pc.holdItem)
|
if (pc != null && pc.holdItem && itemRidibody != null && itemTransform != null)
|
||||||
{
|
{
|
||||||
itemTransform.LocalPosition = raccoonHoldLocation.GlobalPosition;
|
itemTransform.LocalPosition = raccoonHoldLocation.GlobalPosition;
|
||||||
itemRidibody.IsGravityEnabled = false;
|
itemRidibody.IsGravityEnabled = false;
|
||||||
|
@ -71,6 +63,30 @@ public class PickAndThrow : Script
|
||||||
else if(!pc.holdItem && itemRidibody != null)
|
else if(!pc.holdItem && itemRidibody != null)
|
||||||
itemRidibody.IsGravityEnabled = true;
|
itemRidibody.IsGravityEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ResetItemObject()
|
||||||
|
{
|
||||||
|
itemRidibody = null;
|
||||||
|
itemTransform = null;
|
||||||
|
item = new GameObject();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RetrieveItemComponets()
|
||||||
|
{
|
||||||
|
//get the transform of the given item
|
||||||
|
if (item.GetScript<Item>() != null && itemTransform == null && itemRidibody == null)
|
||||||
|
{
|
||||||
|
itemTransform = item.GetComponent<Transform>();
|
||||||
|
if (itemTransform == null)
|
||||||
|
Debug.Log("Item transform EMPTY");
|
||||||
|
|
||||||
|
itemRidibody = item.GetComponent<RigidBody>();
|
||||||
|
if (itemRidibody == null)
|
||||||
|
Debug.Log("Item rb EMPTY");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
protected override void onCollisionEnter(CollisionInfo info)
|
protected override void onCollisionEnter(CollisionInfo info)
|
||||||
{
|
{
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
using SHADE;
|
using SHADE;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using static Item;
|
using static Item;
|
||||||
|
|
||||||
public class PlayerController : Script
|
public class PlayerController : Script
|
||||||
|
@ -11,10 +12,20 @@ public class PlayerController : Script
|
||||||
RUNNING,
|
RUNNING,
|
||||||
JUMP,
|
JUMP,
|
||||||
FALLING,
|
FALLING,
|
||||||
|
LANDED,
|
||||||
CAUGHT,
|
CAUGHT,
|
||||||
TOTAL
|
TOTAL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum WalkingState
|
||||||
|
{
|
||||||
|
CARRY,
|
||||||
|
AIMING,
|
||||||
|
THROW,
|
||||||
|
WALK,
|
||||||
|
TOTAL
|
||||||
|
}
|
||||||
|
|
||||||
public RigidBody rb { get; set; }
|
public RigidBody rb { get; set; }
|
||||||
private Transform tranform;
|
private Transform tranform;
|
||||||
private Camera cam;
|
private Camera cam;
|
||||||
|
@ -215,6 +226,7 @@ public class PlayerController : Script
|
||||||
{
|
{
|
||||||
if (rb != null)
|
if (rb != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
rb.AddForce(new Vector3(axisMove.x, 0.0f,axisMove.y) * moveForce);
|
rb.AddForce(new Vector3(axisMove.x, 0.0f,axisMove.y) * moveForce);
|
||||||
|
|
||||||
if (isMoveKeyPress)
|
if (isMoveKeyPress)
|
|
@ -0,0 +1,63 @@
|
||||||
|
using SHADE;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public abstract class BaseState
|
||||||
|
{
|
||||||
|
|
||||||
|
protected string stateName = "Base State";
|
||||||
|
protected StateMachine machine;
|
||||||
|
protected string animationName = "";
|
||||||
|
|
||||||
|
public BaseState(StateMachine stateMachine, string animName)
|
||||||
|
{
|
||||||
|
machine = stateMachine;
|
||||||
|
animationName = animName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnEnter()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void Update(float dt);
|
||||||
|
|
||||||
|
public virtual void OnExit()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetStateName()
|
||||||
|
{
|
||||||
|
return stateName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetAnimName()
|
||||||
|
{
|
||||||
|
return animationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual float GetAnimPercent()
|
||||||
|
{
|
||||||
|
return 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void onCollisionEnter(CollisionInfo other)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void onCollisionStay(CollisionInfo other)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public virtual void onCollisionExit(CollisionInfo info)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public virtual void onTriggerEnter(CollisionInfo info)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public virtual void onTriggerStay(CollisionInfo info)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public virtual void onTriggerExit(CollisionInfo info)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
using SHADE;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
public abstract class StateMachine : Script
|
||||||
|
{
|
||||||
|
private Dictionary<Type, BaseState> stateDictionary;
|
||||||
|
public BaseState currentState = null;
|
||||||
|
public string currentStateName;
|
||||||
|
public string currentAnimName;
|
||||||
|
|
||||||
|
public StateMachine(GameObject gameObj) : base(gameObj) { }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue