/// <summary> /// Вызывается в каждом кадре /// </summary> public void Update() { if (Input.GetMouseButton(1)) { RaycastHit hit; Ray ray = _camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) // Бросаем луч { GameObject objectHit = hit.transform.gameObject; // Получаем обьект на который попали лучем ISmartObject smartObjectMenu = objectHit.GetComponent <ISmartObject>(); if (smartObjectMenu != null) // Если этот объект поддерживает контекстное меню { if (MenuMemory.menuItems.Count > 0) { foreach (var item in MenuMemory.menuItems) { item.SetActive(false); } } smartObjectMenu.ShowMenu(); } } } }
public FormattableSmartObject(ISmartObject smartObject, Func <object, string> formatFunc, Func <string, object, bool> parseFunc) { this.smartObject = smartObject; this.formatFunc = formatFunc; this.parseFunc = parseFunc; smartObject.ValueChanged += smartObject_ValueChanged; }
public void LoadSmartObjects(ISmartObject deviceWithSmartObjects) { Device.LoadSmartObjects(deviceWithSmartObjects); #if DEBUG foreach (var o in Device.SmartObjects) { o.Value.SigChange += ValueOnSigChange; } #endif }
/// <summary> /// Determines what happens if the ICollidable getSetEntity is intersecting another entity's hitbox /// </summary> /// <param name="source">.</param> /// <param name="data">CollisionEvent which contains the entity being collided with</param> public virtual void newCollision(object source, CollisionEvent data) { ICollidable cRef = (ICollidable)getSetEntity; if (data.collidable is ISmartObject) { smartObj = (ISmartObject)data.collidable; smartObjCollide = true; } else if (data.collidable is ISmartStructure) { smartStruct = (ISmartStructure)data.collidable; smartStructCollide = true; if (cRef.getSetCenter.X < data.collidable.getSetCenter.X) { data.mtv.X *= -1; } if (cRef.getSetCenter.Y < data.collidable.getSetCenter.Y) { data.mtv.Y *= -1; } getSetMoveVector = data.mtv * (getSetSpeed); //mPos += getSetMoveVector; physicsCollide = true; //getSetSpeed *= 0.1f; } else { if (cRef.getSetCenter.X < data.collidable.getSetCenter.X) { data.mtv.X *= -1; } if (cRef.getSetCenter.Y < data.collidable.getSetCenter.Y) { data.mtv.Y *= -1; } getSetMoveVector = data.mtv * (getSetSpeed); //mPos += getSetMoveVector; physicsCollide = true; //getSetSpeed *= 0.1f; } }
/// <summary> /// Initializes a new instance of the <see cref="SmartObjectController" /> class. /// </summary> /// <param name="smartObject"></param> public SmartObjectController(ISmartObject smartObject) { _smartObject = smartObject; }
public uint LoadSmartObjects(ISmartObject deviceWithSmartObjects) { // this._InUse // throw new NotImplementedException(); return(0); }