public void ImportScrewRule(int i) { rule = new AnimeRule(highlighter.animationRule.objNames); //Create markers //Transform sourceObj = GameObject.Find(rule.objNames[0]).transform; Transform targetObj = GameObject.Find(rule.objNames[1]).transform; rule.targetNormal = targetObj.TransformVector(highlighter.animationRule.targetNormal); rule.sourceNormal = transform.TransformVector(highlighter.animationRule.sourceNormal); //rule.targetCentroid = targetObj.TransformPoint(highlighter.animationRule.targetCentroid); rule.targetCentroid = targetObj.TransformPoint(highlighter.animationRule.contactlist[i]); rule.startpt = highlighter.animationRule.startpt; rule.endpt = highlighter.animationRule.endpt; rule.contactpt = highlighter.animationRule.contactlist[i]; marker_start = Instantiate(marker, transform.TransformPoint(rule.startpt), Quaternion.identity); marker_start.name = "start"; marker_end = Instantiate(marker, transform.TransformPoint(rule.endpt), Quaternion.identity); marker_end.name = "end"; marker_start.transform.parent = transform; marker_end.transform.parent = transform; marker_contact = Instantiate(marker, targetObj.TransformPoint(rule.contactpt), Quaternion.identity); marker_contact.name = "contact"; marker_contact.transform.parent = targetObj; AlignObjects(rule); animeReady = true; }
public void ImportGearRule() { rule = new AnimeRule(); rule.gearAngle = highlighter.animationRule.gearAngle; rule.targetNormal = highlighter.animationRule.targetNormal; Transform[] gears = gameObject.GetComponentsInChildren <Transform>(); GearSetup(rule.targetNormal, rule.gearAngle, gears); animeReady = true; }
private void AlignObjects(AnimeRule rule) { Transform sourceObj = GameObject.Find(rule.objNames[0]).transform; Transform targetObj = GameObject.Find(rule.objNames[1]).transform; transform.rotation = Quaternion.FromToRotation(-rule.sourceNormal, rule.targetNormal) * transform.rotation; transform.position = rule.targetCentroid + rule.targetNormal; isAligned = true; }
// Start is called before the first frame update void Start() { cam = Camera.main; animationRule = new AnimeRule(); if (cam == null) { Debug.Log("camera null reference"); } }