- Home /
Directly accessing enum types from other scripts (javascript)
Hi, I have read many articles that almost answer my question but can't quite get to what I need. In script (a) I am trying to monitor for a change in value of a variable from another script (b) that is an enum.
So, in OrdnanceControl.js I have:
enum LockStateType {
Searching,
Locking,
Locked
}
var lockState: LockStateType = LockStateType.Searching;
And in TargetIndicatorControl.js I have a 'previous value' variable of the same enum type declared via the following (not sure if this is the best way - could be the source of my problems):
public var targetTrans: Transform;
private var ordnanceControl: OrdnanceControl;
private var oldLockState;
function Awake () {
ordnanceControl = targetTrans.GetComponent(OrdnanceControl);
}
function Start()
{
oldLockState = ordnanceControl.lockState.Searching;
}
This seems to work OK as I can do things like:
oldLockState = ordnanceControl.lockState;
without issue.
My problem is that when I try and compare the two to detect a change in value:
if (oldLockState != ordnanceControl.lockState)
{
// Slow stuff only done on state change here
}
I get the compilation error "Operator '!=' cannot be used with a left hand side of type 'Object' and a right hand side of type 'LockStateType'." I guess this is because I deferred declaring the type of oldLockState and so it is just a generic type Object but why does the assignment work OK but a comparison operator between the exact same variables not? Can I cast the values for the comparison or is there a way of directly declaring oldLockState as the enum type rather than the 'deferred' method (not sure of the correct terminology) above.
Any help would be greatly appreciate and thanks in advance.
Your answer
Follow this Question
Related Questions
Construct class with enum parameter (javascript) 0 Answers
Enum vs Array (js) 1 Answer
Iterating through an enumerated type 3 Answers
Overload Operator in UnityScript? 0 Answers